]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Move field WhereLevel.pCovidx inside the union to WhereLevel.u.pCovidx. multi-or-covering-index
authordrh <drh@noemail.net>
Fri, 24 Aug 2012 23:24:15 +0000 (23:24 +0000)
committerdrh <drh@noemail.net>
Fri, 24 Aug 2012 23:24:15 +0000 (23:24 +0000)
FossilOrigin-Name: b722143d075979ba3d92b7b29e576ce2307187d1

manifest
manifest.uuid
src/sqliteInt.h
src/where.c

index a1afff8349731f71a3d71cc9dfbe5eccf37ebba9..2bf121ccfb38b80e24744e647ed2804f72254fe4 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\sa\sNEVER()\sthat\sis\sin\sfact\sreachable\son\san\sOOM.\s\sThis\sprobably\nhas\snothing\sto\sdo\swith\sthe\smulti-or-covering-index\schange\sbut\sjust\shappened\nto\sbe\sfound\swhile\stesting\sthat\schange.
-D 2012-08-24T21:54:11.844
+C Move\sfield\sWhereLevel.pCovidx\sinside\sthe\sunion\sto\sWhereLevel.u.pCovidx.
+D 2012-08-24T23:24:15.128
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in abd5c10d21d1395f140d9e50ea999df8fa4d6376
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -180,7 +180,7 @@ F src/select.c a9d68e04f07348038ac279f3316ee8f8e146f59a
 F src/shell.c 076e1c90d594644f36027c8ecff9a392cf2d3a06
 F src/sqlite.h.in f664797c68ced43c2ea2c541d4ec8e1e04ec68ac
 F src/sqlite3ext.h 6904f4aadf976f95241311fbffb00823075d9477
-F src/sqliteInt.h d5d74494335876dad1853b36559367927fe5f1e7
+F src/sqliteInt.h 497e89baddee92a4769cbc2c169b654a223f75d6
 F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
 F src/status.c 35939e7e03abf1b7577ce311f48f682c40de3208
 F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
@@ -250,7 +250,7 @@ F src/vtab.c bb8ea3a26608bb1357538a5d2fc72beba6638998
 F src/wal.c 9294df6f96aae5909ae1a9b733fd1e1b4736978b
 F src/wal.h 29c197540b19044e6cd73487017e5e47a1d3dac6
 F src/walker.c 3d75ba73de15e0f8cd0737643badbeb0e002f07b
-F src/where.c 27c9e43fecf88b843bf237564c7276ef51f67540
+F src/where.c 9a28820fb0ead5674d5b45dfdb32aef913fe40c3
 F test/8_3_names.test 631ea964a3edb091cf73c3b540f6bcfdb36ce823
 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
 F test/aggnested.test 0be144b453e0622a085fae8665c32f5676708e00
@@ -1013,7 +1013,7 @@ F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
 F tool/win/sqlite.vsix 67d8a99aceb56384a81b3f30d6c71743146d2cc9
-P 29d586178dcfdb99eaf7ce768668ab0aa9898c83
-R 858bc4272f754092a91123cbacf06ab0
+P 5499af53ebcdc21ae288aa2347aa21f6891d79ef
+R d51bc6dccf316fa29f046fa529eea646
 U drh
-Z 3f900117ffb7958920cf3a90738748c3
+Z cc4f76d0f6e610d4f3bf10f9821bb4e6
index 1bf899989e5965d2d939b185ba6944d88903d3ff..8a0b944a2970e44ab40eaa408b7cb1faf927b4ed 100644 (file)
@@ -1 +1 @@
-5499af53ebcdc21ae288aa2347aa21f6891d79ef
\ No newline at end of file
+b722143d075979ba3d92b7b29e576ce2307187d1
\ No newline at end of file
index aa554a23ac8328bb56d9156b76d716df4ae071e2..19cd05eeb83a6b17ba623e5a5d118da3a5e44a66 100644 (file)
@@ -1947,8 +1947,8 @@ struct WhereLevel {
         int addrInTop;         /* Top of the IN loop */
       } *aInLoop;           /* Information about each nested IN operator */
     } in;                 /* Used when plan.wsFlags&WHERE_IN_ABLE */
+    Index *pCovidx;       /* Possible covering index for WHERE_MULTI_OR */
   } u;
-  Index *pCovidx;       /* Possible covering index for WHERE_MULTI_OR levels */
 
   /* The following field is really not part of the current level.  But
   ** we need a place to cache virtual table index information for each
index 27fb0f8fceba4943dc9982efde3973af936a5bf9..a460abc2d7e816bfd41faebb5a9d6d9be8a24144 100644 (file)
@@ -4446,7 +4446,7 @@ static Bitmask codeOneLoopStart(
         }
       }
     }
-    pLevel->pCovidx = pCov;
+    pLevel->u.pCovidx = pCov;
     pLevel->iIdxCur = iCovCur;
     if( pAndExpr ){
       pAndExpr->pLeft = 0;
@@ -5277,7 +5277,7 @@ void sqlite3WhereEnd(WhereInfo *pWInfo){
     if( pLevel->plan.wsFlags & WHERE_INDEXED ){
       pIdx = pLevel->plan.u.pIdx;
     }else if( pLevel->plan.wsFlags & WHERE_MULTI_OR ){
-      pIdx = pLevel->pCovidx;
+      pIdx = pLevel->u.pCovidx;
     }
     if( pIdx && !db->mallocFailed){
       int k, j, last;