From: drh Date: Tue, 2 Oct 2012 01:25:16 +0000 (+0000) Subject: Make sure the outer loop cursor numbers are recorded in time for them to be X-Git-Tag: version-3.7.15~99 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a578d048c64859965f7f48397eb68e4fc6b4bb35;p=thirdparty%2Fsqlite.git Make sure the outer loop cursor numbers are recorded in time for them to be used by the ORDER BY optimizer. FossilOrigin-Name: 351dc8d9cab8a222f28fb865d3a7d1c622d60d6f --- diff --git a/manifest b/manifest index 2efd869be0..f2a8ebb39a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Improvements\sto\sthe\swheretrace\soutput. -D 2012-10-02T01:10:00.432 +C Make\ssure\sthe\souter\sloop\scursor\snumbers\sare\srecorded\sin\stime\sfor\sthem\sto\sbe\nused\sby\sthe\sORDER\sBY\soptimizer. +D 2012-10-02T01:25:16.426 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 5f4f26109f9d80829122e0e09f9cda008fa065fb F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -249,7 +249,7 @@ F src/vtab.c d8020c0a0e8ccc490ca449d7e665311b6e9f3ba9 F src/wal.c e1fe8f92a0ea0fef8faa87ec43a127a478589d22 F src/wal.h 29c197540b19044e6cd73487017e5e47a1d3dac6 F src/walker.c 3d75ba73de15e0f8cd0737643badbeb0e002f07b -F src/where.c 9f706f54008083dac6079a75463d6921eab2fecd +F src/where.c 0a309f52e9ca5e77250a242c2f0527754e3e30c4 F test/8_3_names.test 631ea964a3edb091cf73c3b540f6bcfdb36ce823 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 F test/aggnested.test 0be144b453e0622a085fae8665c32f5676708e00 @@ -1018,7 +1018,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 F tool/win/sqlite.vsix 67d8a99aceb56384a81b3f30d6c71743146d2cc9 -P 59c2be75ff8b8ccd77320b45e4088e5bf456a1d9 -R c1d8d9fb6c53d3d30af8c26e9e5fd207 +P 76b277655646a9fe0f336ff106157f1efcd32019 +R 8e3740840a007142381cf2f0396df8e5 U drh -Z 969a36303c6eae35969bc68961950155 +Z 2be46057d17778455d3bb7f9393d3220 diff --git a/manifest.uuid b/manifest.uuid index 2594ba29b7..53d466cfe9 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -76b277655646a9fe0f336ff106157f1efcd32019 \ No newline at end of file +351dc8d9cab8a222f28fb865d3a7d1c622d60d6f \ No newline at end of file diff --git a/src/where.c b/src/where.c index 7f08832437..739222338e 100644 --- a/src/where.c +++ b/src/where.c @@ -5116,6 +5116,7 @@ WhereInfo *sqlite3WhereBegin( } andFlags &= bestPlan.plan.wsFlags; pLevel->plan = bestPlan.plan; + pLevel->iTabCur = pTabList->a[bestJ].iCursor; testcase( bestPlan.plan.wsFlags & WHERE_INDEXED ); testcase( bestPlan.plan.wsFlags & WHERE_TEMP_INDEX ); if( bestPlan.plan.wsFlags & (WHERE_INDEXED|WHERE_TEMP_INDEX) ){ @@ -5189,7 +5190,6 @@ WhereInfo *sqlite3WhereBegin( pTabItem = &pTabList->a[pLevel->iFrom]; pTab = pTabItem->pTab; - pLevel->iTabCur = pTabItem->iCursor; pWInfo->nRowOut *= pLevel->plan.nRow; iDb = sqlite3SchemaToIndex(db, pTab->pSchema); if( (pTab->tabFlags & TF_Ephemeral)!=0 || pTab->pSelect ){