Open szarnyasg opened 6 years ago
To reproduce the issue, add the following to one of the compiler tests, e.g. RandomCompilationTest:
RandomCompilationTest
test("Indexing array in MATCH") { val stages = compile( """UNWIND [[20, 30]] AS tuple |MATCH (org:Organisation {id: tuple[0]}) |RETURN org.id """.stripMargin) printlnSuppressIfIngraph(stages.toString) }
This results in:
'Production +- 'Projection [ret(p(id, v(org, {}, false, (org#0)), (org.id#0)), (org.id), (org.id#1))] +- 'Join :- 'Unwind unwindattribute(listexpression(listexpression(20, 30)), tuple, (tuple#0)) : +- Dual +- 'AllDifferent +- 'Selection (p(id, v(org, {}, false, (org#0)), (org.id#0)) = indexlookupexpression(unwindattribute(listexpression(listexpression(20, 30)), tuple, (tuple#0)), 0)) +- 'GetVertices v(org, {Organisation}, (id,indexlookupexpression(unwindattribute(listexpression(listexpression(20, 30)), tuple, (tuple#0)), 0)), false, (org#0))
This plan does not work because the Selection operator is trying to filter for tuple#0, which is produced on the other branch of the Join operator (by the Unwind operator).
Selection
tuple#0
Join
Unwind
This currently blocks Interactive update 1.
To reproduce the issue, add the following to one of the compiler tests, e.g.
RandomCompilationTest
:This results in:
This plan does not work because the
Selection
operator is trying to filter fortuple#0
, which is produced on the other branch of theJoin
operator (by theUnwind
operator).This currently blocks Interactive update 1.