From: drh Date: Fri, 4 Mar 2016 14:57:51 +0000 (+0000) Subject: Merge recent enhancements from trunk, and especially the changes that X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07a6166f234009e1e5f88cecfae1a9e53d29ea64;p=thirdparty%2Fsqlite.git Merge recent enhancements from trunk, and especially the changes that reduce the heap-memory footprint of schemas, and defer opening and writing to statement journals. FossilOrigin-Name: 2f0c195ccc3c9550f0664223fc355b1c27063eba --- 07a6166f234009e1e5f88cecfae1a9e53d29ea64 diff --cc manifest index 3ff715555c,5e68a8f7a2..75664350ab --- a/manifest +++ b/manifest @@@ -1,8 -1,8 +1,8 @@@ - C Merge\sall\srecent\senhancements\sfrom\strunk,\sand\sin\sparticular\sthe\nSQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER\schange. - D 2016-02-26T16:14:59.261 - F Makefile.in 6bc82e8fca16b46e6158b5614f16b68cc42cbe5d -C Defer\sopening\sand\swriting\sstatement\sjournals\suntil\sthe\ssize\sreaches\sa\nthreshold\s(currently\s64KiB). -D 2016-03-04T14:43:44.681 -F Makefile.in ead489fe5d3313b8a2a8d5f3710173a4b50dd2e0 ++C Merge\srecent\senhancements\sfrom\strunk,\sand\sespecially\sthe\schanges\sthat\nreduce\sthe\sheap-memory\sfootprint\sof\sschemas,\sand\sdefer\sopening\sand\swriting\nto\sstatement\sjournals. ++D 2016-03-04T14:57:51.652 ++F Makefile.in 6fbc35c235396c5e7884e5821b2c4819a2828553 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 - F Makefile.msc 28fc4ee02333996d31b3602b39eeb8e609a89ce4 + F Makefile.msc d68db8ddac21ea2576ea5b446f12cf9ebe897a03 F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7 F VERSION c6b1f51809551d60ad001e6d87cf3ab2c7f54b6f F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50 @@@ -276,7 -273,7 +276,7 @@@ F ext/userauth/userauth.c 5fa3bdb492f48 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60 - F main.mk 4a722ea79e8a7b42071de4dcd3cff7ba8f8713c9 -F main.mk d9982cb6a42b1c9da7d61cebae973cd6b034de61 ++F main.mk a1829e4e17a883c03032ee8d320e0bd0d0801cba F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83 F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271 F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504 @@@ -295,10 -292,10 +295,10 @@@ F src/auth.c b56c78ebe40a2110fd361379f7 F src/backup.c f60f0aa55d25d853ffde53d0b0370a7bb7ee41ce F src/bitvec.c 3ee4c8b2c94ed3a7377256e18199e6ff5cf33f63 F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73 -F src/btree.c 7bb920c473c277380fcb3e8a8ee28ce1a48e0abc +F src/btree.c 975209703bd78b927cd4a0cb59ee0be5d48437b5 F src/btree.h a5008b9afe56e8e54ade6c436a910f112defcca9 F src/btreeInt.h c18b7d2a3494695133e4e60ee36061d37f45d9a5 - F src/build.c 6661513c8f90a23d44ed5e5ada7ea40fac6b6b77 + F src/build.c 43b93fe757bfffe00f97462596418b052eefdccd F src/callback.c 2e76147783386374bf01b227f752c81ec872d730 F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e F src/ctime.c 60e135af364d777a9ab41c97e5e89cd224da6198 @@@ -313,11 -310,11 +313,11 @@@ F src/global.c ded7b97efd16efda5062b65e F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5 F src/hash.h c8f3c31722cf3277d03713909761e152a5b81094 F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08 - F src/insert.c 9ca97272e9f74ed0efddf3b4350ee12740cebbef - F src/journal.c fe3a3e2559ce3ce9d371afd30fbabbc074174575 + F src/insert.c 723d5d708cdb61bdd47c00b9f07c75be45aefc09 + F src/journal.c 673cbdde5676eb0c55848f561575d45b609c820d -F src/legacy.c 75d3023be8f0d2b99d60f905090341a03358c58e +F src/legacy.c b419b813f192eef79d73f968511d2ee129525e21 F src/loadext.c 9e2a41adcaff16ebc1ebff1f336cbf33de55396f - F src/main.c 7b310607d36a7c9754671284f646e0ea5196d299 -F src/main.c 32c45647866429f34d7a13a717172a8e7d0a1056 ++F src/main.c 6f481d601a8a1ad476ca15f1eae64abad2b5509e F src/malloc.c 1443d1ad95d67c21d77af7ae3f44678252f0efec F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c 6919bcf12f221868ea066eec27e579fed95ce98b @@@ -332,38 -329,37 +332,38 @@@ F src/mutex_noop.c 9d4309c075ba9cc7249e F src/mutex_unix.c 27bb6cc49485ee46711a6580ab7b3f1402211d23 F src/mutex_w32.c 5e6fe1c298fb5a8a15aaed4161d5759311431c17 F src/notify.c 9711a7575036f0d3040ba61bc6e217f13a9888e7 - F src/os.c be9908f7b1f7f7a5e110f9c5cb08dc0264e2f5a9 -F src/os.c f89e3ca1c2e3d5015b847aec60371c474acbac82 ++F src/os.c 4bcb5173e2b51e254397fbed13ed384eb2dd75bf F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85 F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa - F src/os_unix.c df8e43477f40ddcf707a9f3fabf7a970b7a5c157 -F src/os_unix.c f5bac8e74aaefc4ea520e43b4540793c3b8a9e8f -F src/os_win.c f0d7aa603eb6262143d7169a222aea07c4fca91d ++F src/os_unix.c 4547ba822e88bbbb4749730fb0825e8428485610 +F src/os_win.c 390534cac9a3730d589241d4c452901bd2aaf7bd F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca - F src/pager.c 14a1213df1e8483c0c84d0014be40fb69b206165 -F src/pager.c 2bc43817697b5a4e88fd6a2cdb2cb25f2223505c -F src/pager.h e1d38a2f14849e219df0f91f8323504d134c8a56 ++F src/pager.c b22ed0d3f981be5c7d0a802cd9d85d02878f799e +F src/pager.h ff4c0c4bdf5e0e1d6a6c004313e240822ceee4a1 - F src/parse.y c3ce2c4a7cbf0b699239be6b2a945c5cb51875e2 + F src/parse.y 5ea8c81c5c41b27887f41b4a7e1c58470d7d3821 F src/pcache.c 647bb53a86b7bbcf55ad88089b3ea5a9170b90df F src/pcache.h 4d0ccaad264d360981ec5e6a2b596d6e85242545 F src/pcache1.c 72f644dc9e1468c72922eff5904048427b817051 - F src/pragma.c fc4b8918ea5a5dd0bd9f6f8b2dacaba1d6d59875 -F src/pragma.c 42b3f1475b483710ba1dd1cc1ecc0c0f8db59a2e ++F src/pragma.c 2c1fa795a12694b4e79b7837bab6aea79040aa27 F src/pragma.h 64c78a648751b9f4f297276c4eb7507b14b4628c -F src/prepare.c 22df6171aec1d86904ed2ad30c2348a5748aa04e +F src/prepare.c 9c56ea254317e27d3a1273fa812b8578b5e2f850 F src/printf.c 63e6fb12bbe702dd664dc3703776c090383a5a26 F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 F src/resolve.c b8f7174e5f8c33c44ded3a25a973d0bb89228c20 F src/rowset.c 9fe4b3ad7cc00944386bb600233d8f523de07a6e - F src/select.c 1bacfde7b7cec134d2b354cbcf67bafc67078431 - F src/shell.c 89b73e894e737cc2f21e4bce0feb3ea21cc61124 - F src/sqlite.h.in b02a27147028a00475a9db30565b9e7881df660a + F src/select.c 137b31daa84d57d67847bf621bb54f3353e2077b + F src/shell.c 5e0ab1e708dc294330ccd8230536e1801f60822e -F src/sqlite.h.in 57d2a02b14c9ec4f7cb294153eaf62294dc5aa68 ++F src/sqlite.h.in cc65ace88ea9f6eefceeeb680407b7544fea8535 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 +F src/sqlite3_private.h a81a9c5f97c095cc3e86914a05f8fabe0011f4a1 F src/sqlite3ext.h dfbe62ffd95b99afe2140d8c35b180d11924072d - F src/sqliteInt.h a8c20484ff153c96e57491c190b5ae337e6abd94 - F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46 -F src/sqliteInt.h 8a4810fa90b17eb08acab43649b877e894ea1e98 ++F src/sqliteInt.h 22d2238dfba194380f43eb7c4ff2143665fd524b + F src/sqliteLimit.h 7b28cf72cbd52f178bfc97ea266445e351f2cd24 F src/status.c 70912d7be68e9e2dbc4010c93d344af61d4c59ba F src/table.c 5226df15ab9179b9ed558d89575ea0ce37b03fc9 - F src/tclsqlite.c 13debcc6a5ca1217486f8903768c01114fbe8b58 + F src/tclsqlite.c 54dca4eaf3a9cb0a4b845ef54ffa99225c30a52e -F src/test1.c f14a6f9e2cff6cba4d83e2b0c52857f61886cead +F src/test1.c c506aae8a90fadbf4dfda1a9f7acec77356879b9 F src/test2.c 5586f43fcd9a1be0830793cf9d354082c261b25b F src/test3.c a8887dabbbee3059af338f20d290084a63ed1b0f F src/test4.c d168f83cc78d02e8d35567bb5630e40dcd85ac1e @@@ -375,9 -371,10 +375,10 @@@ F src/test9.c bea1e8cf52aa93695487baded F src/test_async.c 21e11293a2f72080eda70e1124e9102044531cd8 F src/test_autoext.c dea8a01a7153b9adc97bd26161e4226329546e12 F src/test_backup.c 2e6e6a081870150f20c526a2e9d0d29cda47d803 + F src/test_bestindex.c cd36324f05404df5f1a82608a321b91932a549ea F src/test_blob.c b2551a9b5573232db5f66f292307c37067937239 F src/test_btree.c 2e9978eca99a9a4bfa8cae949efb00886860a64f -F src/test_config.c 0dee90328e3dedf8ba002ee94b6a7e7ea7726fe4 +F src/test_config.c f569bb9c62cb98ffc7968d7f557703197fb4027e F src/test_demovfs.c 0de72c2c89551629f58486fde5734b7d90758852 F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc F src/test_fs.c f10f840ca4f8c72e4837908bd8347ac4bcab074b @@@ -416,27 -413,27 +417,27 @@@ F src/treeview.c e4b41a37530a191579d3c5 F src/trigger.c e14840ee0c3e549e758ec9bf3e4146e166002280 F src/update.c a7eeeaffad59c6506f01303a071dac11de8269ca F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c - F src/util.c 6ed9d7bdd3b0a30742027b6d8e8e1a9e2b14f373 + F src/util.c a64585a74aef6feb16dfe4e090b5de01e26eba3b F src/vacuum.c feb1eabb20987983d9350cad98299b21fa811f52 -F src/vdbe.c 87ae3a5657fefed7875f3eb30e7ababd48013d71 +F src/vdbe.c 5c09ebeb5d59ca587e0c1d23cdbcddd99864bfe5 F src/vdbe.h c743791f723049db94f009e3e30958952bc2d512 F src/vdbeInt.h 49a74fe5ece206d2d8666ba9afaf1abeda5f123b -F src/vdbeapi.c 95b1f8e527240a18a9aea41a655b013bf07a7009 +F src/vdbeapi.c 334db1c072f54fa5bb85bf552046d4397c5534f6 F src/vdbeaux.c 2c15cf88de4df97428318c8cfac0dea873dae451 F src/vdbeblob.c 3b570b730109e8f653d9d2081649f6e7015113db - F src/vdbemem.c be8381ed6de54eb9cb9dfa802823cdeb5166d855 + F src/vdbemem.c 9b0cb32cc267ef026515f15a3594d5ff91fe4dfc F src/vdbesort.c 307460bfa4de4d1c3901fcd42089159131e34062 F src/vdbetrace.c f75c5455d8cf389ef86a8bfdfd3177e0e3692484 - F src/vtab.c 943c23b355f0a8f859f9583e7315d64bebdb0899 + F src/vtab.c fd69fd398e23e57ea4ea377d8a44b6998fc569c7 F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 -F src/wal.c 10deb6b43887662691e5f53d10b3c171c401169b -F src/wal.h 2f7c831cf3b071fa548bf2d5cac640846a7ff19c +F src/wal.c 0eaa33b32c3aa8e8d956cdd4693c4d8604966633 +F src/wal.h 29c2a284ddd9c665199273dadc7255a227092291 F src/walker.c 0f142b5bd3ed2041fc52d773880748b212e63354 - F src/where.c 32051597188dc632bafb32d50a9c3a04fb97ce39 + F src/where.c 56948ada5aacc3bf2628db3776986e8bf4085383 F src/whereInt.h 93297d56edd137b7ea004490690fb6e2ce028a34 - F src/wherecode.c 39c1ef4598bedf1d66249334c74efd23ddd182ac + F src/wherecode.c 3ca820435c5b597bb50e63ed11e938786fe5c23e F src/whereexpr.c fb87944b1254234e5bba671aaf6dee476241506a -F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 +F test/8_3_names.test 05034aadccd2253ffe6cbefb06662b8aa4600f77 F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 F test/aggnested.test b35b4cd69fc913f90d39a575e171e1116c3a4bb7 @@@ -629,7 -627,7 +631,7 @@@ F test/enc4.test c8f1ce3618508fd0909945 F test/eqp.test 85873fa5816c48915c82c4e74cb5c35a5b48160f F test/errmsg.test f31592a594b44ee121371d25ddd5d63497bb3401 F test/eval.test a64c9105d6ff163df7cf09d6ac29cdad5922078c - F test/exclusive.test c0d5e3c0756ac6ccd4d45e0b21ff9f01b963fa61 -F test/exclusive.test f48243eaf40e0957215501a12f510a8644d13a02 ++F test/exclusive.test 1191e8904ca4b365ca4c67f2c879bed747ac0c3d F test/exclusive2.test 32798111aae78a5deec980eee383213f189df308 F test/exec.test e949714dc127eaa5ecc7d723efec1ec27118fdd7 F test/exists.test 8f7b27b61c2fbe5822f0a1f899c715d14e416e30 @@@ -947,11 -944,11 +949,11 @@@ F test/pagerfault3.test 1003fcda009bf48 F test/pageropt.test 6b8f6a123a5572c195ad4ae40f2987007923bbd6 F test/pagesize.test 5769fc62d8c890a83a503f67d47508dfdc543305 F test/parser1.test 222b5cbf3e2e659fec1bf7d723488c8b9c94f1d0 -F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b +F test/pcache.test 9a04fa260cb47dd4fdc5d13c5e97054e05931592 F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442 F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff - F test/permutations.test 382a43c49f49bafe6fddffe904ea33d6bb3ff33e + F test/permutations.test 64abe58d53cde4adcfb881e37aa5ea1b2a980e58 -F test/pragma.test 507ac7ef2ea5682241ea0ef041799ca70bb5e0bf +F test/pragma.test 70826dc1f03bc0b051d4c907d4572c704d38dc58 F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f F test/pragma3.test 6f849ccffeee7e496d2f2b5e74152306c0b8757c F test/printf.test b3ff34e73d59124140eaf89f7672e21bc2ca5fcc @@@ -1064,9 -1061,9 +1066,9 @@@ F test/spellfix3.test f7bf7b3482971473d F test/sqldiff1.test 8f6bc7c6a5b3585d350d779c6078869ba402f8f5 F test/sqllimits1.test a74ee2a3740b9f9c2437c246d8fb77354862a142 F test/sqllog.test 6af6cb0b09f4e44e1917e06ce85be7670302517a -F test/stat.test acc91e80517fff447ae8adcfd953cfdaa5efc0af +F test/stat.test b091791ccaa62ce49a3e7886cab1a69fa9be17a8 F test/statfault.test f525a7bf633e50afd027700e9a486090684b1ac1 - F test/stmt.test 78a6764439cfa5abdcbf98d4d084739e81eeec4f -F test/stmt.test 64844332db69cf1a735fcb3e11548557fc95392f ++F test/stmt.test fc832e52bd1273144abbb27c07fc01d1acdd9939 F test/subquery.test d7268d193dd33d5505df965399d3a594e76ae13f F test/subquery2.test 438f8a7da1457277b22e4176510f7659b286995f F test/subselect.test d24fd8757daf97dafd2e889c73ea4c4272dcf4e4 @@@ -1082,10 -1079,10 +1084,10 @@@ F test/table.test b708f3e5fa2542fa51dfa F test/tableapi.test 2674633fa95d80da917571ebdd759a14d9819126 F test/tableopts.test dba698ba97251017b7c80d738c198d39ab747930 F test/tclsqlite.test 7fb866443c7deceed22b63948ccd6f76b52ad054 - F test/tempdb.test 3263e5c3f0604e54d307481e8587327c54544d18 -F test/tempdb.test bd92eba8f20e16a9136e434e20b280794de3cdb6 ++F test/tempdb.test be87085066978807bb9eb934ae3986521e88a675 F test/temptable.test d2c9b87a54147161bcd1822e30c1d1cd891e5b30 F test/temptrigger.test 8ec228b0db5d7ebc4ee9b458fc28cb9e7873f5e1 -F test/tester.tcl 750365ff97047ded5f2d6e28df82a998f7c66ae0 +F test/tester.tcl b05f6c394040d5cd20f7b6f336931e5db6f7f9cd F test/thread001.test 9f22fd3525a307ff42a326b6bc7b0465be1745a5 F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58 F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7 @@@ -1455,7 -1453,8 +1458,7 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 - P 18c3ab4784a4efab2cc583ef712c4db9d127418a 424b7aee3310b9782bd312589dc3d9f287aa04b8 - R dbb807d0ab5a2b790fce1543453b7cbe -P 2682e8e413fadbca0673f242769af17bfd291559 5b2fe5219ab9ad15969e3374894a75979b65cb3c -R bcfeac6deb0b24b3190e8b427e406c58 -T +closed 5b2fe5219ab9ad15969e3374894a75979b65cb3c ++P 4fb4aee83da5cd1d75627f96ab431132628aeef4 cb9302cca423de41305719a49208daa392ec09da ++R 383aecef6a5d9ea475d5a43cad1f7c4c U drh - Z 7c4ec600601ac1d4fb5bae29e99d91ad -Z 04f483c25715ded0ed1694d083bfc434 ++Z e9e8354f8de9de140d1bd2781e9d7f5e diff --cc manifest.uuid index 9d115621d8,68d02d516a..9cd5f7c3c2 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 4fb4aee83da5cd1d75627f96ab431132628aeef4 -cb9302cca423de41305719a49208daa392ec09da ++2f0c195ccc3c9550f0664223fc355b1c27063eba diff --cc test/stmt.test index cd71fcc5e8,df501f7654..9ec7bbe2ed --- a/test/stmt.test +++ b/test/stmt.test @@@ -58,8 -46,8 +58,9 @@@ do_test stmt-1.4 INSERT INTO t1 SELECT a+1, b+1 FROM t1; } set sqlite_open_file_count + expr $sqlite_open_file_count-$extrafds - } {3} + # 2016-03-04: statement-journal open deferred + } {2} do_test stmt-1.5 { execsql COMMIT set sqlite_open_file_count @@@ -76,8 -62,8 +77,9 @@@ do_test stmt-1.6.1 do_test stmt-1.6.2 { execsql { INSERT INTO t1 SELECT a+4, b+4 FROM t1 } set sqlite_open_file_count + expr $sqlite_open_file_count-$extrafds - } {3} + # 2016-03-04: statement-journal open deferred + } {2} do_test stmt-1.7 { execsql COMMIT set sqlite_open_file_count @@@ -101,7 -86,7 +103,7 @@@ filecount stmt-2.3 { INSERT INTO t1 SEL filecount stmt-2.4 { INSERT INTO t1 SELECT 9, 9; INSERT INTO t1 SELECT 10, 10; - } 3 $extrafds -} 2 ++} 2 $extrafds do_test stmt-2.5 { execsql { CREATE INDEX i1 ON t1(b) } @@@ -109,6 -94,6 +111,6 @@@ filecount stmt-2.6 { REPLACE INTO t1 VALUES(5, 5); REPLACE INTO t1 VALUES(5, 5); - } 3 $extrafds -} 2 ++} 2 $extrafds finish_test diff --cc test/tempdb.test index 6a8345706d,61416ec81c..bd1791a094 --- a/test/tempdb.test +++ b/test/tempdb.test @@@ -81,7 -76,7 +81,7 @@@ do_test tempdb-2.2 } catchsql { INSERT INTO t1 SELECT * FROM t2 } set sqlite_open_file_count - } [expr 1 + $extrafds + (0==$jrnl_in_memory) + (0==$subj_in_memory)] -} [expr 1 + (0==$jrnl_in_memory)] ++} [expr 1 + $extrafds + (0==$jrnl_in_memory)] do_test tempdb-2.3 { execsql { PRAGMA temp_store = 'memory';