Duplicate vertex creations in NPlan if vertex is referred
marci543 opened this issue · 0 comments
marci543 commented
In NPlan the vertex a#0
is created again at every reference.
vvvvvvvvvvvvvvvv Feature "MatchAcceptance2": Scenario "ORDER BY with LIMIT" vvvvvvvvvvvvvvvv
=============================================================================
Query:
------
CREATE (a:A), (n1 {x: 1}), (n2 {x: 2}),
(m1), (m2)
CREATE (a)-[:T]->(n1),
(n1)-[:T]->(m1),
(a)-[:T]->(n2),
(n2)-[:T]->(m2)
-----------------------------------------------------------------------------
GPlan:
------
'Production
+- 'Create [v(a, {}, false, (a#0)), v(n1, {}, false, (n1#0)), riche(v(a, {}, false, (a#0)), v(n1, {}, false, (n1#0)), e(_e0, {T}, true, (_e0#0)), Out), v(n1, {}, false, (n1#0)), v(m1, {}, false, (m1#0)), riche(v(n1, {}, false, (n1#0)), v(m1, {}, false, (m1#0)), e(_e1, {T}, true, (_e1#0)), Out), v(a, {}, false, (a#0)), v(n2, {}, false, (n2#0)), riche(v(a, {}, false, (a#0)), v(n2, {}, false, (n2#0)), e(_e2, {T}, true, (_e2#0)), Out), v(n2, {}, false, (n2#0)), v(m2, {}, false, (m2#0)), riche(v(n2, {}, false, (n2#0)), v(m2, {}, false, (m2#0)), e(_e3, {T}, true, (_e3#0)), Out)]
+- 'Create [v(a, {A}, false, (a#0)), v(n1, {}, (x,1), false, (n1#0)), v(n2, {}, (x,2), false, (n2#0)), v(m1, {}, false, (m1#0)), v(m2, {}, false, (m2#0))]
+- Dual
-----------------------------------------------------------------------------
NPlan:
------
'Production
+- 'Create riche(v(n2, {}, false, (n2#0)), v(m2, {}, false, (m2#0)), e(_e3, {T}, true, (_e3#0)), Out)
+- 'Create v(m2, {}, false, (m2#0))
^ +- 'Create v(n2, {}, false, (n2#0))
^ +- 'Create riche(v(a, {}, false, (a#0)), v(n2, {}, false, (n2#0)), e(_e2, {T}, true, (_e2#0)), Out)
^ +- 'Create v(n2, {}, false, (n2#0))
^ here again> +- 'Create v(a, {}, false, (a#0))
^ +- 'Create riche(v(n1, {}, false, (n1#0)), v(m1, {}, false, (m1#0)), e(_e1, {T}, true, (_e1#0)), Out)
^ +- 'Create v(m1, {}, false, (m1#0))
^ +- 'Create v(n1, {}, false, (n1#0))
^ +- 'Create riche(v(a, {}, false, (a#0)), v(n1, {}, false, (n1#0)), e(_e0, {T}, true, (_e0#0)), Out)
^ +- 'Create v(n1, {}, false, (n1#0))
^ tries to create again ---> +- 'Create v(a, {}, false, (a#0))
^ +- 'Create v(m2, {}, false, (m2#0))
^ +- 'Create v(m1, {}, false, (m1#0))
^ +- 'Create v(n2, {}, (x,2), false, (n2#0))
^ +- 'Create v(n1, {}, (x,1), false, (n1#0))
^ a#0 vertex is created here -----------> +- 'Create v(a, {A}, false, (a#0))
^ +- Dual
-----------------------------------------------------------------------------