]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid reusing temporary registers in co-routines when doing
authordrh <drh@noemail.net>
Wed, 19 Mar 2014 15:17:24 +0000 (15:17 +0000)
committerdrh <drh@noemail.net>
Wed, 19 Mar 2014 15:17:24 +0000 (15:17 +0000)
block-sorting.

FossilOrigin-Name: 463d921b519b08648a715e987c430f06b06bae84

manifest
manifest.uuid
src/select.c

index cdb6bd84834ae5fcc754e6fca3f3dd4aec514b10..34c7b8395dd5e76c27dea496c9a577e2a9375d3d 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Make\ssure\sthe\swhere.c\squery\splanner\snever\sreports\sthat\sthe\snumber\sof\sORDER\sBY\nterms\sthat\sare\ssatisfied\sby\sindices\sis\snegative.
-D 2014-03-19T14:30:55.491
+C Avoid\sreusing\stemporary\sregisters\sin\sco-routines\swhen\sdoing\nblock-sorting.
+D 2014-03-19T15:17:24.171
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -217,7 +217,7 @@ F src/printf.c e5a0005f8b3de21f85da6a709d2fbee76775bf4b
 F src/random.c d10c1f85b6709ca97278428fd5db5bbb9c74eece
 F src/resolve.c 273d5f47c4e2c05b2d3d2bffeda939551ab59e66
 F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0
-F src/select.c bd6ac5dc27046877f53065ea25f36ca90db4c594
+F src/select.c 45d3ac1273b15e98f94c261bd40eb54a8eff0ac7
 F src/shell.c bab4de12b441369491812ecc93212ff4deda68fa
 F src/sqlite.h.in a2ef671f92747a5a1c8a47bad5c585a8dd9eca80
 F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e
@@ -1156,7 +1156,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
-P 59742dd4c5259883850044d0938248b009ebd045
-R 48f9fc76ec5916ff8df0bfaab631c0e0
+P b186d8d15a10d5e8fcae9ae72e8624d71831f5bd
+R b0910f2ab36ae08486561cabd81d63b0
 U drh
-Z 42480fcdcdf9fedc12ae658e080be0a9
+Z 0471d95e83a3c5ea30582909f120da3f
index ee59a2b175e4115a3a1ebdb73454c199e29d8c67..6cd642341c1daaad4d6f2535655317d4bb86ff25 100644 (file)
@@ -1 +1 @@
-b186d8d15a10d5e8fcae9ae72e8624d71831f5bd
\ No newline at end of file
+463d921b519b08648a715e987c430f06b06bae84
\ No newline at end of file
index b3f7f861bcf57c20b1beac29cd43213d02f1dfed..087cd401f0dad701a465fcc51f7f3693b8b5bb6d 100644 (file)
@@ -509,8 +509,10 @@ static void pushOntoSorter(
     op = OP_IdxInsert;
   }
   sqlite3VdbeAddOp2(v, op, pSort->iECursor, regRecord);
-  sqlite3ReleaseTempReg(pParse, regRecord);
-  sqlite3ReleaseTempRange(pParse, regBase, nExpr+2);
+  if( nOBSat==0 ){
+    sqlite3ReleaseTempReg(pParse, regRecord);
+    sqlite3ReleaseTempRange(pParse, regBase, nExpr+2);
+  }
   if( pSelect->iLimit ){
     int addr1, addr2;
     int iLimit;