1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-08 14:02:16 +03:00

Avoid taking locks on unused database connections when committing a

read transaction.

FossilOrigin-Name: c0ee614fd988f445c4884a37f494479bdd669185
This commit is contained in:
drh
2010-10-14 01:17:30 +00:00
parent 94bb2ba619
commit 075ed30a9f
3 changed files with 12 additions and 11 deletions

View File

@@ -1,8 +1,8 @@
-----BEGIN PGP SIGNED MESSAGE----- -----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1 Hash: SHA1
C Check-in\s[d3c95e3a4e08d0]\swas\sincorrect.\s\sThis\sis\sthe\scorrect\sfix\sfor\nsqlit3_bind_blob().\s\sTicket\s[860399cc408f2dd5f4] C Avoid\staking\slocks\son\sunused\sdatabase\sconnections\swhen\scommitting\sa\nread\stransaction.
D 2010-10-14T01:16:33 D 2010-10-14T01:17:30
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in b01fdfcfecf8a0716c29867a67959f6148b79961 F Makefile.in b01fdfcfecf8a0716c29867a67959f6148b79961
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -121,7 +121,7 @@ F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
F src/backup.c d5b0137bc20327af08c14772227cc35134839c30 F src/backup.c d5b0137bc20327af08c14772227cc35134839c30
F src/bitvec.c af50f1c8c0ff54d6bdb7a80e2fceca5a93670bef F src/bitvec.c af50f1c8c0ff54d6bdb7a80e2fceca5a93670bef
F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff
F src/btree.c d878577184112d982d00ea05afcc7487cd9f06f5 F src/btree.c 8a1b0267a4f1914aedbaa93d3fcf4f2e42141ea8
F src/btree.h 2d1a83ad509047e8cc314fda7e054f99ff52414d F src/btree.h 2d1a83ad509047e8cc314fda7e054f99ff52414d
F src/btreeInt.h c424f2f131cc61ddf130f9bd736b3df12c8a51f0 F src/btreeInt.h c424f2f131cc61ddf130f9bd736b3df12c8a51f0
F src/build.c 00a327120d81ace6267e714ae8010c997d55de5d F src/build.c 00a327120d81ace6267e714ae8010c997d55de5d
@@ -876,14 +876,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
P d3c95e3a4e08d08028e9bc7f282074e32b9cf950 P ea8c2f5f8a890dcb422e9e46298ae6ca378c74b7
R c98ef3dc0fa2144496c5ce9ed9bca898 R 03d2b3a92f9647a3db71aa9ca75489f4
U drh U drh
Z bce2632c7f66d8ece358839f54e35ed0 Z c2cdb52e62b9c570a5e1c8427f4ce5c4
-----BEGIN PGP SIGNATURE----- -----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux) Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFMtln1oxKgR168RlERAiWvAJ9rXglnwByHGbbkgLs+G2EEefeXTwCfTAqs iD8DBQFMtlotoxKgR168RlERAuf0AJ96F+hVDOt4y4GU2wooqTHtO4kKZgCeKIVj
iQxq9aRZ62Kqv3eMBN4yX9k= dUPTQwgWJgqAaN5BweGLucY=
=eO0n =QYIr
-----END PGP SIGNATURE----- -----END PGP SIGNATURE-----

View File

@@ -1 +1 @@
ea8c2f5f8a890dcb422e9e46298ae6ca378c74b7 c0ee614fd988f445c4884a37f494479bdd669185

View File

@@ -3167,8 +3167,8 @@ static void btreeEndTransaction(Btree *p){
** are no active cursors, it also releases the read lock. ** are no active cursors, it also releases the read lock.
*/ */
int sqlite3BtreeCommitPhaseTwo(Btree *p){ int sqlite3BtreeCommitPhaseTwo(Btree *p){
BtShared *pBt = p->pBt;
if( p->inTrans==TRANS_NONE ) return SQLITE_OK;
sqlite3BtreeEnter(p); sqlite3BtreeEnter(p);
btreeIntegrity(p); btreeIntegrity(p);
@@ -3177,6 +3177,7 @@ int sqlite3BtreeCommitPhaseTwo(Btree *p){
*/ */
if( p->inTrans==TRANS_WRITE ){ if( p->inTrans==TRANS_WRITE ){
int rc; int rc;
BtShared *pBt = p->pBt;
assert( pBt->inTransaction==TRANS_WRITE ); assert( pBt->inTransaction==TRANS_WRITE );
assert( pBt->nTransaction>0 ); assert( pBt->nTransaction>0 );
rc = sqlite3PagerCommitPhaseTwo(pBt->pPager); rc = sqlite3PagerCommitPhaseTwo(pBt->pPager);