diff options
author | drh <drh@noemail.net> | 2008-04-28 18:46:43 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2008-04-28 18:46:43 +0000 |
commit | 4f3dd1502e052b7dd3f1581aec32f294710a84d9 (patch) | |
tree | e4eb1c0c94156658870aeb25f039f66cee405a34 /src/update.c | |
parent | 952856ad3a297443dfd175655f1988e275296ff5 (diff) | |
download | sqlite-4f3dd1502e052b7dd3f1581aec32f294710a84d9.tar.gz sqlite-4f3dd1502e052b7dd3f1581aec32f294710a84d9.zip |
Make sure that transactions are started on all virtual tables that
changes in a single statement, not just the first. Ticket #3083.
Need to add test cases. (CVS 5063)
FossilOrigin-Name: 133b7ee50ea6012739ebe0e334374c5d9b1fcc7f
Diffstat (limited to 'src/update.c')
-rw-r--r-- | src/update.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/update.c b/src/update.c index 2a170366a..5ce03bf40 100644 --- a/src/update.c +++ b/src/update.c @@ -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.177 2008/04/15 14:36:42 drh Exp $ +** $Id: update.c,v 1.178 2008/04/28 18:46:43 drh Exp $ */ #include "sqliteInt.h" @@ -661,7 +661,7 @@ static void updateVirtualTable( for(i=0; i<pTab->nCol; i++){ sqlite3VdbeAddOp3(v, OP_Column, ephemTab, i+1+(pRowid!=0), iReg+2+i); } - pParse->pVirtualLock = pTab; + sqlite3VtabMakeWritable(pParse, pTab); sqlite3VdbeAddOp4(v, OP_VUpdate, 0, pTab->nCol+2, iReg, pVtab, P4_VTAB); sqlite3VdbeAddOp2(v, OP_Next, ephemTab, addr); sqlite3VdbeJumpHere(v, addr-1); |