From: dan Date: Fri, 21 Aug 2015 16:22:04 +0000 (+0000) Subject: Merge trunk changes with this branch. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cec0beebb30e43d19a1b1e4998b1420f400bf5a7;p=thirdparty%2Fsqlite.git Merge trunk changes with this branch. FossilOrigin-Name: deaf3b18569025d8d168da29fae76142cfffe9e5 --- cec0beebb30e43d19a1b1e4998b1420f400bf5a7 diff --cc manifest index dd80228576,5ea50eda2b..f5c3e2811a --- a/manifest +++ b/manifest @@@ -1,12 -1,12 +1,12 @@@ - C Add\sextra\stests\sand\sa\sfix\sfor\srollbacks\sof\sUNLOCKED\stransactions. - D 2015-08-21T14:21:22.365 -C Fix\stypo\sin\scomment.\s\sNo\schanges\sto\scode. -D 2015-08-21T12:37:49.414 ++C Merge\strunk\schanges\swith\sthis\sbranch. ++D 2015-08-21T16:22:04.553 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f - F Makefile.in 4de3ef40c8b3b75c0c55ff4242a43c8ce1ad90ee + F Makefile.in 4f663b6b4954b9b1eb0e6f08387688a93b57542d F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 - F Makefile.msc 3c258b2f98adb08c7ca5950bee2d6670d6ee3f9a + F Makefile.msc cf63e11a5395cf887515ac7b78e2057dfe442fcd F Makefile.vxworks e1b65dea203f054e71653415bd8f96dcaed47858 F README.md 8ecc12493ff9f820cdea6520a9016001cb2e59b7 - F VERSION ce0ae95abd7121c534f6917c1c8f2b70d9acd4db + F VERSION ccfc4d1576dbfdeece0a4372a2e6a2e37d3e7975 F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50 F addopcodes.awk 9eb448a552d5c0185cf62c463f9c173cedae3811 F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2 @@@ -270,10 -278,10 +278,10 @@@ F src/auth.c b56c78ebe40a2110fd361379f7 F src/backup.c 4d9134dc988a87838c06056c89c0e8c4700a0452 F src/bitvec.c d1f21d7d91690747881f03940584f4cc548c9d3d F src/btmutex.c 45a968cc85afed9b5e6cf55bf1f42f8d18107f79 -F src/btree.c f48b3ef91676c06a90a8832987ecef6b94c931ee -F src/btree.h 969adc948e89e449220ff0ff724c94bb2a52e9f1 -F src/btreeInt.h 8177c9ab90d772d6d2c6c517e05bed774b7c92c0 -F src/build.c 5eb5d055a1d1cdaaea25e01b12607aa894bc0911 +F src/btree.c a00a7c4809d642bf6c63979e73face9fed53dc66 +F src/btree.h 00d4cdb747c4172a5566faf037116985dbbc377e - F src/btreeInt.h 9f77bac260d81cc74ecd96cccf73a8c5af1688c4 - F src/build.c 28c15c43eefc0066ff64040526ff649c32fe5523 ++F src/btreeInt.h 1f7258e1f35ba3cc2197f9019f523dd20d59a0d8 ++F src/build.c e47b6fffe14a28d9050e6747beebb01597d37542 F src/callback.c 7b44ce59674338ad48b0e84e7b72f935ea4f68b0 F src/complete.c addcd8160b081131005d5bc2d34adf20c1c5c92f F src/ctime.c 5a0b735dc95604766f5dac73973658eef782ee8b @@@ -293,7 -301,7 +301,7 @@@ F src/journal.c b4124532212b6952f42eb2c F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e F src/lempar.c 92bafa308607dd985ca389a788cd9e0a2b608712 F src/loadext.c dfcee8c7c032cd0fd55af3e0fc1fcfb01e426df2 - F src/main.c ebbd5a45caf66ce0ebdf1b6c0bc4784e3cfcd768 -F src/main.c e17fcffae4306a9b8334faf3bac80d7396850b54 ++F src/main.c f4a8a75649073b85048505e2bdda4419936d9eb6 F src/malloc.c 19461e159bccf0e2cf06a50e867963d0a7b124a8 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem1.c abe6ee469b6c5a35c7f22bfeb9c9bac664a1c987 @@@ -315,25 -323,25 +323,25 @@@ F src/os_setup.h c9d4553b5aaa6f73391448 F src/os_unix.c 388c023582b17890f10c980b30ec1922b471753b F src/os_win.c 40b3af7a47eb1107d0d69e592bec345a3b7b798a F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca -F src/pager.c aa916ca28606ccf4b6877dfc2b643ccbca86589f -F src/pager.h 6d435f563b3f7fcae4b84433b76a6ac2730036e2 -F src/parse.y ad9af8552f6f340bd646577ca63356a6f82b6a7e +F src/pager.c 48a76f16a75112c9b064e21e1d1ecf0b4d87b5cd +F src/pager.h 3fc23bca2e7d606ca4fbdd923713cdcdcec48297 - F src/parse.y 199145cd982587d70fa3db2f9b11f7ab118f0acd ++F src/parse.y e9accdb2cb1795f75f478e7ce89e17b19d7d4da7 F src/pcache.c cde06aa50962595e412d497e22fd2e07878ba1f0 F src/pcache.h 9968603796240cdf83da7e7bef76edf90619cea9 - F src/pcache1.c d08939800abf3031bd0affd5a13fbc4d7ba3fb68 - F src/pragma.c e52084b37a08a88f258830518461e94627af2621 + F src/pcache1.c a3fe31b17e841ec70beee72a2c960e9c787a8857 + F src/pragma.c 669bc0fdb3fb5554e18330e8dd9743319bac16f4 F src/pragma.h 631a91c8b0e6ca8f051a1d8a4a0da4150e04620a F src/prepare.c 82e5db1013846a819f198336fed72c44c974e7b1 F src/printf.c 2bc439ff20a4aad0e0ad50a37a67b5eae7d20edc F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 - F src/resolve.c 2d47554370de8de6dd5be060cef9559eec315005 + F src/resolve.c 7a67cd2aebc9a9eeecd1d104eb6a9237388eb452 F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e - F src/select.c 57ef3d98c4400b93eea318813be41b2af2da2217 - F src/shell.c 8af3cced094aebb5f57a8ad739b9dafc7867eed7 - F src/sqlite.h.in f623dd30a4fb7df2fb44a2a85e27813d25e486c2 + F src/select.c c46de38c1b66355f02a839bb72eb13f277e6d19c + F src/shell.c b1f91e60918df3a68efad1e3a11696b9a7e23d23 + F src/sqlite.h.in 447ead0a6b3293206f04a0896553955d07cfb4b9 F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad F src/sqlite3ext.h a0b948ebc89bac13941254641326a6aa248c2cc4 - F src/sqliteInt.h f14033fa6da3ca70f7dde5ba19dc1ed58055a2d7 -F src/sqliteInt.h 89e68539d645db597366a91411468b51e73c21a0 ++F src/sqliteInt.h d4963f5f6b985b8f967be8e6e103be3cf36f1f42 F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46 F src/status.c f266ad8a2892d659b74f0f50cb6a88b6e7c12179 F src/table.c 51b46b2a62d1b3a959633d593b89bab5e2c9155e @@@ -389,26 -397,26 +397,26 @@@ F src/treeview.c c15df00728034549ff92d7 F src/trigger.c 322f23aad694e8f31d384dcfa386d52a48d3c52f F src/update.c 487747b328b7216bb7f6af0695d6937d5c9e605f F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c - F src/util.c 46358a204b35971a839341cf64599d65b151ba88 + F src/util.c bc9dd64b5db544218b871b66243871c202b2781f -F src/vacuum.c 2ddd5cad2a7b9cef7f9e431b8c7771634c6b1701 -F src/vdbe.c 6d85be995bd2308a5aa2a68c7b564c5d4cc1a6fb +F src/vacuum.c 4e7e18d889662eda281855a7125e56269069f215 - F src/vdbe.c fd6832408d9621ad347a65b01a05380fe766232f ++F src/vdbe.c 97b07a1af65971dab3d326742e912ac8c12108dd F src/vdbe.h 7a75045d879118b9d3af7e8b3c108f2f27c51473 F src/vdbeInt.h 8b54e01ad0463590e7cffabce0bc36da9ee4f816 - F src/vdbeapi.c adabbd66eb2e3a10f3998485ee0be7e326d06ee4 - F src/vdbeaux.c 27feae106f3f4db298e65d37a9da4962aaff724b + F src/vdbeapi.c bda74ef4b5103d7b4a4be36f936d3cf2b56a7d6f -F src/vdbeaux.c af2d86b2b114a106c94fc656503fc5c89594f5af ++F src/vdbeaux.c 0d62c6c2522d4a04e051d3862dfe7ae2f5c95598 F src/vdbeblob.c 4f2e8e075d238392df98c5e03a64342465b03f90 F src/vdbemem.c ae38a0d35ae71cf604381a887c170466ba518090 F src/vdbesort.c f5009e7a35e3065635d8918b9a31f498a499976b F src/vdbetrace.c 8befe829faff6d9e6f6e4dee5a7d3f85cc85f1a0 - F src/vtab.c 082b35a25a26e3d36f365ca8cd73c1922532f05e + F src/vtab.c d31174e4c8f592febab3fa7f69e18320b4fd657a F src/vxworks.h c18586c8edc1bddbc15c004fa16aeb1e1342b4fb -F src/wal.c 6fb6b68969e4692593c2552c4e7bff5882de2cb8 -F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4 +F src/wal.c 37b25bbb52d6a736397d11e85068b1a496970fb2 +F src/wal.h 5aaed8ca6cad1406088042ff8767951a6a3c7b56 - F src/walker.c c253b95b4ee44b21c406e2a1052636c31ea27804 - F src/where.c 909eba3b6db984eb2adfbca9de2c237ee7056adb - F src/whereInt.h 5f87e3c4b0551747d119730dfebddd3c54f04047 - F src/wherecode.c 5da5049224f12db314931ae7e0919b4914a2a0b1 - F src/whereexpr.c 9ce1c9cfedbf80c93c7d899497025ec8256ce652 + F src/walker.c 2e14d17f592d176b6dc879c33fbdec4fbccaa2ba + F src/where.c 66518a14a1238611aa0744d6980b6b7f544f4816 + F src/whereInt.h 880a8599226ac1c00203490d934f3ed79b292572 + F src/wherecode.c 69f19535a6de0cceb10e16b31a3a03463e31bc24 + F src/whereexpr.c f9dbd159127452150c92b558e184827ecb8f9229 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 @@@ -1368,7 -1376,7 +1378,7 @@@ F tool/vdbe_profile.tcl 67746953071a9f8 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f - P 7c36147846484c96023939864417b5624f3bc5f8 - R d431131c35d67ee146c27b397321fd1c -P 64d13339d44d1b7ec6768a33421f2138cb7872d8 -R 260ec5cb722f012aed82a5e5217a1778 -U drh -Z 32b72495e2d0c8597a1f587799e93112 ++P 82cd837e72ed4cf5821be717369694be29a2997e 7b8d17dd840f64dac9a018a4547a97de799e94ab ++R a6aada1e15ca09028aeff07fdb262305 +U dan - Z 6bf329345f5b33de62ef6fd5bfd9b35f ++Z 957a88b73b652ebea177f80c25ee0401 diff --cc manifest.uuid index f765222789,e438ad073b..ee7b5e2772 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 82cd837e72ed4cf5821be717369694be29a2997e -7b8d17dd840f64dac9a018a4547a97de799e94ab ++deaf3b18569025d8d168da29fae76142cfffe9e5 diff --cc src/vdbe.c index b400c425b8,2c0034cf64..b63194655c --- a/src/vdbe.c +++ b/src/vdbe.c @@@ -2895,6 -2895,6 +2895,7 @@@ case OP_Savepoint: ** is committed. */ int isTransaction = pSavepoint->pNext==0 && db->isTransactionSavepoint; ++ assert( db->bUnlocked==0 || db->isTransactionSavepoint==0 ); if( isTransaction && p1==SAVEPOINT_RELEASE ){ if( (rc = sqlite3VdbeCheckFk(p, 1))!=SQLITE_OK ){ goto vdbe_return; @@@ -3001,12 -2992,10 +3001,17 @@@ case OP_AutoCommit: assert( db->nVdbeActive>0 ); /* At least this one VM is active */ assert( p->bIsReader ); - if( turnOnAC && !iRollback && - (db->nVdbeWrite>0 || (db->bUnlocked && db->nVdbeActive>1)) - if( turnOnAC && !iRollback && db->nVdbeWrite>0 ){ - /* If this instruction implements a COMMIT and other VMs are writing - ** return an error indicating that the other VMs must complete first. - */ ++ if( turnOnAC && !iRollback ++ && (db->nVdbeWrite>0 || (db->bUnlocked && db->nVdbeActive>1)) + ){ - /* If this instruction implements a COMMIT and other VMs are writing - ** return an error indicating that the other VMs must complete first. - */ ++ /* A transaction may only be committed if there are no other active ++ ** writer VMs. If the transaction is UNLOCKED, then it may only be ++ ** committed if there are no active VMs at all (readers or writers). ++ ** ++ ** If this instruction is a COMMIT and the transaction may not be ++ ** committed due to one of the conditions above, return an error ++ ** indicating that other VMs must complete before the COMMIT can ++ ** be processed. */ sqlite3VdbeError(p, "cannot commit transaction - " "SQL statements in progress"); rc = SQLITE_BUSY; @@@ -3020,16 -3008,13 +3025,16 @@@ goto vdbe_return; }else{ db->autoCommit = (u8)desiredAutoCommit; - hrc = sqlite3VdbeHalt(p); - if( (hrc & 0xFF)==SQLITE_BUSY ){ - p->pc = (int)(pOp - aOp); - db->autoCommit = (u8)(1-desiredAutoCommit); - p->rc = hrc; - rc = SQLITE_BUSY; - goto vdbe_return; - } - db->bUnlocked = (u8)bUnlocked; } - if( sqlite3VdbeHalt(p)==SQLITE_BUSY ){ ++ hrc = sqlite3VdbeHalt(p); ++ if( (hrc & 0xFF)==SQLITE_BUSY ){ + p->pc = (int)(pOp - aOp); + db->autoCommit = (u8)(1-desiredAutoCommit); - p->rc = rc = SQLITE_BUSY; ++ p->rc = hrc; ++ rc = SQLITE_BUSY; + goto vdbe_return; + } ++ db->bUnlocked = (u8)bUnlocked; assert( db->nStatement==0 ); sqlite3CloseSavepoints(db); if( p->rc==SQLITE_OK ){