From: drh Date: Sat, 3 Sep 2011 17:07:26 +0000 (+0000) Subject: Performance improvements to the external merge-sorter. Keep content on an X-Git-Tag: version-3.7.8~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d40807ddef7fbf73d1019ca3afd43c685dc34055;p=thirdparty%2Fsqlite.git Performance improvements to the external merge-sorter. Keep content on an in-memory linked lists rather than an ephemeral table prior to spilling to disk. Use the external merge-sorter to implement ORDER BY and GROUP BY in addition to CREATE INDEX. FossilOrigin-Name: 4c43e8b2d2c1d8dcba3cd1c3f2ec4e19ab419430 --- d40807ddef7fbf73d1019ca3afd43c685dc34055 diff --cc manifest index 20cd63560c,aa9396df26..0291313011 --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C Remove\sunused\slocal\svariable. - D 2011-09-02T15:08:28.662 -C Simplification\sand\sperformance\stweaks\sin\svdbeSorterMerge(). -D 2011-09-03T16:42:38.728 ++C Performance\simprovements\sto\sthe\sexternal\smerge-sorter.\s\sKeep\scontent\son\san\nin-memory\slinked\slists\srather\sthan\san\sephemeral\stable\sprior\sto\sspilling\sto\ndisk.\s\sUse\sthe\sexternal\smerge-sorter\sto\simplement\sORDER\sBY\sand\sGROUP\sBY\nin\saddition\sto\sCREATE\sINDEX. ++D 2011-09-03T17:07:26.674 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in d314143fa6be24828021d3f583ad37d9afdce505 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@@ -166,9 -166,9 +166,9 @@@ F src/os.h 9dbed8c2b9c1f2f2ebabc09e4982 F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04 F src/os_os2.c 4a75888ba3dfc820ad5e8177025972d74d7f2440 F src/os_unix.c 10e0c4dcdbec8d4189890fdf3e71b32efae194e3 -F src/os_win.c 45de13c6c3501cfd6469b2b34149b823060e39f4 +F src/os_win.c 33b7b7b48939af5cef2305f5ded19d45c025e2c7 - F src/pager.c 817f7f7140c9fa2641f28e6330e924708ddd870d - F src/pager.h 2bab1b2ea4eac58663b5833e3522e36b5ff63447 + F src/pager.c 5545863e4e246e1744cfb6993821c6e4b63ffb64 + F src/pager.h 6bea8d1949db33768de1c5b4133b267b40845f8b F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58 F src/pcache.c 49e718c095810c6b3334e3a6d89970aceaddefce F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050 @@@ -592,7 -592,7 +592,7 @@@ F test/minmax2.test 33504c01a03bd992261 F test/minmax3.test cc1e8b010136db0d01a6f2a29ba5a9f321034354 F test/misc1.test 55cb2bfbf4a8cd61f4be1effc30426ad41696bff F test/misc2.test 00d7de54eda90e237fc9a38b9e5ccc769ebf6d4d --F test/misc3.test 72c5dc87a78e7865c5ec7a969fc572913dbe96b6 ++F test/misc3.test 8e42d54b772a23b3c573672d3e0894d15b05221d F test/misc4.test 9c078510fbfff05a9869a0b6d8b86a623ad2c4f6 F test/misc5.test 528468b26d03303b1f047146e5eefc941b9069f5 F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91 @@@ -961,7 -961,7 +961,7 @@@ F tool/symbols.sh caaf6ccc7300fd4335331 F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/warnings.sh b7fdb2cc525f5ef4fa43c80e771636dd3690f9d2 - P 2869ed28299b1c9f355ecc24635830f7f1249126 - R d7407cbd16401c8c8a7c8d014c2baaa2 - U mistachkin - Z 3bc82a48805c63310ead923d005627b4 -P 666c2c3cff51dac2ba5689b75705d99c3705673b -R cfceda33d1a4c239172824f11326438a ++P 61bda876af6df3170263d41d2933168305de58d2 99e34bdce4ccca15b79159b03b96787e7a7ff85b ++R da1f20303c5b87a4ef556300a531567d + U drh -Z 0da609a19e6bdcd2176629a62a8129db ++Z 01e7a916345d0e3901e7a472c5d2f441 diff --cc manifest.uuid index 0f07cdea41,f0c89b9c6d..2d5de7cdee --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 61bda876af6df3170263d41d2933168305de58d2 -99e34bdce4ccca15b79159b03b96787e7a7ff85b ++4c43e8b2d2c1d8dcba3cd1c3f2ec4e19ab419430 diff --cc test/misc3.test index 94a43c437e,94a43c437e..2aec49af98 --- a/test/misc3.test +++ b/test/misc3.test @@@ -270,7 -270,7 +270,7 @@@ ifcapable {explain} CREATE UNIQUE INDEX ex1i1 ON ex1(a); EXPLAIN REINDEX; }] -- regexp { IsUnique \d+ \d+ \d+ \d+ } $x ++ regexp { SorterCompare \d+ \d+ \d+ } $x } {1} if {[regexp {16} [db one {PRAGMA encoding}]]} { do_test misc3-6.11-utf16 {