From: drh Date: Thu, 18 Feb 2016 01:36:47 +0000 (+0000) Subject: Merge recent performance enhancements and the enhanced API_ARMOR from trunk. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=241014c3f141a1bfb3b06080766e2b5054c2261b;p=thirdparty%2Fsqlite.git Merge recent performance enhancements and the enhanced API_ARMOR from trunk. FossilOrigin-Name: b7fa0fb3399ad2bf1e6bc4c92d43278a40f19ec4 --- 241014c3f141a1bfb3b06080766e2b5054c2261b diff --cc manifest index 2d371eb95f,47cc7ca96b..d63e11ed1d --- a/manifest +++ b/manifest @@@ -1,6 -1,6 +1,6 @@@ - C Memory\sleak\sassociated\swith\sSQLITE_WRITE_WALFRAME_PREBUFFERED - D 2016-02-18T01:22:53.158 -C Add\sextra\sAPI\sarmor\son\sthe\ssqlite3_bind_blob()\sinterface. -D 2016-02-18T01:29:12.161 -F Makefile.in 4e90dc1521879022aa9479268a4cd141d1771142 ++C Merge\srecent\sperformance\senhancements\sand\sthe\senhanced\sAPI_ARMOR\sfrom\strunk. ++D 2016-02-18T01:36:47.227 +F Makefile.in 6bc82e8fca16b46e6158b5614f16b68cc42cbe5d F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc 30f075dc4f27a07abb76088946b2944178d85347 F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7 @@@ -287,37 -285,37 +288,37 @@@ F spec.template 86a4a43b99ebb3e75e6b9a7 F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b F sqlite3.1 fc7ad8990fc8409983309bb80de8c811a7506786 F sqlite3.pc.in 48fed132e7cb71ab676105d2a4dc77127d8c1f3a - F src/alter.c 1fbb01c26c64528088f1df8015992fefda387889 - F src/analyze.c fbf0e80d83cc893734e872f932f249a056b86e11 - F src/attach.c c16c2648a577fa3def2adfa48c28901376389bc5 + F src/alter.c 7603afbd61f55e7c644b8de4a42f33e58c0b7eaa + F src/analyze.c ab57b6763dd4c6170a20673d14882c033affd188 + F src/attach.c a3724c64de1099d85e30751213d285752aed9505 F src/auth.c b56c78ebe40a2110fd361379f7e8162d23f92240 - F src/backup.c 2869a76c03eb393ee795416e2387005553df72bc - F src/bitvec.c 1a78d450a17c5016710eec900bedfc5729bf9bdf + F src/backup.c f60f0aa55d25d853ffde53d0b0370a7bb7ee41ce + F src/bitvec.c 3ee4c8b2c94ed3a7377256e18199e6ff5cf33f63 F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73 - F src/btree.c c9123aa7c76b44ca14ee9ec9c0aeef1f3f8b058d -F src/btree.c 474ad91c1684e9053da64fa88747a1cb0c10d034 ++F src/btree.c 733117e4ef7be83d54c088e9c837cc6817f2f2fe F src/btree.h 368ceeb4bd9312dc8df2ffd64b4b7dbcf4db5f8e F src/btreeInt.h c18b7d2a3494695133e4e60ee36061d37f45d9a5 - F src/build.c 54866fbafa09d494269bdefc79995eb7207003a6 - F src/callback.c ed6c2a4a712eb7287ff64e20e3c23265dfb8a7ce - F src/complete.c addcd8160b081131005d5bc2d34adf20c1c5c92f + F src/build.c 88f185a37d1e087818fd7077d84d65c5babefdb1 + F src/callback.c 0643b8fb06c95a8977beb201b268210d4b131a22 + F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e F src/ctime.c 60e135af364d777a9ab41c97e5e89cd224da6198 - F src/date.c ca17321bc17cca8f40e0843edea4fafff974998e - F src/dbstat.c b2ec6793eef97aebb4d171d490a4ffdfa9f2475c + F src/date.c 0b73e681c11fca867fec554750c07fe0d4e417c1 + F src/dbstat.c c845548d4346e606e2f2b7d2e714ace2b8a7dd1b F src/delete.c 48802aa3ee6339f576d074336d3ae1b5f40e240f - F src/expr.c fbf0706199aea23c54efe36b6932d8307c4eb872 + F src/expr.c 9adb58153f6e943b703d43e9a1f67f77b5a75721 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb F src/fkey.c 08edad1fce30f761f14b3997e89bad58f9f7f4e0 - F src/func.c 86e55fee35b9577e485f47d9dd5c1d34cd513288 - F src/global.c bd5a0af3f30b0c01be6db756c626cd3c33a3d260 + F src/func.c 552d300265aed09eea21f68ac742a440550c0062 + F src/global.c ded7b97efd16efda5062b65e857198e46c40e652 F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5 F src/hash.h c8f3c31722cf3277d03713909761e152a5b81094 F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08 F src/insert.c 9ca97272e9f74ed0efddf3b4350ee12740cebbef - F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d - F src/legacy.c c6552d90c1422aeae86fe0191c6963946aa2fddf - F src/loadext.c 84996d7d70a605597d79c1f1d7b2012a5fd34f2b - F src/main.c fb6058f37c1c4a8a3ee1c34a46cff59e583766de - F src/malloc.c 337e9808b5231855fe28857950f4f60ae42c417f + F src/journal.c fe3a3e2559ce3ce9d371afd30fbabbc074174575 -F src/legacy.c 75d3023be8f0d2b99d60f905090341a03358c58e ++F src/legacy.c b419b813f192eef79d73f968511d2ee129525e21 + F src/loadext.c 9e2a41adcaff16ebc1ebff1f336cbf33de55396f -F src/main.c 8d2fd210bfbf2f28becb9452641c5689760a68d4 ++F src/main.c 90ad20c8c273beab61b49e452d2512807e16c408 + F src/malloc.c 1443d1ad95d67c21d77af7ae3f44678252f0efec F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c 6919bcf12f221868ea066eec27e579fed95ce98b F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3 @@@ -331,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 4c975b1720bee3c452fd0e727b0b3e00346fe6a2 -F src/os.c ca9a104b677328ee037cfdf1a54a16fd1805e8c9 ++F src/os.c be9908f7b1f7f7a5e110f9c5cb08dc0264e2f5a9 F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf F src/os_common.h b2f4707a603e36811d9b1a13278bffd757857b85 F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa - F src/os_unix.c 20b22469512e061c015ae2cb171a0950658d5ace - F src/os_win.c dc10ba379eaff9a1b37b4a47671929733971a71e -F src/os_unix.c 3a6f20736dfb8a0949cdd66553fdf59f6604be35 -F src/os_win.c f0d7aa603eb6262143d7169a222aea07c4fca91d ++F src/os_unix.c df8e43477f40ddcf707a9f3fabf7a970b7a5c157 ++F src/os_win.c 390534cac9a3730d589241d4c452901bd2aaf7bd F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca - F src/pager.c 184997e965838f7af174ef2a4b102d223ea9eff2 -F src/pager.c 6812f3803951774b56abded396171e1c12b0b003 -F src/pager.h f3eb324a3ff2408b28bab7e81c1c55c13720f865 ++F src/pager.c 54b0543664087c338856cf5064549b107d12e3b6 +F src/pager.h 3de08f90567892585cce2e1db07686ff1422c4fb - F src/parse.y d7bff41d460f2df96fb890f36700e85cb0fc5634 - F src/pcache.c 73895411fa6b7bd6f0091212feabbe833b358d23 + F src/parse.y c3ce2c4a7cbf0b699239be6b2a945c5cb51875e2 + F src/pcache.c 647bb53a86b7bbcf55ad88089b3ea5a9170b90df F src/pcache.h 4d0ccaad264d360981ec5e6a2b596d6e85242545 F src/pcache1.c 72f644dc9e1468c72922eff5904048427b817051 -F src/pragma.c 80ee77226d0008d9188356a6cbbe6010866e1bee +F src/pragma.c eb149efaf7459d4e83e013cf603c12eec6b9b753 F src/pragma.h 64c78a648751b9f4f297276c4eb7507b14b4628c - F src/prepare.c 3fef6600182375c49d98dc3acabc3ecfffe6f0b2 -F src/prepare.c 22df6171aec1d86904ed2ad30c2348a5748aa04e ++F src/prepare.c 9c56ea254317e27d3a1273fa812b8578b5e2f850 F src/printf.c 63e6fb12bbe702dd664dc3703776c090383a5a26 F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 - F src/resolve.c 9f7ce3a3c087afb7597b7c916c99126ff3f12f0c + F src/resolve.c b8f7174e5f8c33c44ded3a25a973d0bb89228c20 F src/rowset.c 9fe4b3ad7cc00944386bb600233d8f523de07a6e - F src/select.c ff80004a9a6ece891a8d9327a88e7b6e2588ee6d + F src/select.c 1a7e23a3bb2edb9cdc46ab0cf7c1500109cf2531 F src/shell.c 0367440658104bf2ce8d8a9a5a713a4b11c9acbe - F src/sqlite.h.in 2af4ebbb62b79c0d7ac68901e39981c6461f59c6 -F src/sqlite.h.in a7caa805a345d6a14136c11ccfa6f4c1a6ef6e7b ++F src/sqlite.h.in 3932a4505c6b7594f53247c3e14222701b0e0e70 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 +F src/sqlite3_private.h a81a9c5f97c095cc3e86914a05f8fabe0011f4a1 F src/sqlite3ext.h dfbe62ffd95b99afe2140d8c35b180d11924072d - F src/sqliteInt.h d96632a59d850b9fc66fcbd17016a4e42bd4ccbc -F src/sqliteInt.h 47f61c35d587d38cbcfc8ba852ff441054d697d3 ++F src/sqliteInt.h 15f5a21b312cabf6fcef5f76022465d1eb51c1bb F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46 F src/status.c 70912d7be68e9e2dbc4010c93d344af61d4c59ba - F src/table.c 51b46b2a62d1b3a959633d593b89bab5e2c9155e + F src/table.c 5226df15ab9179b9ed558d89575ea0ce37b03fc9 F src/tclsqlite.c 13debcc6a5ca1217486f8903768c01114fbe8b58 -F src/test1.c 4f1b42699068b7806af3111786f5ad760c2c1ff7 +F src/test1.c f51730220589f17d95dbd6f821e1cb6377d4554c F src/test2.c 5586f43fcd9a1be0830793cf9d354082c261b25b F src/test3.c a8887dabbbee3059af338f20d290084a63ed1b0f F src/test4.c d168f83cc78d02e8d35567bb5630e40dcd85ac1e @@@ -376,10 -373,10 +377,10 @@@ F src/test_autoext.c dea8a01a7153b9adc9 F src/test_backup.c 2e6e6a081870150f20c526a2e9d0d29cda47d803 F src/test_blob.c e5a7a81d61a780da79101aeb1e60d300af169e07 F src/test_btree.c 2e9978eca99a9a4bfa8cae949efb00886860a64f -F src/test_config.c 7985332c806d1cece793475c75a6abcccde9d331 +F src/test_config.c 9f96e204b38ef8b1fbbe29565f731f4bf1811152 F src/test_demovfs.c 0de72c2c89551629f58486fde5734b7d90758852 F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc - F src/test_fs.c a61f54247fdb843761d709879c3bcd1989b2050c + F src/test_fs.c f10f840ca4f8c72e4837908bd8347ac4bcab074b F src/test_func.c 37453d346cfcf118774efd5bf6187f7e6a7e3254 F src/test_hexio.c abfdecb6fa58c354623978efceb088ca18e379cd F src/test_init.c 66b33120ffe9cd853b5a905ec850d51151337b32 @@@ -414,24 -411,24 +415,24 @@@ F src/tokenize.c 32aeca12f0d57a5c1c9a88 F src/treeview.c dc39ccf04e9331237388b9cb73289c9d87ea050b F src/trigger.c e14840ee0c3e549e758ec9bf3e4146e166002280 F src/update.c a7eeeaffad59c6506f01303a071dac11de8269ca - F src/utf.c 10cc2519e82e3369344d0969ad4b1a333dc86d18 - F src/util.c 49ce0a65306c1c51d61cb5bc214c71cb62452de6 - F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701 - F src/vdbe.c d76cf7d7dbb51d8b009414cc4b2f2d2da228e572 + F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c + F src/util.c 8073bbdab9cc7209f6741bd44264ede606cbadc6 + F src/vacuum.c feb1eabb20987983d9350cad98299b21fa811f52 -F src/vdbe.c 4eef77da4b81763a25992cc060506c001ebd4e3d ++F src/vdbe.c af2233589dbef9112923d7954a26fe5418926e65 F src/vdbe.h c743791f723049db94f009e3e30958952bc2d512 F src/vdbeInt.h 4b69d5451bcadd473e745af53ef1e8abfdce0a79 - F src/vdbeapi.c acc259f1b473cfeaf0459c482156579067bc3859 - F src/vdbeaux.c deae5d3bd45da0e57c7d9e1d7436333d142dc3bb -F src/vdbeapi.c 95b1f8e527240a18a9aea41a655b013bf07a7009 ++F src/vdbeapi.c 334db1c072f54fa5bb85bf552046d4397c5534f6 + F src/vdbeaux.c 3580de0325a05663195d8f8fddf48c6dd9a28522 F src/vdbeblob.c 3b570b730109e8f653d9d2081649f6e7015113db - F src/vdbemem.c 68fcfac37dc6601d98c32cc5adee4d39f2c1b7b4 - F src/vdbesort.c ef3c6d1f1a7d44cf67bb2bee59ea3d1fe5bad174 + F src/vdbemem.c be8381ed6de54eb9cb9dfa802823cdeb5166d855 + F src/vdbesort.c 74c22db608649fd7ed2d19d53eefb6efb14e9ee0 F src/vdbetrace.c f75c5455d8cf389ef86a8bfdfd3177e0e3692484 - F src/vtab.c bef51b4f693d82b4b0184457faa8625654534091 + F src/vtab.c c27c0232bbc6bd4b50320ea0ef988334cde7d1ca F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 - F src/wal.c f55f9f4e51edb0494a30c1097f815ded8b035794 -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 984084584c10c41e46c89ac027a5cca991bc37e6 + F src/where.c 5b67fb8035ae4697cf721db095f800ef8dff5f56 F src/whereInt.h 78b6b4de94db84aecbdc07fe3e38f648eb391e9a F src/wherecode.c 791a784bbf8749d560fdb0b990b607bc4f44a38d F src/whereexpr.c de117970b29471177a6901d60ad83a194671dc03 @@@ -1080,10 -1076,10 +1081,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 19d0f66e2e3eeffd68661a11c83ba5e6ace9128c +F test/tempdb.test 3263e5c3f0604e54d307481e8587327c54544d18 F test/temptable.test d2c9b87a54147161bcd1822e30c1d1cd891e5b30 F test/temptrigger.test 8ec228b0db5d7ebc4ee9b458fc28cb9e7873f5e1 - F test/tester.tcl c6a1647968dcff0d69e2715740da52f5bc6f6d50 -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 @@@ -1430,9 -1426,9 +1431,9 @@@ F tool/varint.c 5d94cb5003db9dbbcbcc5df F tool/vdbe-compress.tcl 5926c71f9c12d2ab73ef35c29376e756eb68361c F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 - F tool/warnings.sh ef6ebc6fd8d2dc35db3b622015c16a023d4fef4f + F tool/warnings.sh a98af506df552f3b3c0d904f94e4cdc4e1a6d598 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f - P 5cecc509d05eb3d6ebf0bb736da23725827bc8b3 - R 0122a110c30ef73b7b492287f7ea5701 -P 24c7151c1aabeaffcb8bb5836404e70a3ec4681b -R f0b4335702e227844828d1e40e95332a ++P 7bcd3ab5f0519cb9ac8f7b98827600b9eff8db85 80de1ad5eb4c3839756b6467d5b8195b4abfb1f8 ++R 0601a63da78c9a4a9f03ea7945a41623 U drh - Z 6df95869e0b3f6b8862b7e14cef10938 -Z ca0837f1f24e7471925104495cb0295d ++Z a1a7a2a2726e6248db988b26a804bb5c diff --cc manifest.uuid index f7c5b26bb0,6621d165b5..df4022b8a1 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 7bcd3ab5f0519cb9ac8f7b98827600b9eff8db85 -80de1ad5eb4c3839756b6467d5b8195b4abfb1f8 ++b7fa0fb3399ad2bf1e6bc4c92d43278a40f19ec4 diff --cc src/pager.c index b940755fd3,67f1ae6b75..57be659677 --- a/src/pager.c +++ b/src/pager.c @@@ -2464,13 -2464,9 +2464,13 @@@ static int pager_delmaster(Pager *pPage pMaster = (sqlite3_file *)sqlite3MallocZero(pVfs->szOsFile * 2); pJournal = (sqlite3_file *)(((u8 *)pMaster) + pVfs->szOsFile); if( !pMaster ){ - rc = SQLITE_NOMEM; + rc = SQLITE_NOMEM_BKPT; }else{ - const int flags = (SQLITE_OPEN_READONLY|SQLITE_OPEN_MASTER_JOURNAL); + const int flags = +#if SQLITE_ENABLE_DATA_PROTECTION + (pPager->vfsFlags&SQLITE_OPEN_FILEPROTECTION_MASK)| +#endif + (SQLITE_OPEN_READONLY|SQLITE_OPEN_MASTER_JOURNAL); rc = sqlite3OsOpen(pVfs, zMaster, pMaster, flags, 0); } if( rc!=SQLITE_OK ) goto delmaster_out; diff --cc src/vdbeapi.c index 838578caf4,c2038137d1..e44c49319d --- a/src/vdbeapi.c +++ b/src/vdbeapi.c @@@ -1317,8 -1301,8 +1317,11 @@@ int sqlite3_bind_blob int nData, void (*xDel)(void*) ){ +#ifdef SQLITE_ENABLE_SQLRR + SRRecBindBlob(pStmt, i, zData, nData); ++#endif + #ifdef SQLITE_ENABLE_API_ARMOR + if( nData<0 ) return SQLITE_MISUSE_BKPT; #endif return bindText(pStmt, i, zData, nData, xDel, 0); } diff --cc src/wal.c index 5a8ec6454e,bbac1bd6d0..bf11aba6d2 --- a/src/wal.c +++ b/src/wal.c @@@ -2889,16 -2878,9 +2889,16 @@@ static int walWriteOneFrame ){ int rc; /* Result code from subfunctions */ void *pData; /* Data actually written */ +#if defined(SQLITE_WRITE_WALFRAME_PREBUFFERED) + void *aFrame; + + aFrame = p->aFrameBuf; +#else u8 aFrame[WAL_FRAME_HDRSIZE]; /* Buffer to assemble frame-header in */ +#endif + #if defined(SQLITE_HAS_CODEC) - if( (pData = sqlite3PagerCodec(pPage))==0 ) return SQLITE_NOMEM; + if( (pData = sqlite3PagerCodec(pPage))==0 ) return SQLITE_NOMEM_BKPT; #else pData = pPage->pData; #endif