aboutsummaryrefslogtreecommitdiff
path: root/src/tokenize.c
diff options
context:
space:
mode:
authordanielk1977 <danielk1977@noemail.net>2006-06-12 11:24:37 +0000
committerdanielk1977 <danielk1977@noemail.net>2006-06-12 11:24:37 +0000
commit7e6ebfb2460856acc7afb7b44d25e840866f5ccc (patch)
tree2191533e25f0e5cef3adc8c1b79b9ce8df1bff2c /src/tokenize.c
parent78efaba10e4568817e5b75bcdfd4f599677e94c9 (diff)
downloadsqlite-7e6ebfb2460856acc7afb7b44d25e840866f5ccc.tar.gz
sqlite-7e6ebfb2460856acc7afb7b44d25e840866f5ccc.zip
Add first cut of sqlite3_declare_vtab(). Not at all well tested yet. (CVS 3213)
FossilOrigin-Name: bbeb93b5bb26ba83ee7b7ae439ca5ceebebac9a0
Diffstat (limited to 'src/tokenize.c')
-rw-r--r--src/tokenize.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/tokenize.c b/src/tokenize.c
index 2d49fe8cd..c50395aeb 100644
--- a/src/tokenize.c
+++ b/src/tokenize.c
@@ -15,7 +15,7 @@
** individual tokens and sends those tokens one-by-one over to the
** parser for analysis.
**
-** $Id: tokenize.c,v 1.119 2006/06/11 23:41:56 drh Exp $
+** $Id: tokenize.c,v 1.120 2006/06/12 11:24:37 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include "os.h"
@@ -483,10 +483,19 @@ abort_parse:
pParse->nTableLock = 0;
}
#endif
+
#ifndef SQLITE_OMIT_VIRTUALTABLE
sqliteFree(pParse->zArg);
#endif
- sqlite3DeleteTable(pParse->db, pParse->pNewTable);
+
+ if( !IN_DECLARE_VTAB ){
+ /* If the pParse->declareVtab flag is set, do not delete any table
+ ** structure built up in pParse->pNewTable. The calling code (see vtab.c)
+ ** will take responsibility for freeing the Table structure.
+ */
+ sqlite3DeleteTable(pParse->db, pParse->pNewTable);
+ }
+
sqlite3DeleteTrigger(pParse->pNewTrigger);
sqliteFree(pParse->apVarExpr);
if( nErr>0 && (pParse->rc==SQLITE_OK || pParse->rc==SQLITE_DONE) ){