incubator-hugegraph icon indicating copy to clipboard operation
incubator-hugegraph copied to clipboard

Inconsistent results in equivalent queries

Open YuanchengJiang opened this issue 2 years ago • 1 comments
trafficstars

Bug Type (问题类型)

gremlin (结果不合预期)

Before submit

  • [X] 我已经确认现有的 IssuesFAQ 中没有相同 / 重复问题 (I have confirmed and searched that there are no similar problems in the historical issue and documents)

Environment (环境信息)

HugeGraph: v1.0.0

Expected & Actual behavior (期望与实际表现)

Query 1:

g.V().as('cccccccc').hasLabel('A').emit(__.loops().is(gte(1))).repeat(__.outE().inV()).times(2).emit(__.loops().is(gte(1))).repeat(__.outE().inV()).times(2).as('hketwcbf').hasLabel('B').bothE().dedup().by(__.path()).otherV().as('test').where(__.select('test').where(eq('cccccccc'))).select('hketwcbf').count()

Query 2:

g.V().as('cccccccc').hasLabel('A').bothE().dedup().by(__.path()).otherV().as('hketwcbf').hasLabel('B').emit(__.loops().is(gte(1))).repeat(__.inE().outV()).times(2).emit(__.loops().is(gte(1))).repeat(__.inE().outV()).times(2).as('test').where(__.select('test').where(eq('cccccccc'))).select('hketwcbf').count() 

They are equivalent queries that have symmetric graph pattern. They would look like these in Cypher:

Q1: MATCH (cccccccc:A)-[]-(hketwcbf:B)<-[*1..2]-(ahdnqvvl)<-[*1..2]-(cccccccc:A) RETURN count(hketwcbf) 
Q2: MATCH (cccccccc:A)-[*1..2]->(ahdnqvvl)-[*1..2]->(hketwcbf:B)-[]-(cccccccc:A) RETURN count(hketwcbf)

Vertex/Edge example (问题点 / 边数据举例)

No response

Schema [VertexLabel, EdgeLabel, IndexLabel] (元数据结构)

g.addV('A').as('n1').property(single, 'name', 56).property(single, 'id', 2).property(single, 'undefined', 18).addV('A').as('n2').property(single, 'name', 61).property(single, 'id', 61).addV('A').as('n3').property(single, 'name', 49).property(single, 'id', 92).property(single, 'undefined', 16).addV('B').as('n4').property(single, 'name', 79).property(single, 'id', 47).addV('B').as('n5').property(single, 'name', 22).property(single, 'id', 17).property(single, 'undefined', 74).addV('A').as('n6').property(single, 'name', 99).property(single, 'id', 95).addV('B').as('n7').property(single, 'name', 29).property(single, 'id', 25).property(single, 'undefined', 1).addV('A').as('n8').property(single, 'name', 65).property(single, 'id', 62).addV('B').as('n9').property(single, 'name', 34).property(single, 'id', 83).property(single, 'undefined', 24).addV('B').as('n10').property(single, 'name', 91).property(single, 'id', 74).addE('x').from('n1').to('n8').addE('y').from('n2').to('n9').addE('x').from('n3').to('n3').addE('y').from('n4').to('n1').addE('x').from('n5').to('n5').addE('y').from('n6').to('n5').addE('x').from('n7').to('n6').addE('y').from('n8').to('n7').addE('x').from('n9').to('n5').addE('y').from('n10').to('n5').addE('x').from('n1').to('n5').addE('y').from('n2').to('n8').addE('x').from('n3').to('n2').addE('y').from('n4').to('n3').addE('x').from('n5').to('n6').addE('y').from('n6').to('n10').addE('x').from('n7').to('n7').addE('y').from('n8').to('n8').addE('x').from('n9').to('n9').addE('y').from('n10').to('n9').addE('x').from('n1').to('n8').addE('y').from('n2').to('n3').addE('x').from('n3').to('n1').addE('y').from('n4').to('n6').addE('x').from('n5').to('n9').addE('y').from('n6').to('n6').addE('x').from('n7').to('n5').addE('y').from('n8').to('n5').addE('x').from('n9').to('n10').addE('y').from('n10').to('n3').addE('x').from('n1').to('n10').addE('y').from('n2').to('n6').addE('x').from('n3').to('n2').addE('y').from('n4').to('n4').addE('x').from('n5').to('n3').addE('y').from('n6').to('n8').addE('x').from('n7').to('n4').addE('y').from('n8').to('n3').addE('x').from('n9').to('n8').addE('y').from('n10').to('n9').addE('x').from('n1').to('n9').addE('y').from('n2').to('n5').addE('x').from('n3').to('n7').addE('y').from('n4').to('n9').addE('x').from('n5').to('n5').addE('y').from('n6').to('n5').addE('x').from('n7').to('n7').addE('y').from('n8').to('n7').addE('x').from('n9').to('n9').addE('y').from('n10').to('n5').barrier().limit(0)

YuanchengJiang avatar Mar 30 '23 06:03 YuanchengJiang

If you mean the order of emit() step leads to different results, that's expected, please refer to: https://tinkerpop.apache.org/docs/current/reference/#repeat-step

javeme avatar Apr 17 '23 12:04 javeme