aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2019-08-10 15:06:03 +0000
committerdrh <drh@noemail.net>2019-08-10 15:06:03 +0000
commit14c865e8592ff73e1e1ca2070ff660771ba20e78 (patch)
treec8afde8042f09e740b84f2d580c11980f8443c71 /src/expr.c
parentb6299681c63e5ea8b61892f4e5dffaac25031723 (diff)
downloadsqlite-14c865e8592ff73e1e1ca2070ff660771ba20e78.tar.gz
sqlite-14c865e8592ff73e1e1ca2070ff660771ba20e78.zip
Fix the sqliteExprImpliesExpr() routine so that it recognizes that
"(NULL IS FALSE) IS FALSE" doe not implie "NULL NOT NULL". Ticket [9080b6227fabb466] FossilOrigin-Name: da01ba4fa47c6508b31533ccd769e637af04bd37f51463372fbc6c848d892a4d
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/expr.c b/src/expr.c
index 376da57cf..e00b319ed 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -4938,7 +4938,9 @@ static int exprImpliesNotNull(
){
assert( p );
assert( pNN );
- if( sqlite3ExprCompare(pParse, p, pNN, iTab)==0 ) return 1;
+ if( sqlite3ExprCompare(pParse, p, pNN, iTab)==0 ){
+ return pNN->op!=TK_NULL;
+ }
switch( p->op ){
case TK_IN: {
if( seenNot && ExprHasProperty(p, EP_xIsSelect) ) return 0;