From 4a8b013ef67b5444d37c55bfaee3173d6fa617c2 Mon Sep 17 00:00:00 2001 From: drh Date: Wed, 9 Nov 2016 01:38:56 +0000 Subject: [PATCH] Make use of the unpacked key on the OP_IdxInsert on sorters with a LIMIT. FossilOrigin-Name: 42db7cd2c0b367f7dfe733bdaf006538937b812a --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/select.c | 3 ++- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/manifest b/manifest index e57915f70e..1d869017fc 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\stypo\son\sthe\sOP_IdxInsert\sdocumentation.\s\sNo\scode\schanges. -D 2016-11-09T01:19:25.538 +C Make\suse\sof\sthe\sunpacked\skey\son\sthe\sOP_IdxInsert\son\ssorters\swith\sa\sLIMIT. +D 2016-11-09T01:38:56.790 F Makefile.in 6fd48ffcf7c2deea7499062d1f3747f986c19678 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc e0217f2d35a0448abbe4b066132ae20136e8b408 @@ -387,7 +387,7 @@ F src/printf.c a5f0ca08ddede803c241266abb46356ec748ded1 F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 F src/resolve.c 3fac1b2737ea5a724f20b921ac7e259c9be2100b F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac -F src/select.c 7788e48a651bef02993531a41aad2ca516d1d4a2 +F src/select.c 0a7c523d755bcd39ae54f6a44bb66a7f0e1d89b3 F src/shell.c 63e54cfa1c7ec5b70a4c9a86502bc10280c3d5a3 F src/sqlite.h.in 97e9b0f952306677db82b055147ed1d99cb7ba66 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 @@ -1530,7 +1530,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 89d958abbac45f2ca5954080cd9e74ec9a07ebb2 -R 2f63be5b53b1764858d941957facd0a5 +P e4acd98207bf12b28f6c0f77896ba8f0b0a155d5 +R 7361f61ac78ae245768da69ccbec613a U drh -Z 100f9d5faafe3036eeb3f1b9e19b8a02 +Z 555ef190d20751c33a6a59c14a70c249 diff --git a/manifest.uuid b/manifest.uuid index eb365dc381..0428c98284 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -e4acd98207bf12b28f6c0f77896ba8f0b0a155d5 \ No newline at end of file +42db7cd2c0b367f7dfe733bdaf006538937b812a \ No newline at end of file diff --git a/src/select.c b/src/select.c index 91ff220d68..b82e7905cc 100644 --- a/src/select.c +++ b/src/select.c @@ -587,7 +587,8 @@ static void pushOntoSorter( }else{ op = OP_IdxInsert; } - sqlite3VdbeAddOp2(v, op, pSort->iECursor, regRecord); + sqlite3VdbeAddOp4Int(v, op, pSort->iECursor, regRecord, + regBase+nOBSat, nBase-nOBSat); if( iLimit ){ int addr; int r1 = 0; -- 2.47.2