]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge trunk changes with this branch.
authordan <dan@noemail.net>
Fri, 21 Aug 2015 16:22:04 +0000 (16:22 +0000)
committerdan <dan@noemail.net>
Fri, 21 Aug 2015 16:22:04 +0000 (16:22 +0000)
FossilOrigin-Name: deaf3b18569025d8d168da29fae76142cfffe9e5

1  2 
manifest
manifest.uuid
src/btreeInt.h
src/build.c
src/main.c
src/parse.y
src/sqliteInt.h
src/vdbe.c
src/vdbeaux.c

diff --cc manifest
index dd80228576e983b37e7697fc06022d99496f6e00,5ea50eda2b1c90ff2385fd5e7e007ca47deb2293..f5c3e2811a14c0d03ecaa8935a57e1d8f42d5e42
+++ 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 f765222789d6e8e72d9ba6247df3b4d2b4378b37,e438ad073b1e36b1d2c4cbf1bcc207a774a9599d..ee7b5e27724a9bee3250e10597de3179e3974247
@@@ -1,1 -1,1 +1,1 @@@
- 82cd837e72ed4cf5821be717369694be29a2997e
 -7b8d17dd840f64dac9a018a4547a97de799e94ab
++deaf3b18569025d8d168da29fae76142cfffe9e5
diff --cc src/btreeInt.h
Simple merge
diff --cc src/build.c
Simple merge
diff --cc src/main.c
Simple merge
diff --cc src/parse.y
Simple merge
diff --cc src/sqliteInt.h
Simple merge
diff --cc src/vdbe.c
index b400c425b88a6630cce4d1b6c36aa05df6ffb80d,2c0034cf64d1ff31924eddfe91879f0e038065bd..b63194655cbfbf65b20714fe77d3ce1704ef3e6a
@@@ -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;
        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 ){
diff --cc src/vdbeaux.c
Simple merge