From: drh Date: Fri, 5 Feb 2016 14:34:51 +0000 (+0000) Subject: Merge PRAGMA synchronous=EXTRA and OOM performance enhancements from trunk. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=faf010d77a472a82126c7ff3bf33bb07185d8e53;p=thirdparty%2Fsqlite.git Merge PRAGMA synchronous=EXTRA and OOM performance enhancements from trunk. FossilOrigin-Name: 332c8036ca8a97087ced210e322c8a91be2a9036 --- faf010d77a472a82126c7ff3bf33bb07185d8e53 diff --cc manifest index 80f4b12516,8c2dfea1b7..00f3c9ec42 --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C Merge\srecent\senhancements\sfrom\strunk. - D 2016-02-02T02:53:49.800 -C Improvements\sto\sthe\sway\sout-of-memory\sconditions\sare\shandled,\sresulting\nin\san\salmost\s1%\sperformance\sgain\sin\sthe\scommmon\scase\swhere\sOOM\serrors\sdo\nnot\soccur. -D 2016-02-05T14:11:12.413 ++C Merge\sPRAGMA\ssynchronous=EXTRA\sand\sOOM\sperformance\senhancements\sfrom\strunk. ++D 2016-02-05T14:34:51.522 F Makefile.in 027c1603f255390c43a426671055a31c0a65fdb4 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc 72b7858f02017611c3ac1ddc965251017fed0845 @@@ -290,20 -291,20 +291,20 @@@ F src/auth.c b56c78ebe40a2110fd361379f7 F src/backup.c 2869a76c03eb393ee795416e2387005553df72bc F src/bitvec.c 1a78d450a17c5016710eec900bedfc5729bf9bdf F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73 - F src/btree.c 3d3c562e11ae10f4824f1ea12d7b6dbe13183464 -F src/btree.c 0b359bcc2316a57acf12f583253974ad22b4654f -F src/btree.h 368ceeb4bd9312dc8df2ffd64b4b7dbcf4db5f8e -F src/btreeInt.h c18b7d2a3494695133e4e60ee36061d37f45d9a5 -F src/build.c 198eaa849c193f28b802ed135b2483c68ef7a35c ++F src/btree.c deead36f1ee76e27f0692a9aa8fb698e90e063b4 +F src/btree.h 3c4f3fc066071991907e19ccf3fac5ac4a36bfc1 +F src/btreeInt.h ca40607c2c9d4b4b7ded98e3d707b15c2f17f1bf - F src/build.c a183756487c190aadad28e7865d84255ffe29aee - F src/callback.c 29ae4faba226c7ebb9aee93016b5ce8a8f071261 ++F src/build.c a9955bb322ce24b965c20f91b99ec1c5d7fc5d02 + F src/callback.c ed6c2a4a712eb7287ff64e20e3c23265dfb8a7ce F src/complete.c addcd8160b081131005d5bc2d34adf20c1c5c92f F src/ctime.c 60e135af364d777a9ab41c97e5e89cd224da6198 - F src/date.c 997651e3ee6c2818fbf7fcdb7156cef9eb3ece20 + F src/date.c ca17321bc17cca8f40e0843edea4fafff974998e F src/dbstat.c b2ec6793eef97aebb4d171d490a4ffdfa9f2475c - F src/delete.c 33ed87dc0746b1f8ce186f62b608bf40801af9c0 - F src/expr.c d10c1cdef5810cdbf73adc9f9b383684230b360a + F src/delete.c 48802aa3ee6339f576d074336d3ae1b5f40e240f + F src/expr.c fbf0706199aea23c54efe36b6932d8307c4eb872 F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb - F src/fkey.c c66d3e5b35d4d95b5c1e2ee6c12f5df13a7f9ad6 - F src/func.c 42b24923328f65849f52f1659efb2a0907ad78fd + F src/fkey.c 08edad1fce30f761f14b3997e89bad58f9f7f4e0 + F src/func.c 86e55fee35b9577e485f47d9dd5c1d34cd513288 F src/global.c bd5a0af3f30b0c01be6db756c626cd3c33a3d260 F src/hash.c 4263fbc955f26c2e8cdc0cf214bc42435aa4e4f5 F src/hash.h c8f3c31722cf3277d03713909761e152a5b81094 @@@ -331,12 -332,12 +332,12 @@@ F src/os.c 8fd25588eeba74068d41102d2681 F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf F src/os_common.h abdb9a191a367793268fe553d25bab894e986a0e F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa - F src/os_unix.c 5bb20172d0c9a6afcfa829a88c406970593c848d + F src/os_unix.c 821ed110197175165cf2f50b0930c7ff9a24504c F src/os_win.c ccf29ddded3e41e506b6bd98c1171aa0963b23f2 F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca - F src/pager.c 040531b0c2e4f046ee077600bc5814a4ac42597e - F src/pager.h 4a489a631d6f6dfcd52f629dd22e9932e58efcaf - F src/parse.y e6a091aeae2d7c3c30ee5f337493065d7a0962e0 -F src/pager.c 67cd2fbab58d0e35fed5f81432856f4f0af9fc6d -F src/pager.h f3eb324a3ff2408b28bab7e81c1c55c13720f865 -F src/parse.y d7bff41d460f2df96fb890f36700e85cb0fc5634 ++F src/pager.c dff5eb9a3add702b28ef5efb54de761e1ba7aa44 ++F src/pager.h 6dec8fe4803d485401125c31b3ab1cd051eac6e6 ++F src/parse.y 2d29daf0c040e2db8e19c549ce011b1921a10c45 F src/pcache.c 73895411fa6b7bd6f0091212feabbe833b358d23 F src/pcache.h 4d0ccaad264d360981ec5e6a2b596d6e85242545 F src/pcache1.c 72f644dc9e1468c72922eff5904048427b817051 @@@ -352,7 -353,7 +353,7 @@@ F src/shell.c dcd7a83645ef2a58ee9c6d0ea F src/sqlite.h.in cf22ad1d52dca2c9862d63833e581028119aab7e F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h dfbe62ffd95b99afe2140d8c35b180d11924072d - F src/sqliteInt.h 02cef8cd17974ef60c25d27c6a83a3aeb9ebb676 -F src/sqliteInt.h 3aeaff9611acd790c8e76719b33db09ab885d537 ++F src/sqliteInt.h 19ed64cd3dc0d26ac581d8f5ff8944814cd601d8 F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46 F src/status.c 70912d7be68e9e2dbc4010c93d344af61d4c59ba F src/table.c 51b46b2a62d1b3a959633d593b89bab5e2c9155e @@@ -405,31 -406,31 +406,31 @@@ F src/test_windirent.c 8f5fada630348558 F src/test_windirent.h b12055cab6227f7be10f5c19296f67c60cc5e2a5 F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9 F src/threads.c bbfb74450643cb5372a43ad4f6cffd7e9dfcecb0 - F src/tokenize.c 5606871a377f390af7040ec3c12e0d183512d785 + F src/tokenize.c 214b783d6138e9f9fbb6b225ce9a376db3b03d42 F src/treeview.c dc39ccf04e9331237388b9cb73289c9d87ea050b - F src/trigger.c 72d876b2d0c66604a112362bdae07dae9b104816 - F src/update.c 17332f9fe818cbc0444c36a811800af8498af4c3 + F src/trigger.c e14840ee0c3e549e758ec9bf3e4146e166002280 + F src/update.c 310ca7adb86a7d1f2afae46905b21c83580f3e17 F src/utf.c 10cc2519e82e3369344d0969ad4b1a333dc86d18 - F src/util.c 72d40df0a52d3f30b462a15f0e094fcbade6dc82 + F src/util.c 49ce0a65306c1c51d61cb5bc214c71cb62452de6 -F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701 -F src/vdbe.c c193299e595a13eba247738e22fce25c49346a6c +F src/vacuum.c 983cc3754718ef169a6ea9aef86798bd28106f21 - F src/vdbe.c f4a056b92fac805b61064ac03450a79978ddfbc6 ++F src/vdbe.c 642df098ce2ad75212a26c50f3e90aeb28bb6421 F src/vdbe.h 7a733ea8aac1b77305a67698e784fa3484ee3337 F src/vdbeInt.h 4b69d5451bcadd473e745af53ef1e8abfdce0a79 - F src/vdbeapi.c 9d640d5efd9a140a6bda8da53b220aa258167993 - F src/vdbeaux.c f2afda3daa3b89d6ccefffb0ba5b93ba943527ef - F src/vdbeblob.c 37c3d11a753e403698c69e17383d282e1ae73e75 - F src/vdbemem.c b9181e77eca2a095929d46250daf85c8d2621fc0 + F src/vdbeapi.c 9324f6baee1a1b2284c6543e98f916888a81e459 -F src/vdbeaux.c 49b536284c2b8a823dd342d653e18145ca2b393a ++F src/vdbeaux.c 4f40ac1568f23c912f9d9ea85819d27485d8d572 + F src/vdbeblob.c 3b570b730109e8f653d9d2081649f6e7015113db + F src/vdbemem.c 68fcfac37dc6601d98c32cc5adee4d39f2c1b7b4 F src/vdbesort.c ef3c6d1f1a7d44cf67bb2bee59ea3d1fe5bad174 F src/vdbetrace.c f75c5455d8cf389ef86a8bfdfd3177e0e3692484 - F src/vtab.c 320682cca733115b4cbe71320b5c5eeb1074ebde + F src/vtab.c bef51b4f693d82b4b0184457faa8625654534091 F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 -F src/wal.c d21b99fd1458159d0b1ecdccc8ee6ada4fdc4c54 -F src/wal.h 2f7c831cf3b071fa548bf2d5cac640846a7ff19c +F src/wal.c 2390cb2e5cc8529ab4dee92ee8292db1a4f824d8 +F src/wal.h 327e94c3e366154f52a8d9be9be0ea790cc4e08c F src/walker.c 0f142b5bd3ed2041fc52d773880748b212e63354 - F src/where.c af9bf5dcec1a0e52726c550924aa91d837166251 + F src/where.c d89fd5cff448ab5c5ca492dd9793b35ffe31ab35 F src/whereInt.h 78b6b4de94db84aecbdc07fe3e38f648eb391e9a - F src/wherecode.c 923f5d04b379b7417bc29f3b86b5eae9d1923d72 - F src/whereexpr.c 197a448b52073aee43eca3a2233fc113369eb2d4 + F src/wherecode.c 791a784bbf8749d560fdb0b990b607bc4f44a38d + F src/whereexpr.c de117970b29471177a6901d60ad83a194671dc03 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 @@@ -981,6 -980,7 +983,7 @@@ F test/savepoint4.test c8f8159ade6d2acd F test/savepoint5.test 0735db177e0ebbaedc39812c8d065075d563c4fd F test/savepoint6.test f41279c5e137139fa5c21485773332c7adb98cd7 F test/savepoint7.test db3db281486c925095f305aad09fe806e5188ff3 -F test/savepointfault.test f044eac64b59f09746c7020ee261734de82bf9b2 ++F test/savepointfault.test f044eac64b59f09746c7020ee261734de82bf9b2 w test/savepoint3.test F test/scanstatus.test 5253c219e331318a437f436268e0e82345700285 F test/schema.test 8f7999be894260f151adf15c2c7540f1c6d6a481 F test/schema2.test 906408621ea881fdb496d878b1822572a34e32c5 @@@ -1296,9 -1296,9 +1299,9 @@@ F test/vtabI.test 751b07636700dbdea328e F test/vtab_alter.test 9e374885248f69e251bdaacf480b04a197f125e5 F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8 F test/vtab_shared.test ea8778d5b0df200adef2ca7c00c3c37d4375f772 - F test/wal.test 65bfc68f3f09dcbc62cee9f794e560428d96cec7 + F test/wal.test 0148c8b3421a25fdb4d9c160e84a681d0646371b -F test/wal2.test 1f841d2048080d32f552942e333fd99ce541dada +F test/wal2.test dc801f6d3f8f39d1534ffbd15a715b0b287508db - F test/wal3.test b1d425f68a1f61d12563f0fa1ee6fca7d5afabf4 + F test/wal3.test 5dd734147f1f8f958c5261a1f2775d346d7013ce F test/wal4.test 4744e155cd6299c6bd99d3eab1c82f77db9cdb3c F test/wal5.test 88b5d9a6a3d1532497ee9f4296f010d66f07e33c F test/wal6.test 4421cd5a2fa99d29cc91ef12fb23bed171ed3a4c @@@ -1345,6 -1345,7 +1348,7 @@@ F test/whereH.test e4b07f7a3c2f5d31195c F test/whereI.test 1d89199697919d4930be05a71e7fe620f114e622 F test/whereJ.test 55a3221706a7ab706293f17cc8f96da563bf0767 F test/whereK.test f8e3cf26a8513ecc7f514f54df9f0572c046c42b -F test/wherefault.test 1374c3aa198388925246475f84ad4cd5f9528864 ++F test/wherefault.test 1374c3aa198388925246475f84ad4cd5f9528864 w test/where8m.test F test/wherelimit.test 5e9fd41e79bb2b2d588ed999d641d9c965619b31 F test/wild001.test bca33f499866f04c24510d74baf1e578d4e44b1c F test/win32heap.test ea19770974795cff26e11575e12d422dbd16893c @@@ -1365,8 -1366,8 +1369,8 @@@ F test/zeroblob.test 3857870fe681b81856 F test/zerodamage.test cf6748bad89553cc1632be51a6f54e487e4039ac F tool/GetFile.cs a15e08acb5dd7539b75ba23501581d7c2b462cb5 F tool/GetTclKit.bat 629d87562e0487c386db630033931d12d62e6372 -F tool/addopcodes.tcl 4ca9c3ef196f08da30add5d07ce0c9458dc8c633 +F tool/addopcodes.tcl 783164304cdbf2b473e119b2c4db0c01b92a2b84 - F tool/build-all-msvc.bat 77f85f4268c2711d637c629610d0cf3df5338638 x + F tool/build-all-msvc.bat 31866578036cd1d962628059b0760d407c3ce4d8 x F tool/build-shell.sh 950f47c6174f1eea171319438b93ba67ff5bf367 F tool/cg_anno.tcl 692ce4b8693d59e3a3de77ca97f4139ecfa641b0 x F tool/checkSpacing.c 810e51703529a204fc4e1eb060e9ab663e3c06d2 @@@ -1425,7 -1426,8 +1429,7 @@@ F tool/vdbe_profile.tcl 246d0da094856d7 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f - P 5520f600eade720f465575ab1661dcddaba5adcf d8b7b1996eefae7768bfcb82d4ff22c69392aa63 - R 9213491ac284f4e4eb57c9c322bab19c -P fe123ab4f17f97ba9d64a7e0589ac47fd9d43877 0a802e96ab06e2643834b83671fa8353da1a348d -R 3749c59fe6fdfc59db76e85b115f2d1f -T +closed 0a802e96ab06e2643834b83671fa8353da1a348d ++P 347f6a80c2aa6dde9b58d28069156db22cd21b6d b082538da774ac77f284fd7e22f9b1b9c2abc343 ++R 4cd198f14afb8c9af6f5ad3deaf0e2fa U drh - Z a83bc501058d2433447cf9fd85f4cd41 -Z 89e3d20f1d49685c430d339bf1d58063 ++Z a399e68e9652b366ee9d0d44100d189b diff --cc manifest.uuid index 4126f5ea94,96f1ef1f1f..948d9e016e --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 347f6a80c2aa6dde9b58d28069156db22cd21b6d -b082538da774ac77f284fd7e22f9b1b9c2abc343 ++332c8036ca8a97087ced210e322c8a91be2a9036 diff --cc src/parse.y index 158aeeb7a3,0bfe4e473a..085bf1e35f --- a/src/parse.y +++ b/src/parse.y @@@ -106,13 -106,15 +106,22 @@@ struct TrigEvent { int a; IdList * b; } */ struct AttachKey { int type; Token key; }; +/* +** Generate a syntax error +*/ +static void parserSyntaxError(Parse *pParse, Token *p){ + sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", p); +} + + /* + ** Disable lookaside memory allocation for objects that might be + ** shared across database connections. + */ + static void disableLookaside(Parse *pParse){ + pParse->disableLookaside++; + pParse->db->lookaside.bDisable++; + } + } // end %include // Input is a single SQL command diff --cc src/sqliteInt.h index 1046ab98c4,760c1f4d21..2eacfe0aaa --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@@ -1176,9 -1176,9 +1176,10 @@@ struct sqlite3 u16 dbOptFlags; /* Flags to enable/disable optimizations */ u8 enc; /* Text encoding */ u8 autoCommit; /* The auto-commit flag. */ + u8 bConcurrent; /* Current transaction is "CONCURRENT" */ u8 temp_store; /* 1: file 2: memory 0: default */ u8 mallocFailed; /* True if we have seen a malloc failure */ + u8 bBenignMalloc; /* Do not require OOMs if true */ u8 dfltLockMode; /* Default locking-mode for attached dbs */ signed char nextAutovac; /* Autovac setting after VACUUM if >=0 */ u8 suppressErr; /* Do not issue error messages if true */