Fix evaluation of ISNULL/NOTNULL in OR expressions

Previously, the `jump_if_condition_is_true` flag was not respected. As a
result, for expressions like <`ISNULL`/`NOTNULL`> `OR` <rhs>, the <rhs>
expression was evaluated even when the left-hand side was true, and its
value was incorrectly used as the final result.
This commit is contained in:
Piotr Rzysko
2025-06-27 08:13:02 +02:00
parent e162b56d01
commit 116df2ec86
2 changed files with 30 additions and 8 deletions

View File

@@ -62,10 +62,18 @@ do_execsql_test where-clause-isnull {
select count(1) from users where last_name isnull;
} {0}
do_execsql_test where-clause-isnull-or-false {
select count(1) from users where null isnull or 1 != 1;
} {10000}
do_execsql_test where-clause-notnull {
select count(1) from users where last_name not null;
} {10000}
do_execsql_test where-clause-notnull-or-false {
select count(1) from users where last_name not null or 1 != 1;
} {10000}
do_execsql_test where-clause-ne {
select count(1) from users where id != 2000;
} {9999}