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

Do not put a write lock on the main database file when writing to a temporary

table. (CVS 750)

FossilOrigin-Name: 3f253afe15d4f7392555f340a41d780d1248087f
This commit is contained in:
drh
2002-09-14 13:47:32 +00:00
parent 41a3bd0a01
commit cabb081971
12 changed files with 195 additions and 53 deletions

View File

@@ -143,7 +143,7 @@ void sqliteCreateTrigger(
/* Make an entry in the sqlite_master table */
v = sqliteGetVdbe(pParse);
if( v==0 ) goto trigger_cleanup;
sqliteBeginWriteOperation(pParse, 0);
sqliteBeginWriteOperation(pParse, 0, 0);
sqliteOpenMasterTable(v, tab->isTemp);
addr = sqliteVdbeAddOpList(v, ArraySize(insertTrig), insertTrig);
sqliteVdbeChangeP3(v, addr, tab->isTemp ? TEMP_MASTER_NAME : MASTER_NAME,
@@ -386,7 +386,7 @@ void sqliteDropTrigger(Parse *pParse, Token *pName, int nested){
{ OP_Next, 0, ADDR(3), 0}, /* 7 */
};
sqliteBeginWriteOperation(pParse, 0);
sqliteBeginWriteOperation(pParse, 0, 0);
sqliteOpenMasterTable(v, pTable->isTemp);
base = sqliteVdbeAddOpList(v, ArraySize(dropTrigger), dropTrigger);
sqliteVdbeChangeP3(v, base+1, zName, 0);
@@ -674,7 +674,7 @@ void sqliteViewTriggers(
v = sqliteGetVdbe(pParse);
assert(v);
sqliteBeginWriteOperation(pParse, 1);
sqliteBeginWriteOperation(pParse, 1, 0);
/* Allocate temp tables */
oldIdx = pParse->nTab++;