JanusGraph/janusgraph

Index with label constraint does not work for partitioned labels

Open

#1,842 opened on Oct 10, 2019

View on GitHub
 (1 comment) (0 reactions) (0 assignees)Java (4,985 stars) (1,137 forks)batch import
area/indexhelp wantedkind/bug/confirmed

Description

Code to reproduce:

graph = JanusGraphFactory.open("inmemory")
mgmt = graph.openManagement()
l = mgmt.makeVertexLabel('V').partition().make()
p1 = mgmt.makePropertyKey('p').cardinality(Cardinality.SINGLE).dataType(String.class).make()
mgmt.buildIndex("i1", Vertex.class).addKey(p1).indexOnly(l).buildCompositeIndex()
mgmt.commit()
g = graph.traversal()

v1=g.addV("V").property('p','a').next()
g.tx().commit()
g.V().hasLabel('V').has('p', 'a')
gremlin> mgmt = graph.openManagement()
==>org.janusgraph.graphdb.database.management.ManagementSystem@277bc3a5
gremlin> l = mgmt.makeVertexLabel('V').partition().make()
==>V
gremlin> p1 = mgmt.makePropertyKey('p').cardinality(Cardinality.SINGLE).dataType(String.class).make()
==>p
gremlin> mgmt.buildIndex("i1", Vertex.class).addKey(p1).indexOnly(l).buildCompositeIndex()
==>i1
gremlin> mgmt.commit()
==>null
gremlin> g = graph.traversal()
==>graphtraversalsource[standardjanusgraph[inmemory:[127.0.0.1]], standard]
gremlin> 
gremlin> v1=g.addV("V").property('p','a').next()
==>v[4226]
gremlin> g.tx().commit()
==>null
gremlin> g.V().hasLabel('V').has('p', 'a')
gremlin> 

Related issue #206

Contributor guide