I created the ticket: https://issues.apache.org/jira/browse/TINKERPOP-1681

On Sun, May 28, 2017 at 11:12 AM, Daniel Kuppitz <m...@gremlin.guru> wrote:

> Hi Pieter,
>
> that's a nasty bug. I just verified that it's also a bug in master/:
>
> gremlin> graph = TinkerGraph.open()
> ==>tinkergraph[vertices:0 edges:0]
> gremlin> a = graph.addVertex(label, "A")
> ==>v[0]
> gremlin> b = graph.addVertex(label, "B")
> ==>v[1]
> gremlin> graph.traversal().V().hasId(a.id()).hasId(b.id())
> ==>v[0]
> ==>v[1]
> gremlin> graph.traversal().V().hasId(a.id()).hasId(b.id()).explain()
> ==>Traversal Explanation
> ============================================================
> ==============================
> Original Traversal                 [GraphStep(vertex,[]),
> HasStep([~id.eq(0), ~id.eq(1)])]
>
> ConnectiveStrategy           [D]   [GraphStep(vertex,[]),
> HasStep([~id.eq(0), ~id.eq(1)])]
> MatchPredicateStrategy       [O]   [GraphStep(vertex,[]),
> HasStep([~id.eq(0), ~id.eq(1)])]
> FilterRankingStrategy        [O]   [GraphStep(vertex,[]),
> HasStep([~id.eq(0), ~id.eq(1)])]
> InlineFilterStrategy         [O]   [GraphStep(vertex,[]),
> HasStep([~id.eq(0), ~id.eq(1)])]
> IncidentToAdjacentStrategy   [O]   [GraphStep(vertex,[]),
> HasStep([~id.eq(0), ~id.eq(1)])]
> AdjacentToIncidentStrategy   [O]   [GraphStep(vertex,[]),
> HasStep([~id.eq(0), ~id.eq(1)])]
> RepeatUnrollStrategy         [O]   [GraphStep(vertex,[]),
> HasStep([~id.eq(0), ~id.eq(1)])]
> CountStrategy                [O]   [GraphStep(vertex,[]),
> HasStep([~id.eq(0), ~id.eq(1)])]
> PathRetractionStrategy       [O]   [GraphStep(vertex,[]),
> HasStep([~id.eq(0), ~id.eq(1)])]
> LazyBarrierStrategy          [O]   [GraphStep(vertex,[]),
> HasStep([~id.eq(0), ~id.eq(1)])]
> TinkerGraphCountStrategy     [P]   [GraphStep(vertex,[]),
> HasStep([~id.eq(0), ~id.eq(1)])]
> TinkerGraphStepStrategy      [P]   [TinkerGraphStep(vertex,[0, 1])]
> ProfileStrategy              [F]   [TinkerGraphStep(vertex,[0, 1])]
> StandardVerificationStrategy [V]   [TinkerGraphStep(vertex,[0, 1])]
>
> Final Traversal                    [TinkerGraphStep(vertex,[0, 1])]
> gremlin> Gremlin.version()
> ==>3.3.0-SNAPSHOT
>
> Can you create a ticket?
>
> Cheers,
> Daniel
>
>
> On Sun, May 28, 2017 at 10:45 AM, pieter gmail <pieter.mar...@gmail.com>
> wrote:
>
>> Hi,
>>
>> The following code illustrates my concern/confusion.
>>
>>     @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());
>>     }
>>
>> The test fails as the both vertices are returned.
>> Is this expected, I expected 'and' not 'or' behavior.
>>
>> Similar to,
>>
>>     @Test
>>     public void testHasLabel() {
>>         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().hasLabel
>> ("A").hasLabel("B").toList();
>>         Assert.assertTrue(vertices.isEmpty());
>>     }
>>
>> This one passes.
>>
>> I checked the docs,
>>
>> |hasLabel(labels...)|: Remove the traverser if its element does not have
>> any of the labels.
>> |hasId(ids...)|: Remove the traverser if its element does not have any of
>> the ids.
>>
>> Seems they should behave the same?
>>
>> I am working on version 3.2.4
>>
>> Thanks
>> Pieter
>>
>>
>

Reply via email to