aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <Dan Kennedy>2021-04-10 14:49:45 +0000
committerdan <Dan Kennedy>2021-04-10 14:49:45 +0000
commit677e62aacddc2cce4e6b9c0fc5aa7f84ca81cbf7 (patch)
treed198a49c08fcd654689312b07e6680b4dc06318f /src
parent050611a79bd0bf6f2f146bc728f45b04e7b1d69c (diff)
downloadsqlite-677e62aacddc2cce4e6b9c0fc5aa7f84ca81cbf7.tar.gz
sqlite-677e62aacddc2cce4e6b9c0fc5aa7f84ca81cbf7.zip
Fix a problem with handling expressions like "(col IS NULL AND <expr1>) OR col == NULL" in WHERE clauses.
FossilOrigin-Name: 40852ca8e215e51f63652a67817361b835b6fbbff7f66af50089af91007505f1
Diffstat (limited to 'src')
-rw-r--r--src/whereexpr.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/whereexpr.c b/src/whereexpr.c
index b3f48feaa..1807fbb00 100644
--- a/src/whereexpr.c
+++ b/src/whereexpr.c
@@ -511,6 +511,7 @@ static void whereCombineDisjuncts(
int op; /* Operator for the combined expression */
int idxNew; /* Index in pWC of the next virtual term */
+ if( (pOne->wtFlags | pTwo->wtFlags) & TERM_VNULL ) return;
if( (pOne->eOperator & (WO_EQ|WO_LT|WO_LE|WO_GT|WO_GE))==0 ) return;
if( (pTwo->eOperator & (WO_EQ|WO_LT|WO_LE|WO_GT|WO_GE))==0 ) return;
if( (eOp & (WO_EQ|WO_LT|WO_LE))!=eOp