diff options
author | dan <Dan Kennedy> | 2021-05-20 11:42:51 +0000 |
---|---|---|
committer | dan <Dan Kennedy> | 2021-05-20 11:42:51 +0000 |
commit | a8f249f1e7d284495683b3e74c0fb3bf9a1acb50 (patch) | |
tree | 54f5e63bf550b8548503011c6b7a6fca5fff80a2 /src | |
parent | cd1499f47b1de7c6ca9eb9e68e169218a203c5df (diff) | |
download | sqlite-a8f249f1e7d284495683b3e74c0fb3bf9a1acb50.tar.gz sqlite-a8f249f1e7d284495683b3e74c0fb3bf9a1acb50.zip |
Ensure the required b-tree mutexes are held for "CREATE TABLE IF NOT EXISTS" and "DROP TABLE IF EXISTS" statements on attached databases.
FossilOrigin-Name: 67bde01614edd944b769ab28488bac1dbbf17d88beee62ca7f1e45681aa3d402
Diffstat (limited to 'src')
-rw-r--r-- | src/build.c | 1 | ||||
-rw-r--r-- | src/vdbe.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/src/build.c b/src/build.c index 25954b4d4..4f76c9380 100644 --- a/src/build.c +++ b/src/build.c @@ -1070,6 +1070,7 @@ static void sqlite3ForceNotReadOnly(Parse *pParse){ Vdbe *v = sqlite3GetVdbe(pParse); if( v ){ sqlite3VdbeAddOp3(v, OP_JournalMode, 0, iReg, PAGER_JOURNALMODE_QUERY); + sqlite3VdbeUsesBtree(v, 0); } } diff --git a/src/vdbe.c b/src/vdbe.c index 54588b2a1..ad3008669 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -7247,6 +7247,7 @@ case OP_JournalMode: { /* out2 */ pPager = sqlite3BtreePager(pBt); eOld = sqlite3PagerGetJournalMode(pPager); if( eNew==PAGER_JOURNALMODE_QUERY ) eNew = eOld; + assert( sqlite3BtreeHoldsMutex(pBt) ); if( !sqlite3PagerOkToChangeJournalMode(pPager) ) eNew = eOld; #ifndef SQLITE_OMIT_WAL |