aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <dan@noemail.net>2019-12-23 15:17:11 +0000
committerdan <dan@noemail.net>2019-12-23 15:17:11 +0000
commit1d24a53125ab15f2d80ff4c64a2b65ed9d9ff44b (patch)
tree3c13535c1c4a106646fac7dff83da0321aa1eaba /src
parent2811ea6be7f4d63d5cc0992c78db3b1b73112a93 (diff)
downloadsqlite-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.c5
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