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

Vertex lookups by id are inconsistent

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 3.1.1-incubating
    • None
    • tinkergraph
    • None

    Description

      graph.vertices(id), g.V(id) and g.V().hasId(id) should all return the same result. However, currently only the latter respects the toString() representation of ids.

      gremlin> g.addV().id()
      ==>12
      gremlin> graph.vertices("12")
      gremlin> g.V("12")
      gremlin> g.V().hasId("12")
      ==>v[12]
      

      Inconsistent number comparison with Contains:

      gremlin> conf = new BaseConfiguration()
      ==>org.apache.commons.configuration.BaseConfiguration@7048535f
      gremlin> conf.setProperty("gremlin.tinkergraph.vertexIdManager","LONG")
      ==>null
      gremlin> conf.setProperty("gremlin.tinkergraph.edgeIdManager","LONG")
      ==>null
      gremlin> graph = TinkerGraph.open(conf)
      ==>tinkergraph[vertices:0 edges:0]
      gremlin> graph.io(gryo()).readGraph('data/tinkerpop-modern.kryo')
      ==>null
      gremlin> g = graph.traversal()
      ==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
      gremlin> g.V().hasId(within(1..6)).out().hasId(within(1..6))
      gremlin> g.V().hasId(within(1..6)).out().hasId(between(0,7))
      ==>v[3]
      ==>v[2]
      ==>v[4]
      ==>v[5]
      ==>v[3]
      ==>v[3]
      

      `P.within` and `P.without` rely on `Collection.contains()` which ends up doing an Object type comparison during the equality check.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              dkuppitz Daniel Kuppitz
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: