]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make sure the whereSplit() routine in the query planner is not confused
authordrh <drh@noemail.net>
Tue, 21 Apr 2015 02:12:13 +0000 (02:12 +0000)
committerdrh <drh@noemail.net>
Tue, 21 Apr 2015 02:12:13 +0000 (02:12 +0000)
by the likely() operator.

FossilOrigin-Name: 588db14ffb4b0e8e76d511b7b1541db3ec78836a

manifest
manifest.uuid
src/where.c

index c16ea757726c46a39771307bcdbbd5809acf4f5f..722a49165ba9775f88766eaeab6dba71f1a76ca2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Enable\scompilation\sand\sVSIX\spackage\screation\swith\sthe\sVisual\sStudio\s2015\sCTP.
-D 2015-04-21T00:23:38.259
+C Make\ssure\sthe\swhereSplit()\sroutine\sin\sthe\squery\splanner\sis\snot\sconfused\nby\sthe\slikely()\soperator.
+D 2015-04-21T02:12:13.667
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in faaf75b89840659d74501bea269c7e33414761c1
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -307,7 +307,7 @@ F src/vxworks.h c18586c8edc1bddbc15c004fa16aeb1e1342b4fb
 F src/wal.c 753995db83247f20361a8e8a874990b21a75abd9
 F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
 F src/walker.c c253b95b4ee44b21c406e2a1052636c31ea27804
-F src/where.c 723b4f614cd60b7198f5f1cc053362f8a28b0bed
+F src/where.c 32fe265e3dc74ef3b27deb9e6eb5fc3c71409612
 F src/whereInt.h cbe4aa57326998d89e7698ca65bb7c28541d483c
 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
@@ -1251,7 +1251,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 b940b0fa6cf68fef58344d269ad5d39468ffe72f 5ae853aaebaee76c9265061984185f74c10c4c8b
-R 9804529a8e22c5281a0b002dbd15342c
-U mistachkin
-Z 2ec7897fcafe697e2540c7ecf3cbf657
+P 03b725a768290e3c7b31f1ba3310532fd7dc05cd
+R 1a86c7004bf5b29df45cd677c642d5c4
+U drh
+Z 973efc28f5c5e0de1e0d5148069074b3
index 39b81f4f27bcbf5525584e5711caa83ffea62253..e1164a819ab4e0bdd8bf61e280c4c691d7f4cc15 100644 (file)
@@ -1 +1 @@
-03b725a768290e3c7b31f1ba3310532fd7dc05cd
\ No newline at end of file
+588db14ffb4b0e8e76d511b7b1541db3ec78836a
\ No newline at end of file
index 1b97ebf98f2084e97419822c135d041ecdfa584b..25d20c88086722bb61394e11fcb56bf80ebc08e9 100644 (file)
@@ -255,13 +255,14 @@ static int whereClauseInsert(WhereClause *pWC, Expr *p, u16 wtFlags){
 ** all terms of the WHERE clause.
 */
 static void whereSplit(WhereClause *pWC, Expr *pExpr, u8 op){
+  Expr *pE2 = sqlite3ExprSkipCollate(pExpr);
   pWC->op = op;
-  if( pExpr==0 ) return;
-  if( pExpr->op!=op ){
+  if( pE2==0 ) return;
+  if( pE2->op!=op ){
     whereClauseInsert(pWC, pExpr, 0);
   }else{
-    whereSplit(pWC, pExpr->pLeft, op);
-    whereSplit(pWC, pExpr->pRight, op);
+    whereSplit(pWC, pE2->pLeft, op);
+    whereSplit(pWC, pE2->pRight, op);
   }
 }