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

Change to five conflict resolution algorithms: ROLLBACK, ABORT, FAIL,

IGNORE, and REPLACE.  This checkin is code only.  Documentation and
tests are still needed.  Also, ABORT is not fully implemented. (CVS 360)

FossilOrigin-Name: d0e7cf4a83e6abad7129bed356b7492dddaff474
This commit is contained in:
drh
2002-01-31 15:54:21 +00:00
parent b419a926d4
commit 1c92853dac
17 changed files with 331 additions and 239 deletions

View File

@@ -12,7 +12,7 @@
** This file contains C code routines that are called by the parser
** to handle UPDATE statements.
**
** $Id: update.c,v 1.31 2002/01/30 16:17:24 drh Exp $
** $Id: update.c,v 1.32 2002/01/31 15:54:22 drh Exp $
*/
#include "sqliteInt.h"
@@ -161,11 +161,7 @@ void sqliteUpdate(
*/
v = sqliteGetVdbe(pParse);
if( v==0 ) goto update_cleanup;
if( (db->flags & SQLITE_InTrans)==0 ){
sqliteVdbeAddOp(v, OP_Transaction, 0, 0);
sqliteVdbeAddOp(v, OP_VerifyCookie, db->schema_cookie, 0);
pParse->schemaVerified = 1;
}
sqliteBeginWriteOperation(pParse);
/* Begin the database scan
*/
@@ -282,9 +278,7 @@ void sqliteUpdate(
sqliteVdbeAddOp(v, OP_Goto, 0, addr);
sqliteVdbeChangeP2(v, addr, sqliteVdbeCurrentAddr(v));
sqliteVdbeAddOp(v, OP_ListReset, 0, 0);
if( (db->flags & SQLITE_InTrans)==0 ){
sqliteVdbeAddOp(v, OP_Commit, 0, 0);
}
sqliteEndWriteOperation(pParse);
/*
** Return the number of rows that were changed.