]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid an unnecessary OP_Move operation for expression subqueries.
authordrh <drh@noemail.net>
Fri, 29 Aug 2014 12:29:39 +0000 (12:29 +0000)
committerdrh <drh@noemail.net>
Fri, 29 Aug 2014 12:29:39 +0000 (12:29 +0000)
FossilOrigin-Name: 462f42af52f146fd328ddcbbe78c8444ef7bd2c3

manifest
manifest.uuid
src/expr.c
src/select.c

index dbe5333a459a39bbf4008886bcb150b39248c768..c4e73d59dda635daf780316005ca9592e42f5938 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Improved\sWHERETRACE\smessages\sfor\sthe\sestimated\soutput\srow\sreductions\sfrom\nrange\sscans.
-D 2014-08-28T19:38:22.884
+C Avoid\san\sunnecessary\sOP_Move\soperation\sfor\sexpression\ssubqueries.
+D 2014-08-29T12:29:39.634
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 5eb79e334a5de69c87740edd56af6527dd219308
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -177,7 +177,7 @@ F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
 F src/ctime.c 0231df905e2c4abba4483ee18ffc05adc321df2a
 F src/date.c 593c744b2623971e45affd0bde347631bdfa4625
 F src/delete.c 5adcd322c6b08fc25d215d780ca62cebce66304d
-F src/expr.c 358634f4ddeeb4e69643cb6db5819104a7834c60
+F src/expr.c e1691ab0fe6be7247ef073b0038fb8ecd9944fad
 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
 F src/fkey.c 8d81a780ad78d16ec9082585758a8f1d6bf02ca3
 F src/func.c bbb724b74ed96ca42675a7274646a71dd52bcda7
@@ -223,7 +223,7 @@ F src/printf.c 00986c86ddfffefc2fd3c73667ff51b3b9709c74
 F src/random.c d10c1f85b6709ca97278428fd5db5bbb9c74eece
 F src/resolve.c 0ea356d32a5e884add23d1b9b4e8736681dd5697
 F src/rowset.c a9c9aae3234b44a6d7c6f5a3cadf90dce1e627be
-F src/select.c ea48e891406ccdf748f3eb02893e056d134a0fea
+F src/select.c 1c4667571f2c9e339b5a5c5b152a9ea7b0bc4163
 F src/shell.c 728d2226594d356bf4fbdbdfd08538fd78fd06f3
 F src/sqlite.h.in ed9d35990c61f0388ca6405706455c4095310553
 F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
@@ -1188,7 +1188,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 a9daf3ac444b896013f4054051937d49a597624a
-R 9b7fb0a8b772f987f88c09068dd60142
+P fdd478bb11eb9e244a7a1fb628ac27c53830fb24
+R ee023126020f0faa82dce1872da63eb6
 U drh
-Z 8017c3a896f88a1957938bddddebc44a
+Z 1a15b0689431fa59072b2264b67b8606
index 9b52e2f1ba7fae90cd0de0a1917cd540dc6fb0d3..380c902508398b945b3cccc959c3152ccd1703c0 100644 (file)
@@ -1 +1 @@
-fdd478bb11eb9e244a7a1fb628ac27c53830fb24
\ No newline at end of file
+462f42af52f146fd328ddcbbe78c8444ef7bd2c3
\ No newline at end of file
index fabdae2fcf3022d0704535f9813e531eef108f37..1a2465f7efb70d42c13a61cdd3fa7863654b6318 100644 (file)
@@ -1912,6 +1912,7 @@ int sqlite3CodeSubselect(
       sqlite3SelectDestInit(&dest, 0, ++pParse->nMem);
       if( pExpr->op==TK_SELECT ){
         dest.eDest = SRT_Mem;
+        dest.iSdst = dest.iSDParm;
         sqlite3VdbeAddOp2(v, OP_Null, 0, dest.iSDParm);
         VdbeComment((v, "Init subquery result"));
       }else{
index 932874d8fe7d7fef198f8eac484576232a158f2c..44b9cd034c96add1202e172b3edcf956812360d8 100644 (file)
@@ -829,7 +829,7 @@ static void selectInnerLoop(
       if( pSort ){
         pushOntoSorter(pParse, pSort, p, regResult);
       }else{
-        sqlite3ExprCodeMove(pParse, regResult, iParm, 1);
+        assert( regResult==iParm );
         /* The LIMIT clause will jump out of the loop for us */
       }
       break;