diff options
author | dan <dan@noemail.net> | 2019-12-23 15:17:11 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2019-12-23 15:17:11 +0000 |
commit | 1d24a53125ab15f2d80ff4c64a2b65ed9d9ff44b (patch) | |
tree | 3c13535c1c4a106646fac7dff83da0321aa1eaba /src | |
parent | 2811ea6be7f4d63d5cc0992c78db3b1b73112a93 (diff) | |
download | sqlite-1d24a53125ab15f2d80ff4c64a2b65ed9d9ff44b.tar.gz sqlite-1d24a53125ab15f2d80ff4c64a2b65ed9d9ff44b.zip |
Fix a case in which SQLite could fail to identify "x BETWEEN ? AND ?" being true as implying that x is not null. Ticket [dfd66334].
FossilOrigin-Name: 2f17974912ec5e99089dc0da803e7ff1bf033377a49762d2689a812c005f2641
Diffstat (limited to 'src')
-rw-r--r-- | src/expr.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/expr.c b/src/expr.c index 4593ebbc5..617fcf063 100644 --- a/src/expr.c +++ b/src/expr.c @@ -5297,7 +5297,10 @@ static int impliesNotNullRow(Walker *pWalker, Expr *pExpr){ return WRC_Prune; case TK_BETWEEN: - sqlite3WalkExpr(pWalker, pExpr->pLeft); + if( sqlite3WalkExpr(pWalker, pExpr->pLeft)==WRC_Abort ){ + assert( pWalker->eCode ); + return WRC_Abort; + } return WRC_Prune; /* Virtual tables are allowed to use constraints like x=NULL. So |