]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Performance improvements to the external merge-sorter. Keep content on an
authordrh <drh@noemail.net>
Sat, 3 Sep 2011 17:07:26 +0000 (17:07 +0000)
committerdrh <drh@noemail.net>
Sat, 3 Sep 2011 17:07:26 +0000 (17:07 +0000)
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

1  2 
manifest
manifest.uuid
test/misc3.test

diff --cc manifest
index 20cd63560ccd12ca8501135d68b0c0446e8b9e94,aa9396df26fd82ffe57204ce04a3195f9810c180..0291313011cb639e787482e352e4713aad3b581d
+++ 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 0f07cdea416580068c3c61e35ae8669f6762361a,f0c89b9c6dcdb463be80d715c6fe57ad814d2fdb..2d5de7cdee51ad89efbd7376c0bc1bb770b304fc
@@@ -1,1 -1,1 +1,1 @@@
- 61bda876af6df3170263d41d2933168305de58d2
 -99e34bdce4ccca15b79159b03b96787e7a7ff85b
++4c43e8b2d2c1d8dcba3cd1c3f2ec4e19ab419430
diff --cc test/misc3.test
index 94a43c437e4d8cd8deec92417f2cbcc2111594a2,94a43c437e4d8cd8deec92417f2cbcc2111594a2..2aec49af98ecfbfb4feeaf95e3a848d0301c3d78
@@@ -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 {