aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <Dan Kennedy>2021-05-20 11:42:51 +0000
committerdan <Dan Kennedy>2021-05-20 11:42:51 +0000
commita8f249f1e7d284495683b3e74c0fb3bf9a1acb50 (patch)
tree54f5e63bf550b8548503011c6b7a6fca5fff80a2 /src
parentcd1499f47b1de7c6ca9eb9e68e169218a203c5df (diff)
downloadsqlite-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.c1
-rw-r--r--src/vdbe.c1
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