From 4a00b33c026622956adaa9bc13904b999de01269 Mon Sep 17 00:00:00 2001 From: drh Date: Thu, 14 May 2015 13:41:22 +0000 Subject: [PATCH] More test cases. Remove some invalid testcase() macros. Rearrange some code for improved testability. FossilOrigin-Name: b3676377b257bd8bb7fefe9c365d76cdc9e44856 --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/where.c | 4 +--- test/vtab1.test | 13 ++++++++++++- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/manifest b/manifest index 6fdcf36695..40483626d7 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\stestcase()\smacros.\s\sGet\stransitive\sWHERE\sclause\sconstraints\son\sIS\soperators\nworking\sagain. -D 2015-05-14T13:18:47.128 +C More\stest\scases.\s\sRemove\ssome\sinvalid\stestcase()\smacros.\s\sRearrange\ssome\scode\nfor\simproved\stestability. +D 2015-05-14T13:41:22.643 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in edfc69769e613a6359c42c06ea1d42c3bece1736 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -307,7 +307,7 @@ F src/vxworks.h c18586c8edc1bddbc15c004fa16aeb1e1342b4fb F src/wal.c ce2cb2d06faab54d1bce3e739bec79e063dd9113 F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4 F src/walker.c c253b95b4ee44b21c406e2a1052636c31ea27804 -F src/where.c cabecc4a0f647f552b7467a86ff3c2e48487399d +F src/where.c 08fadd0d211699348349be5449f3a1e391adf20e F src/whereInt.h a6f5a762bc1b4b1c76e1cea79976b437ac35a435 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 @@ -1120,7 +1120,7 @@ F test/vacuum4.test d3f8ecff345f166911568f397d2432c16d2867d9 F test/varint.test ab7b110089a08b9926ed7390e7e97bdefeb74102 F test/veryquick.test 57ab846bacf7b90cf4e9a672721ea5c5b669b661 F test/view.test f311691d696a5cc27e3c1b875cec1b0866b4ccd9 -F test/vtab1.test d1e5ec7a818f1d3f0402382b6a1d0c06071b770f +F test/vtab1.test dbe0e9e121102d0ba365f20d126a72676aa2343f F test/vtab2.test 3644649aa8d1daac57fd541f6a5f914cac59203e F test/vtab3.test b45f47d20f225ccc9c28dc915d92740c2dee311e F test/vtab4.test 942f8b8280b3ea8a41dae20e7822d065ca1cb275 @@ -1258,7 +1258,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 4541688b3f56f5cd3d5b299594b58c577ad633bb -R 201c526060c4a057a45ebf1fee55c845 +P d195d4a65d7184e34a2a08c3ac3db7f6c8c1c21c +R f1988e6e31a1e471b8c207ba95b50e6f U drh -Z 9f199a1ff5417af5f644d4d006d00b95 +Z 903b5f8a9a56d496508b20810e19ed0d diff --git a/manifest.uuid b/manifest.uuid index ccbe8e23d7..0a0e87ef8a 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d195d4a65d7184e34a2a08c3ac3db7f6c8c1c21c \ No newline at end of file +b3676377b257bd8bb7fefe9c365d76cdc9e44856 \ No newline at end of file diff --git a/src/where.c b/src/where.c index 4792b13e60..e6023dd035 100644 --- a/src/where.c +++ b/src/where.c @@ -1120,7 +1120,6 @@ static void exprAnalyzeOrTerm( okToChngToIN = 1; for(; i>=0 && okToChngToIN; i--, pOrTerm++){ assert( pOrTerm->eOperator & WO_EQ ); - testcase( pOrTerm->pExpr->op==TK_IS ); if( pOrTerm->leftCursor!=iCursor ){ pOrTerm->wtFlags &= ~TERM_OR_OK; }else if( pOrTerm->u.leftColumn!=iColumn ){ @@ -1157,7 +1156,6 @@ static void exprAnalyzeOrTerm( assert( pOrTerm->eOperator & WO_EQ ); assert( pOrTerm->leftCursor==iCursor ); assert( pOrTerm->u.leftColumn==iColumn ); - testcase( pOrTerm->pExpr->op==TK_IS ); pDup = sqlite3ExprDup(db, pOrTerm->pExpr->pRight, 0); pList = sqlite3ExprListAppend(pWInfo->pParse, pList, pDup); pLeft = pOrTerm->pExpr->pLeft; @@ -4109,8 +4107,8 @@ static Bitmask codeOneLoopStart( Expr *pE, *pEAlt; WhereTerm *pAlt; if( pTerm->wtFlags & (TERM_VIRTUAL|TERM_CODED) ) continue; - if( (pTerm->eOperator & WO_EQUIV)==0 ) continue; if( (pTerm->eOperator & (WO_EQ|WO_IS))==0 ) continue; + if( (pTerm->eOperator & WO_EQUIV)==0 ) continue; if( pTerm->leftCursor!=iCur ) continue; if( pLevel->iLeftJoin ) continue; pE = pTerm->pExpr; diff --git a/test/vtab1.test b/test/vtab1.test index c0cf3e4e8d..cd21153f06 100644 --- a/test/vtab1.test +++ b/test/vtab1.test @@ -1085,11 +1085,22 @@ do_test vtab1.13-3 { SELECT * FROM echo_c WHERE b IS NULL } } {15 {} 16} -do_test vtab1.13-3 { +do_test vtab1.13-4 { + unset -nocomplain null + execsql { + SELECT * FROM echo_c WHERE b IS $null + } +} {15 {} 16} +do_test vtab1.13-5 { execsql { SELECT * FROM echo_c WHERE b IS NULL AND a = 15; } } {15 {} 16} +do_test vtab1.13-6 { + execsql { + SELECT * FROM echo_c WHERE NULL IS b AND a IS 15; + } +} {15 {} 16} do_test vtab1-14.001 {