From: drh Date: Thu, 14 Oct 2010 01:17:30 +0000 (+0000) Subject: Avoid taking locks on unused database connections when committing a X-Git-Tag: version-3.7.4~94 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=075ed30a9fb8e2baad3e967c615f6d640a8cfbb4;p=thirdparty%2Fsqlite.git Avoid taking locks on unused database connections when committing a read transaction. FossilOrigin-Name: c0ee614fd988f445c4884a37f494479bdd669185 --- diff --git a/manifest b/manifest index c0941acfc0..1a93e47329 100644 --- 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----- diff --git a/manifest.uuid b/manifest.uuid index 6f39cb4183..4e2a5db003 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -ea8c2f5f8a890dcb422e9e46298ae6ca378c74b7 \ No newline at end of file +c0ee614fd988f445c4884a37f494479bdd669185 \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index f57f132754..f9c368a93d 100644 --- a/src/btree.c +++ b/src/btree.c @@ -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);