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/sqliteInt.h | |
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/sqliteInt.h')
-rw-r--r-- | src/sqliteInt.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 733ffd475..9a53aaaa5 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -11,7 +11,7 @@ ************************************************************************* ** Internal interface definitions for SQLite. ** -** @(#) $Id: sqliteInt.h,v 1.699 2008/04/28 17:41:31 shane Exp $ +** @(#) $Id: sqliteInt.h,v 1.700 2008/04/28 18:46:43 drh Exp $ */ #ifndef _SQLITEINT_H_ #define _SQLITEINT_H_ @@ -1519,7 +1519,8 @@ struct Parse { #ifndef SQLITE_OMIT_VIRTUALTABLE Token sArg; /* Complete text of a module argument */ u8 declareVtab; /* True if inside sqlite3_declare_vtab() */ - Table *pVirtualLock; /* Require virtual table lock on this table */ + int nVtabLock; /* Number of virtual tables to lock */ + Table **apVtabLock; /* Pointer to virtual tables needing locking */ #endif #if defined(SQLITE_TEST) || SQLITE_MAX_EXPR_DEPTH>0 int nHeight; /* Expression tree height of current sub-select */ @@ -2124,6 +2125,7 @@ int sqlite3AutoLoadExtensions(sqlite3*); int sqlite3VtabRollback(sqlite3 *db); int sqlite3VtabCommit(sqlite3 *db); #endif +void sqlite3VtabMakeWritable(Parse*,Table*); void sqlite3VtabLock(sqlite3_vtab*); void sqlite3VtabUnlock(sqlite3*, sqlite3_vtab*); void sqlite3VtabBeginParse(Parse*, Token*, Token*, Token*); |