[
https://issues.apache.org/jira/browse/TINKERPOP-1817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
stephen mallette updated TINKERPOP-1817:
----------------------------------------
Issue Type: Improvement (was: Bug)
My understanding here is that we never really intended to support labels here
so this really isn't a "bug" - reclassified this issue to an "enhancement".
> OLAP loses vertex labels
> ------------------------
>
> Key: TINKERPOP-1817
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1817
> Project: TinkerPop
> Issue Type: Improvement
> Components: process
> Affects Versions: 3.3.0, 3.2.6
> Reporter: Daniel Kuppitz
> Priority: Major
>
> Working on this SO question:
> https://stackoverflow.com/questions/46962237/how-to-perform-cross-join-on-different-vertices-in-gremlin-tinkerpop/46977603
> ...I noticed that the connected components query randomly loses the vertex
> labels.
> *Init Graph:*
> {noformat}
> graph = TinkerGraph.open()
> g = graph.traversal()
> a = graph.addVertex(label, "person", "user", "A")
> b = graph.addVertex(label, "person", "user", "B")
> c = graph.addVertex(label, "person", "user", "C")
> d = graph.addVertex(label, "person", "user", "D")
> one = graph.addVertex('rec_id')
> one.property('ids', '1')
> two = graph.addVertex('rec_id')
> two.property('ids', '2')
> three = graph.addVertex('rec_id')
> three.property('ids', '3')
> four = graph.addVertex('rec_id')
> four.property('ids', '4')
> five = graph.addVertex('rec_id')
> five.property('ids', '5')
> a.addEdge('part_of',one)
> a.addEdge('part_of',two)
> b.addEdge('part_of', three)
> b.addEdge('part_of',four)
> c.addEdge('part_of',five)
> d.addEdge('part_of',four)
> d.addEdge('part_of',two)
> g = graph.traversal().withComputer()
> {noformat}
> *Query:*
> {noformat}
> g.V().
> emit(cyclicPath().or().not(both())).
> repeat(both()).
> until(cyclicPath()).
> aggregate("p").by(path()).cap("p").
> unfold().limit(local, 1).dedup().
> map(__.as("v").select("p").unfold().
> filter(unfold().where(eq("v"))).
> unfold().dedup().order().by(id).fold()).dedup().
> project("Users","associated_ids").
> by(unfold().label().fold()).
> by(unfold().label().fold())
> {noformat}
> *Sample Output:*
> {noformat}
> gremlin> g.V().
> ......1> emit(cyclicPath().or().not(both())).
> ......2> repeat(both()).
> ......3> until(cyclicPath()).
> ......4> aggregate("p").by(path()).cap("p").
> ......5> unfold().limit(local, 1).dedup().
> ......6> map(__.as("v").select("p").unfold().
> ......7> filter(unfold().where(eq("v"))).
> ......8> unfold().dedup().order().by(id).fold()).dedup().
> ......9> project("Users","associated_ids").
> .....10> by(unfold().label()./*hasLabel("person").*/fold()).
> .....11> by(unfold().label()./*hasLabel("rec_id").*/fold())
> ==>[Users:[person,person,person,vertex,vertex,vertex,vertex],associated_ids:[person,person,person,vertex,vertex,vertex,vertex]]
> ==>[Users:[vertex,rec_id],associated_ids:[vertex,rec_id]]
> gremlin> g = graph.traversal().withComputer()
> ==>graphtraversalsource[tinkergraph[vertices:9 edges:7], graphcomputer]
> gremlin> g.V().
> ......1> emit(cyclicPath().or().not(both())).
> ......2> repeat(both()).
> ......3> until(cyclicPath()).
> ......4> aggregate("p").by(path()).cap("p").
> ......5> unfold().limit(local, 1).dedup().
> ......6> map(__.as("v").select("p").unfold().
> ......7> filter(unfold().where(eq("v"))).
> ......8> unfold().dedup().order().by(id).fold()).dedup().
> ......9> project("Users","associated_ids").
> .....10> by(unfold().label()./*hasLabel("person").*/fold()).
> .....11> by(unfold().label()./*hasLabel("rec_id").*/fold())
> ==>[Users:[person,person,person,rec_id,vertex,vertex,vertex],associated_ids:[person,person,person,rec_id,vertex,vertex,vertex]]
> ==>[Users:[vertex,rec_id],associated_ids:[vertex,rec_id]]
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)