[
https://issues.apache.org/jira/browse/TINKERPOP-1681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16027825#comment-16027825
]
Daniel Kuppitz commented on TINKERPOP-1681:
-------------------------------------------
I have a fix locally (the only folds the first set of ids into GraphStep), but
I wonder if we should be smarter. We could take the intersection of multiple
{{hasId}}'s, so that
{noformat}
g.V().hasId(within(1,2)).hasId(within(2,3))
{noformat}
... becomes:
{noformat}
g.V().hasId(2) // or g.V().hasId(within(2))
{noformat}
But what if the intersection is empty?
{noformat}
g.V().hasId(within(1,2)).hasId(3)
{noformat}
... could be converted into something like this:
{noformat}
g.V().not(identity())
{noformat}
However, that turns the query into a full-scan query, which is not acceptable
IMO. Other suggestions?
> Multiple hasId's are or'd into GraphStep
> ----------------------------------------
>
> Key: TINKERPOP-1681
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1681
> Project: TinkerPop
> Issue Type: Bug
> Components: process
> Affects Versions: 3.2.4
> Reporter: Daniel Kuppitz
> Assignee: Daniel Kuppitz
>
> From the dev mailing list:
> {noformat}
> @Test
> public void testHasId() {
> final TinkerGraph graph = TinkerGraph.open();
> Vertex a = graph.addVertex(T.label, "A");
> Vertex b = graph.addVertex(T.label, "B");
> List<Vertex> vertices =
> graph.traversal().V().hasId(a.id()).hasId(b.id()).toList();
> Assert.assertTrue(vertices.isEmpty());
> }
> {noformat}
> The test fails as the both vertices are returned.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)