Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DB engine gives wrong result when handling condition #775

Open
Aurora-yzj opened this issue Aug 26, 2024 · 0 comments
Open

DB engine gives wrong result when handling condition #775

Aurora-yzj opened this issue Aug 26, 2024 · 0 comments

Comments

@Aurora-yzj
Copy link

Hi! I discovered a correctness bug in FalkorDB that gives wrong results when handling conditions. Steps to reproduce are as follows:

  1. Build up the database using the following queries:
CREATE (n0 :L0{k0 : true, k1 : 203585722, k2 : -1368076618, k3 : true, k4 : "9YARbhe", id : 0})
CREATE (n0 :L0:L1{k0 : true, k1 : -878497906, k2 : -321782477, k3 : false, k4 : "vOOn2", k11 : false, id : 1, k6 : 1021585152, k10 : "q7pdXs", k7 : 1254040260, k8 : "l1uEbLnt"})
CREATE (n0 :L1{k5 : 178653231, k11 : true, k6 : -1313572034, k10 : "bGyuYMItQ", id : 3, k7 : -809314095, k8 : "cKbIokpX", k9 : "CMTr1m"})
CREATE (n0 :L1:L0{k0 : true, k1 : -117710145, k2 : -2015042849, k3 : false, k4 : "iThh4L0", k5 : -1098353604, k11 : false, k6 : 1786444615, k10 : "Q3qNUv", k7 : -1953811694, k8 : "zz6fI", k9 : "PH7HD", id : 4})
CREATE (n0 :L1:L0{k0 : false, k1 : -674081905, k2 : -773286603, k3 : false, k4 : "rzbYu", k5 : -236195781, k11 : false, k6 : -1932694668, k10 : "PVKf63", id : 6, k7 : 1695427549, k8 : "NZWaCnU3"})
MATCH (n0 {id : 4}), (n1 {id : 3}) MERGE(n0)-[r :T4{k39 : 1943113910, k38 : false, k40 : false, k42 : "XmBfr7gU", k41 : -778337808, id : 10}]->(n1)
MATCH (n0 {id : 4}), (n1 {id : 1}) MERGE(n0)-[r :T4{k39 : 119191616, k38 : false, k40 : true, k42 : "YJ3RRV", k41 : -879376269, k43 : "Oqu0Swg", id : 11}]->(n1)
MATCH (n0 {id : 0}), (n1 {id : 4}) MERGE(n0)-[r :T2{k28 : true, k27 : true, k29 : true, k31 : "ScnIFpiq", k30 : false, k32 : -1705014269, id : 14}]->(n1)
MATCH (n0 {id : 6}), (n1 {id : 3}) MERGE(n0)-[r :T7{k55 : -1462689760, id : 16, k57 : -382022903, k56 : "xvPfOAPc", k59 : "6t0RC", k58 : -1618111212}]->(n1)
  1. The following query gives two results, True and False respectively:
MATCH (n0)<-[r2]-(n1)<-[r3]-(n2) WHERE true WITH r3, (r3.id) AS a21, n0 MATCH (n0)<-[r4 :T4]-(n1)<-[r5]-(n2 :L0), (n3)<-[r6 :T7]-(n4) WHERE (((n0.k7) > 1254040258) AND ((r6.id) > r3.id)) RETURN (((n0.k7) > 1254040258) AND ((r6.id) > a21))

image
However, it should only output True, as the return expression is part of the condition, and a21 is just an alias of r3.id:

... WHERE (((n0.k7) > 1254040258) AND ((r6.id) > r3.id)) RETURN (((n0.k7) > 1254040258) AND ((r6.id) > a21))

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant