From: drh Date: Tue, 2 Sep 2014 15:49:47 +0000 (+0000) Subject: Merge the latest trunk changes, including the multi-threaded sorter, into X-Git-Tag: version-3.13.0~148^2~116 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf9ed6f9af8db145efb7294b1bb05b35fc70e7fc;p=thirdparty%2Fsqlite.git Merge the latest trunk changes, including the multi-threaded sorter, into the sessions branch. FossilOrigin-Name: d4cce2c71e64ab7b6a65a81b88b69445ed859351 --- bf9ed6f9af8db145efb7294b1bb05b35fc70e7fc diff --cc Makefile.in index 3292da7741,a2213e89e5..09a3682273 --- a/Makefile.in +++ b/Makefile.in @@@ -178,9 -176,8 +178,9 @@@ LIBOBJS0 = alter.lo analyze.lo attach.l mutex.lo mutex_noop.lo mutex_unix.lo mutex_w32.lo \ notify.lo opcodes.lo os.lo os_unix.lo os_win.lo \ pager.lo parse.lo pcache.lo pcache1.lo pragma.lo prepare.lo printf.lo \ - random.lo resolve.lo rowset.lo rtree.lo select.lo status.lo \ + random.lo resolve.lo rowset.lo rtree.lo \ + sqlite3session.lo select.lo status.lo \ - table.lo tokenize.lo trigger.lo \ + table.lo threads.lo tokenize.lo trigger.lo \ update.lo util.lo vacuum.lo \ vdbe.lo vdbeapi.lo vdbeaux.lo vdbeblob.lo vdbemem.lo vdbesort.lo \ vdbetrace.lo wal.lo walker.lo where.lo utf.lo vtab.lo diff --cc Makefile.msc index d246cf03c3,4173eaae27..33f42b45c6 --- a/Makefile.msc +++ b/Makefile.msc @@@ -645,9 -635,8 +645,9 @@@ LIBOBJS0 = vdbe.lo parse.lo alter.lo an mutex.lo mutex_noop.lo mutex_unix.lo mutex_w32.lo \ notify.lo opcodes.lo os.lo os_unix.lo os_win.lo \ pager.lo pcache.lo pcache1.lo pragma.lo prepare.lo printf.lo \ - random.lo resolve.lo rowset.lo rtree.lo select.lo status.lo \ + random.lo resolve.lo rowset.lo rtree.lo \ + sqlite3session.lo select.lo status.lo \ - table.lo tokenize.lo trigger.lo \ + table.lo threads.lo tokenize.lo trigger.lo \ update.lo util.lo vacuum.lo \ vdbeapi.lo vdbeaux.lo vdbeblob.lo vdbemem.lo vdbesort.lo \ vdbetrace.lo wal.lo walker.lo where.lo utf.lo vtab.lo diff --cc manifest index 1ee12f681d,58fd42dc62..33b9992ce7 --- a/manifest +++ b/manifest @@@ -1,9 -1,9 +1,9 @@@ - C Merge\srecent\sperformance\senhancements\sand\sthe\sCAST\soperator\senhancements\ninto\sthe\ssessions\sbranch. - D 2014-08-26T02:15:07.293 -C Update\scomments\sin\sthe\sANALYZE\scommand\sthat\sdescribe\show\sthe\sStat4Accum\nobjecct\sis\spassed\saround\swithin\sthe\sVDBE.\s\sNo\schanges\sto\sfunctional\scode. -D 2014-09-01T23:06:44.401 ++C Merge\sthe\slatest\strunk\schanges,\sincluding\sthe\smulti-threaded\ssorter,\sinto\nthe\ssessions\sbranch. ++D 2014-09-02T15:49:47.703 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f - F Makefile.in d5ad373b7a23525414b8843b3084cf90c560d92f -F Makefile.in cf57f673d77606ab0f2d9627ca52a9ba1464146a ++F Makefile.in dd5f245aa8c741bc65845747203c8ce2f3fb6c83 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 - F Makefile.msc f1bbf555916b6e60887d86cea62f27e6a26cdb24 -F Makefile.msc e31dee24038965fb6269d6d61073fd6b7e331dec ++F Makefile.msc 35808af7f8d999176ed5b38fb482a87a129ee3e1 F Makefile.vxworks 034289efa9d591b04b1a73598623119c306cbba0 F README.md 64f270c43c38c46de749e419c22f0ae2f4499fe8 F VERSION 53a0b870e7f16d3b06623c31d233a304c163a6af @@@ -163,7 -147,7 +163,7 @@@ F ext/session/test_session.c a252fb669d F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60 - F main.mk a9987b6655610e663e9f055e0f1646227f45cddd -F main.mk 9b5ccf1097050b1f16681f7d4beeea4f7f7ac2c3 ++F main.mk 4dfbd8fbc91ee5732554b31a205960241c4fc059 F mkopcodec.awk c2ff431854d702cdd2d779c9c0d1f58fa16fa4ea F mkopcodeh.awk c6b3fa301db6ef7ac916b14c60868aeaec1337b5 F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83 @@@ -192,8 -176,8 +192,8 @@@ F src/callback.c b97d0695ffcf6a8710ee44 F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac F src/ctime.c 0231df905e2c4abba4483ee18ffc05adc321df2a F src/date.c 593c744b2623971e45affd0bde347631bdfa4625 -F src/delete.c 5adcd322c6b08fc25d215d780ca62cebce66304d +F src/delete.c cb7a757eb829ebb046c66f6399435c6636fe1314 - 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 @@@ -206,7 -190,7 +206,7 @@@ F src/journal.c b4124532212b6952f42eb2c F src/legacy.c 87c92f4a08e2f70220e3b22a9c3b2482d36a134a F src/lempar.c cdf0a000315332fc9b50b62f3b5e22e080a0952b F src/loadext.c 31c2122b7dd05a179049bbf163fd4839f181cbab - F src/main.c f375a8d81960b5ff3a7a765e1367b0d0cd90f222 -F src/main.c d2ef03a45552e11813c68326d5edfda992e319d4 ++F src/main.c 20a0c78f2b9f66766402d2a6563ffe047c64a8be F src/malloc.c 954de5f998c23237e04474a3f2159bf483bba65a F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c c0c990fcaddff810ea277b4fb5d9138603dd5d4b @@@ -239,17 -223,17 +239,17 @@@ F src/printf.c 00986c86ddfffefc2fd3c736 F src/random.c d10c1f85b6709ca97278428fd5db5bbb9c74eece F src/resolve.c 0ea356d32a5e884add23d1b9b4e8736681dd5697 F src/rowset.c a9c9aae3234b44a6d7c6f5a3cadf90dce1e627be - F src/select.c ea48e891406ccdf748f3eb02893e056d134a0fea - F src/shell.c 34be9dc9e7b96081488acebecae6cd92632397a6 - F src/sqlite.h.in 021a1f5c50e83060675d994a6014fd409e611d9e + F src/select.c 89e569b263535662f54b537eb9118b2c554ae7aa -F src/shell.c 713cef4d73c05fc8e12f4960072329d767a05d50 -F src/sqlite.h.in 43852c8b68b4c579948cb37182918078836c5c06 ++F src/shell.c ec6d5f630ed617dc80cbc35d9e45fe47f07923db ++F src/sqlite.h.in 49c501f66e0d6591ebe7588edddf0c4b06c8b9e9 F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc - F src/sqliteInt.h 2ecc10cd81d38e8617e24ed425e6ec792195b0f0 -F src/sqliteInt.h 6244ee9052752e26d1275ab20c9b774385aa57d2 ++F src/sqliteInt.h 465b40ebe68a1a4127e33740550ac53976172652 F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d F src/status.c 7ac05a5c7017d0b9f0b4bcd701228b784f987158 F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e -F src/tclsqlite.c 7d100e2e7aad614bb3d7026a41a0e3827dbaaebc +F src/tclsqlite.c 30d8f4ba516061832cfe10d7c71d84e17bff1918 - F src/test1.c 14409a611e9c27c6c522c610bbff5561f05c1558 + F src/test1.c 363a5089230a92cf0aaa7a2945da7f2bf3b0a8d3 F src/test2.c 98049e51a17dc62606a99a9eb95ee477f9996712 F src/test3.c 1c0e5d6f080b8e33c1ce8b3078e7013fdbcd560c F src/test4.c 9b32d22f5f150abe23c1830e2057c4037c45b3df @@@ -262,7 -246,7 +262,7 @@@ F src/test_async.c 21e11293a2f72080eda7 F src/test_autoext.c dea8a01a7153b9adc97bd26161e4226329546e12 F src/test_backup.c 3875e899222b651e18b662f86e0e50daa946344e F src/test_btree.c 2e9978eca99a9a4bfa8cae949efb00886860a64f - F src/test_config.c f0252240543895769a6bf037c206a4af74cf1e3c -F src/test_config.c d5f00627c4f47515a57f905806558153cccd7253 ++F src/test_config.c a65043d01ad3bd2dfe9a3aa7e39a9935b069f6aa F src/test_demovfs.c 69b2085076654ebc18014cbc6386f04409c959a9 F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc F src/test_fs.c ced436e3d4b8e4681328409b8081051ce614e28f @@@ -294,20 -278,21 +294,21 @@@ F src/test_thread.c 1e133a40b50e9c035b0 F src/test_vfs.c f84075a388527892ff184988f43b69ce69b8083c F src/test_vfstrace.c bab9594adc976cbe696ff3970728830b4c5ed698 F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9 + F src/threads.c 22dded4283dc4b25422f6444cdcb8d6b1ea0b5ff F src/tokenize.c ae45399d6252b4d736af43bee1576ce7bff86aec F src/trigger.c 4bddd12803275aa98f1c7ce0118fceb02b2167f6 -F src/update.c ea336ce7b8b3fc5e316ba8f082e6445babf81059 +F src/update.c b0f38fda25d532343d54b7dc49f55ab73e92ca45 F src/utf.c 77abb5e6d27f3d236e50f7c8fff1d00e15262359 F src/util.c 068dcd26354a3898ccc64ad5c4bdb95a7a15d33a F src/vacuum.c 3728d74919d4fb1356f9e9a13e27773db60b7179 - F src/vdbe.c 5e576d164e6cfb8ef1c6324c3d6eca56322fd656 -F src/vdbe.c 90db7ad740b6d3f7ab446e6244dbc17ce495cca6 -F src/vdbe.h c63fad052c9e7388d551e556e119c0bcf6bebdf8 -F src/vdbeInt.h cdc8e421f85beb1ac9b4669ec5beadab6faa15e0 -F src/vdbeapi.c 09677a53dd8c71bcd670b0bd073bb9aefa02b441 -F src/vdbeaux.c cef5d34a64ae3a65b56d96d3fd663246ec8e1c36 -F src/vdbeblob.c 848238dc73e93e48432991bb5651bf87d865eca4 ++F src/vdbe.c 591bd4a84f1c37d004f545f8e805b7e597afc87f +F src/vdbe.h ca3b6df299adce6e2f499c57e42ae54f142ae823 - F src/vdbeInt.h 6a50eb240aac711ac609f624daa225781711c6fd - F src/vdbeapi.c ce34bb80571f72463dbd45380e3eae65ddc52018 - F src/vdbeaux.c 236cc1afd82ab542fc752ed760471ac816cb7902 ++F src/vdbeInt.h 872d39f632bfd12897a6ab184ad4c1df5c38eb7a ++F src/vdbeapi.c 6b14e76648bbd10a95a2f3963ee09a8d06658f5e ++F src/vdbeaux.c 3118c164becbbf5a017d04826bbd93559ab9e190 +F src/vdbeblob.c d65b01f439df63911ac3d7a9a85c15503965f2c3 - F src/vdbemem.c 4e08ea087aea367dae7c45129b75487e0056e819 - F src/vdbesort.c f7f5563bf7d4695ca8f3203f3bf9de96d04ed0b3 + F src/vdbemem.c 921d5468a68ac06f369810992e84ca22cc730a62 + F src/vdbesort.c 02646a9f86421776ae5d7594f620f9ed669d3698 F src/vdbetrace.c 6f52bc0c51e144b7efdcfb2a8f771167a8816767 F src/vtab.c 019dbfd0406a7447c990e1f7bd1dfcdb8895697f F src/wal.c 264df50a1b33124130b23180ded2e2c5663c652a @@@ -771,7 -756,7 +772,7 @@@ F test/pagesize.test 1dd51367e752e742f5 F test/pcache.test b09104b03160aca0d968d99e8cd2c5b1921a993d F test/pcache2.test a83efe2dec0d392f814bfc998def1d1833942025 F test/percentile.test b98fc868d71eb5619d42a1702e9ab91718cbed54 - F test/permutations.test bf568516e21758f2961a4612f29dc422d3ab75c1 -F test/permutations.test cef25f5e8499a15846eccd06785f17f4180407ab ++F test/permutations.test 89f594fdba922586d46c3e0a7ab4990b5a7f8da7 F test/pragma.test 19d0241a007bcdd77fc2606ec60fc60357e7fc8b F test/pragma2.test aea7b3d82c76034a2df2b38a13745172ddc0bc13 F test/printf.test ec9870c4dce8686a37818e0bf1aba6e6a1863552 @@@ -883,7 -871,7 +888,7 @@@ F test/tclsqlite.test a7308276aad2e6c0b F test/tempdb.test 19d0f66e2e3eeffd68661a11c83ba5e6ace9128c F test/temptable.test d2c9b87a54147161bcd1822e30c1d1cd891e5b30 F test/temptrigger.test 8ec228b0db5d7ebc4ee9b458fc28cb9e7873f5e1 - F test/tester.tcl eac48cc21d519ac33a4fbaa3b425d178861fe741 -F test/tester.tcl ed77454e6c7b40eb501db7e79d1c6fbfd3eebbff ++F test/tester.tcl 655afed0715958ec50fd575549e6c4e57311ff18 F test/thread001.test 9f22fd3525a307ff42a326b6bc7b0465be1745a5 F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58 F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7 @@@ -1170,11 -1158,11 +1175,11 @@@ F tool/logest.c eef612f8adf4d0993dafed0 F tool/mkautoconfamal.sh 5dc5010e2e748a9e1bba67baca5956a2c2deda7b F tool/mkkeywordhash.c dfff09dbbfaf950e89af294f48f902181b144670 F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e - F tool/mkpragmatab.tcl 78a77b2c554d534c6f2dc903130186ed15715460 + F tool/mkpragmatab.tcl cce51d8f60c7f145d8fccabe6b5dfdedf31c5f5c F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97 - F tool/mksqlite3c-noext.tcl 1712d3d71256ca1f297046619c89e77a4d7c8f6d - F tool/mksqlite3c.tcl d2a3f219da0d86cea1e7e7101f819e187385ea1d + F tool/mksqlite3c-noext.tcl 88a1e3b0c769773fb7a9ebb363ffc603a4ac21d8 -F tool/mksqlite3c.tcl e72c0c97fe1a105fa9616483e652949be2199fe6 -F tool/mksqlite3h.tcl ba24038056f51fde07c0079c41885ab85e2cff12 ++F tool/mksqlite3c.tcl a2f61b529778ffe620531352c03b5cdc6fd03c0a +F tool/mksqlite3h.tcl 2d0f1b3768f8d000b7881217d5fd4c776eb27467 F tool/mksqlite3internalh.tcl b6514145a7d5321b47e64e19b8116cc44f973eb1 F tool/mkvsix.tcl 52a4c613707ac34ae9c226e5ccc69cb948556105 F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091 @@@ -1205,7 -1193,7 +1210,7 @@@ F tool/vdbe_profile.tcl 67746953071a9f8 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f - P 0b9e2c3269695713b538561d999c68097db70f0c af364cce9da0961593ef876b646197f82df08ad5 - R 7c6d04c5134339ec2be8d6e1d0b0aa83 -P 4cae93f8ae8fb3fe38fd5dc7d3a5ea0d11552841 -R fe37d23fb1f96547febf2ff7c0ba49b9 ++P 08ae974ac80fabe53f515bbbd93ccf55de8ee671 9779c7a9eb1e2bd36e9286331a9314f064014d80 ++R 11d01aea9d4869c03771e6bed22886b5 U drh - Z 9ac7a7803f5fd67d6db4d00d2f3fd4ea -Z 29e2a2847ff584a00093c5b89ffca704 ++Z 5223b9b83d8a079e78fcc2500add2ce8 diff --cc manifest.uuid index 796f45da2d,af2604f469..89f6e35640 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 08ae974ac80fabe53f515bbbd93ccf55de8ee671 -9779c7a9eb1e2bd36e9286331a9314f064014d80 ++d4cce2c71e64ab7b6a65a81b88b69445ed859351 diff --cc src/shell.c index 932f561bd1,afe01ef1a1..c7089fa8f2 --- a/src/shell.c +++ b/src/shell.c @@@ -492,12 -480,15 +493,19 @@@ struct ShellState int *aiIndent; /* Array of indents used in MODE_Explain */ int nIndent; /* Size of array aiIndent[] */ int iIndent; /* Index of current op in aiIndent[] */ +#if defined(SQLITE_ENABLE_SESSION) + int nSession; /* Number of active sessions */ + OpenSession aSession[4]; /* Array of sessions. [0] is in focus. */ +#endif }; + /* + ** These are the allowed shellFlgs values + */ + #define SHFLG_Scratch 0x00001 /* The --scratch option is used */ + #define SHFLG_Pagecache 0x00002 /* The --pagecache option is used */ + #define SHFLG_Lookaside 0x00004 /* Lookaside memory is used */ + /* ** These are the allowed modes. */ diff --cc src/vdbeInt.h index 54dd63f548,ef096bebb6..3cb8ddca43 --- a/src/vdbeInt.h +++ b/src/vdbeInt.h @@@ -458,11 -439,9 +458,11 @@@ int sqlite3VdbeMemGrow(Mem *pMem, int n int sqlite3VdbeCloseStatement(Vdbe *, int); void sqlite3VdbeFrameDelete(VdbeFrame*); int sqlite3VdbeFrameRestore(VdbeFrame *); +void sqlite3VdbePreUpdateHook( + Vdbe *, VdbeCursor *, int, const char*, Table *, i64, int); int sqlite3VdbeTransferError(Vdbe *p); - int sqlite3VdbeSorterInit(sqlite3 *, VdbeCursor *); + int sqlite3VdbeSorterInit(sqlite3 *, int, VdbeCursor *); void sqlite3VdbeSorterReset(sqlite3 *, VdbeSorter *); void sqlite3VdbeSorterClose(sqlite3 *, VdbeCursor *); int sqlite3VdbeSorterRowkey(const VdbeCursor *, Mem *);