Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Invalid
-
3.2.2, 3.2.3
-
None
-
None
-
macOS Sierra (v10.12), jdk 1.8.0_102-b14
Description
In graphs with indexed properties, queries fail on certain vertices (but not all) with properties of type long.
The following code reproduces the bug:
graph = TinkerGraph.open() graph.createIndex('other', Vertex.class) // (A) graph.createIndex('prop', Vertex.class) // (B) v = graph.addVertex() v.property('prop', (long)1) v.property('other', 0) v = graph.addVertex() v.property('prop', 12345678910) v.property('other', 1) g = graph.traversal()
The verbatim console session:
$ bin/gremlin.sh bug.groovy \,,,/ (o o) -----oOOo-(3)-oOOo----- plugin activated: tinkerpop.server plugin activated: tinkerpop.utilities plugin activated: tinkerpop.tinkergraph gremlin> g.V().valueMap() ==>[other:[0],prop:[1]] ==>[other:[1],prop:[12345678910]] gremlin> g.V().has('prop', 1) // (1) gremlin> g.V().has('prop', (long)1) // (2) ==>v[0] gremlin> g.V().has('other', 0).has('prop', 1) // (3) ==>v[0] gremlin> g.V().has('prop', 12345678910) // (4) ==>v[3] gremlin>
Observations:
1. The node is not found, although it's there.
2. The node is found if the property value is explicitly cast to long.
3. The node is found if the graph is queried on another indexed property first.
4. The node is found if the property value is wider than an int.
Variations:
v1. If the 'other' property is not indexed (line A), query (2) fails.
v2. If the 'prop' property is not indexed (line B), all queries succeed!
Tested on freshly built tinkerpop distributions, versions 3.2.2 and 3.2.3.
Attachments
Issue Links
- is related to
-
TINKERPOP-1048 Vertex lookups by id are inconsistent
- Open