Graphd does not handle three-value logic properly #5203
Labels
affects/master
PR/issue: this bug affects master version.
auto-sync
find/automation
process/done
Process of bug
severity/major
Severity of bug
type/bug
Type: something is unexpected
Please check the FAQ documentation before raising an issue
Describe the bug (required)
Look at the queries in Nebula below:
We can see that
null AND false
is evaluated to beUNKNOWN_PROP
(another form of null), while in Neo4j,null AND false
is evaluate tofalse
:$ MATCH (v0)-[e0:Rel_1|Rel_0|Rel_3]->()-[e1]->() WHERE (v0.id in [19, 6, 17, 18, 16, 15, 11]) and e1.Rel_1_1_Bool = false and e0.Rel_3_5_Bool is null RETURN e0.Rel_3_5_Bool, e1.Rel_1_1_Bool, e0.Rel_3_5_Bool AND e1.Rel_1_1_Bool ╒═════════════════╤═════════════════╤═════════════════════════════════════╕ │"e0.Rel_3_5_Bool"│"e1.Rel_1_1_Bool"│"e0.Rel_3_5_Bool AND e1.Rel_1_1_Bool"│ ╞═════════════════╪═════════════════╪═════════════════════════════════════╡ │null │false │false │ ├─────────────────┼─────────────────┼─────────────────────────────────────┤ │null │false │false │ ├─────────────────┼─────────────────┼─────────────────────────────────────┤ │null │false │false │ └─────────────────┴─────────────────┴─────────────────────────────────────┘
That is what we expected, beacause that comply with the rules of three values logic, see Three-valued logic
Your Environments (required)
uname -a
g++ --version
orclang++ --version
lscpu
a3ffc7d8
) 31213eaHow To Reproduce(required)
Steps to reproduce the behavior:
Expected behavior
Additional context
The text was updated successfully, but these errors were encountered: