From 28b9e0fc058c5e6c212109b58162fbe7d9f5a651 Mon Sep 17 00:00:00 2001 From: drh Date: Sat, 5 Sep 2015 19:21:00 +0000 Subject: [PATCH] Fix an unreachable conditional in the WHERE clause analysis logic. FossilOrigin-Name: 24924a58197e558a9e8800cc5c91dc8fb32f3557 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/where.c | 3 ++- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/manifest b/manifest index 434d78ec41..f9b770eebc 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Get\sSTAT4\srange\sscan\sestimates\swork\sagain\swhen\sthe\sbounds\sare\sdetermined\nby\sdate/time\sfunctions. -D 2015-09-05T19:07:08.860 +C Fix\san\sunreachable\sconditional\sin\sthe\sWHERE\sclause\sanalysis\slogic. +D 2015-09-05T19:21:00.671 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in f85066ce844a28b671aaeeff320921cd0ce36239 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -416,7 +416,7 @@ F src/vxworks.h c18586c8edc1bddbc15c004fa16aeb1e1342b4fb F src/wal.c 8cd07f1f99e1a81346db1c9da879bef6c6f97cf6 F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4 F src/walker.c 2e14d17f592d176b6dc879c33fbdec4fbccaa2ba -F src/where.c e6efbb9e5f0c20943cd03909b3894ad5b105dedf +F src/where.c ed1cd1cb0434bca9f4a5379582c637bf393b34ac F src/whereInt.h 292d3ac90da4eab1e03ac8452f1add746bcafaa1 F src/wherecode.c 6ac8599523f4840d9efac335329f627ebf3f79fd F src/whereexpr.c 2473e4350e30f9b55d1c6a8f66ca23c689f23f1d @@ -1383,7 +1383,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 1efece95ff8777b89558be59277732ba2a68d5ab -R 33b468f201c817bccc2bf5f080039adb +P d2761357a0496ec1e590c7c9e397c5b5c904f91a +R 9921ff0c69ded6987711a9a840df906d U drh -Z 535e2ce68f49a8491abd9f8ccc62b768 +Z 612add4179403f74341dc4eb50c9c3d3 diff --git a/manifest.uuid b/manifest.uuid index 3ddd4c577d..4767aec925 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d2761357a0496ec1e590c7c9e397c5b5c904f91a \ No newline at end of file +24924a58197e558a9e8800cc5c91dc8fb32f3557 \ No newline at end of file diff --git a/src/where.c b/src/where.c index 1ee31fef3b..a29988a8e0 100644 --- a/src/where.c +++ b/src/where.c @@ -191,9 +191,10 @@ static WhereTerm *whereScanNext(WhereScan *pScan){ ){ if( (pTerm->eOperator & WO_EQUIV)!=0 && pScan->nEquivaiCur) - && (pX = sqlite3ExprSkipCollate(pTerm->pExpr->pRight))->op==TK_COLUMN ){ int j; + pX = sqlite3ExprSkipCollate(pTerm->pExpr->pRight); + assert( pX->op==TK_COLUMN ); for(j=0; jnEquiv; j++){ if( pScan->aiCur[j]==pX->iTable && pScan->aiColumn[j]==pX->iColumn ){