Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-2124

InlineFilterStrategy produces wrong result

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.3.4
    • Fix Version/s: 3.3.6, 3.4.1
    • Component/s: process
    • Labels:
      None

      Description

      gremlin> g.V().hasLabel("person").
                 or(and(has("age",gt(20)),
                        has("age",lt(30))),
                    and(has("age",gt(35)),
                        has("age",lt(40)))).
               explain()
      ==>Traversal Explanation
      =========================================================================================================================================================================================================
      Original Traversal                 [GraphStep(vertex,[]), HasStep([~label.eq(person)]), OrStep([[AndStep([[HasStep([age.gt(20)])], [HasStep([age.lt(30)])]])], [AndStep([[HasStep([age.gt(35)])], [HasSte
                                            p([age.lt(40)])]])]])]
      
      ConnectiveStrategy           [D]   [GraphStep(vertex,[]), HasStep([~label.eq(person)]), OrStep([[AndStep([[HasStep([age.gt(20)])], [HasStep([age.lt(30)])]])], [AndStep([[HasStep([age.gt(35)])], [HasSte
                                            p([age.lt(40)])]])]])]
      CountStrategy                [O]   [GraphStep(vertex,[]), HasStep([~label.eq(person)]), OrStep([[AndStep([[HasStep([age.gt(20)])], [HasStep([age.lt(30)])]])], [AndStep([[HasStep([age.gt(35)])], [HasSte
                                            p([age.lt(40)])]])]])]
      MatchPredicateStrategy       [O]   [GraphStep(vertex,[]), HasStep([~label.eq(person)]), OrStep([[AndStep([[HasStep([age.gt(20)])], [HasStep([age.lt(30)])]])], [AndStep([[HasStep([age.gt(35)])], [HasSte
                                            p([age.lt(40)])]])]])]
      FilterRankingStrategy        [O]   [GraphStep(vertex,[]), HasStep([~label.eq(person)]), OrStep([[AndStep([[HasStep([age.gt(20)])], [HasStep([age.lt(30)])]])], [AndStep([[HasStep([age.gt(35)])], [HasSte
                                            p([age.lt(40)])]])]])]
      InlineFilterStrategy         [O]   [GraphStep(vertex,[]), HasStep([~label.eq(person), age.or(gt(20), lt(30), gt(35), lt(40))])]
      IncidentToAdjacentStrategy   [O]   [GraphStep(vertex,[]), HasStep([~label.eq(person), age.or(gt(20), lt(30), gt(35), lt(40))])]
      AdjacentToIncidentStrategy   [O]   [GraphStep(vertex,[]), HasStep([~label.eq(person), age.or(gt(20), lt(30), gt(35), lt(40))])]
      RepeatUnrollStrategy         [O]   [GraphStep(vertex,[]), HasStep([~label.eq(person), age.or(gt(20), lt(30), gt(35), lt(40))])]
      PathRetractionStrategy       [O]   [GraphStep(vertex,[]), HasStep([~label.eq(person), age.or(gt(20), lt(30), gt(35), lt(40))])]
      LazyBarrierStrategy          [O]   [GraphStep(vertex,[]), HasStep([~label.eq(person), age.or(gt(20), lt(30), gt(35), lt(40))])]
      TinkerGraphCountStrategy     [P]   [GraphStep(vertex,[]), HasStep([~label.eq(person), age.or(gt(20), lt(30), gt(35), lt(40))])]
      TinkerGraphStepStrategy      [P]   [TinkerGraphStep(vertex,[~label.eq(person), age.or(gt(20), lt(30), gt(35), lt(40))])]
      ProfileStrategy              [F]   [TinkerGraphStep(vertex,[~label.eq(person), age.or(gt(20), lt(30), gt(35), lt(40))])]
      StandardVerificationStrategy [V]   [TinkerGraphStep(vertex,[~label.eq(person), age.or(gt(20), lt(30), gt(35), lt(40))])]
      
      Final Traversal                    [TinkerGraphStep(vertex,[~label.eq(person), age.or(gt(20), lt(30), gt(35), lt(40))])]
      

        Attachments

          Activity

            People

            • Assignee:
              dkuppitz Daniel Kuppitz
              Reporter:
              dkuppitz Daniel Kuppitz
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: