]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid taking locks on unused database connections when committing a
authordrh <drh@noemail.net>
Thu, 14 Oct 2010 01:17:30 +0000 (01:17 +0000)
committerdrh <drh@noemail.net>
Thu, 14 Oct 2010 01:17:30 +0000 (01:17 +0000)
read transaction.

FossilOrigin-Name: c0ee614fd988f445c4884a37f494479bdd669185

manifest
manifest.uuid
src/btree.c

index c0941acfc04da0a529782473a77478f1dbc897c2..1a93e4732982fc3e330c3928a4017828f87aa093 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-C Check-in\s[d3c95e3a4e08d0]\swas\sincorrect.\s\sThis\sis\sthe\scorrect\sfix\sfor\nsqlit3_bind_blob().\s\sTicket\s[860399cc408f2dd5f4]
-D 2010-10-14T01:16:33
+C Avoid\staking\slocks\son\sunused\sdatabase\sconnections\swhen\scommitting\sa\nread\stransaction.
+D 2010-10-14T01:17:30
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in b01fdfcfecf8a0716c29867a67959f6148b79961
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -121,7 +121,7 @@ F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
 F src/backup.c d5b0137bc20327af08c14772227cc35134839c30
 F src/bitvec.c af50f1c8c0ff54d6bdb7a80e2fceca5a93670bef
 F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff
-F src/btree.c d878577184112d982d00ea05afcc7487cd9f06f5
+F src/btree.c 8a1b0267a4f1914aedbaa93d3fcf4f2e42141ea8
 F src/btree.h 2d1a83ad509047e8cc314fda7e054f99ff52414d
 F src/btreeInt.h c424f2f131cc61ddf130f9bd736b3df12c8a51f0
 F src/build.c 00a327120d81ace6267e714ae8010c997d55de5d
@@ -876,14 +876,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P d3c95e3a4e08d08028e9bc7f282074e32b9cf950
-R c98ef3dc0fa2144496c5ce9ed9bca898
+P ea8c2f5f8a890dcb422e9e46298ae6ca378c74b7
+R 03d2b3a92f9647a3db71aa9ca75489f4
 U drh
-Z bce2632c7f66d8ece358839f54e35ed0
+Z c2cdb52e62b9c570a5e1c8427f4ce5c4
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.6 (GNU/Linux)
 
-iD8DBQFMtln1oxKgR168RlERAiWvAJ9rXglnwByHGbbkgLs+G2EEefeXTwCfTAqs
-iQxq9aRZ62Kqv3eMBN4yX9k=
-=eO0n
+iD8DBQFMtlotoxKgR168RlERAuf0AJ96F+hVDOt4y4GU2wooqTHtO4kKZgCeKIVj
+dUPTQwgWJgqAaN5BweGLucY=
+=QYIr
 -----END PGP SIGNATURE-----
index 6f39cb4183852f0f14507cbc5cfc78bc4dbac6a5..4e2a5db00380b32a564cb87c0ffdaf11f92396d3 100644 (file)
@@ -1 +1 @@
-ea8c2f5f8a890dcb422e9e46298ae6ca378c74b7
\ No newline at end of file
+c0ee614fd988f445c4884a37f494479bdd669185
\ No newline at end of file
index f57f13275454187e95082e6f7427148150320b87..f9c368a93d6b64f73ebb52f6a1f8b752d7917065 100644 (file)
@@ -3167,8 +3167,8 @@ static void btreeEndTransaction(Btree *p){
 ** are no active cursors, it also releases the read lock.
 */
 int sqlite3BtreeCommitPhaseTwo(Btree *p){
-  BtShared *pBt = p->pBt;
 
+  if( p->inTrans==TRANS_NONE ) return SQLITE_OK;
   sqlite3BtreeEnter(p);
   btreeIntegrity(p);
 
@@ -3177,6 +3177,7 @@ int sqlite3BtreeCommitPhaseTwo(Btree *p){
   */
   if( p->inTrans==TRANS_WRITE ){
     int rc;
+    BtShared *pBt = p->pBt;
     assert( pBt->inTransaction==TRANS_WRITE );
     assert( pBt->nTransaction>0 );
     rc = sqlite3PagerCommitPhaseTwo(pBt->pPager);