[ 
https://issues.apache.org/jira/browse/TINKERPOP-1587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15783746#comment-15783746
 ] 

stephen mallette commented on TINKERPOP-1587:
---------------------------------------------

I tried a bunch of things with this and the only one that ended up making sense 
was to default the instantiated TinkerGraph with default cardinality of 
{{list}}. I can't think of any reason why this is a bad approach and should 
only cause trouble if you were mutating the subgraph  after it was returned 
from Gremlin Server and expected the default of {{property(k,v)}} to be 
{{single}} and ended up with {{list}} instead. The obvious fix would be to 
specify {{Cardinality}} when setting the property.

I will give it some more thought over night and will likely push the fix 
tomorrow as CTR as it is a very small change. 

> Gremlin Server Subgraph Cardinality Not Respected
> -------------------------------------------------
>
>                 Key: TINKERPOP-1587
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1587
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: io
>    Affects Versions: 3.2.3
>            Reporter: Michael Margitus
>            Assignee: stephen mallette
>
> The subgraph traversal step does not respect the cardinality of properties 
> when executed on a graph remotely accessed from Gremlin Server.  When 
> queried, only one value of a multi-value property is returned.  The following 
> Java-based traversal illustrates the issue on The Crew graph.  Below g is a 
> Graph Traversal Source created using the withRemote() method on the 
> EmptyGraph.
> {code}
> GraphTraversal<Edge, Object> traversal 
> =g.E().hasLabel("develops").subgraph("subgraph").cap("subgraph");
> TinkerGraph subgraph = (TinkerGraph)traversal.next();
> GraphTraversalSource sg = subgraph.traversal();
> GraphTraversal<Vertex, Object> locationTraversal = 
> sg.V(1L).values("location");
> while (locationTraversal.hasNext()) {
>     System.out.println(locationTraversal.next());
> }
> {code}
> This traversal should return four locations {code} {id=1, name=[marko], 
> location=[san diego, santa cruz, brussels, santa fe], label=person} {code} 
> however it only returns santa fe.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to