aboutsummaryrefslogtreecommitdiff
path: root/src/trigger.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2006-06-14 19:00:20 +0000
committerdrh <drh@noemail.net>2006-06-14 19:00:20 +0000
commit4cbdda9e273d030228bc58128d59e84009baefeb (patch)
tree8da8bb9cb7812dbe99a7e58929aab1b73c630095 /src/trigger.c
parentbadf7a7a2fa7af2e78341999a3de812d04d1eaeb (diff)
downloadsqlite-4cbdda9e273d030228bc58128d59e84009baefeb.tar.gz
sqlite-4cbdda9e273d030228bc58128d59e84009baefeb.zip
Added code to INSERT, DELETE and UPDATE virtual tables. The new code is
mostly untested. (CVS 3248) FossilOrigin-Name: 32c97b884b104d120db3c0a87f5eab28f36851f8
Diffstat (limited to 'src/trigger.c')
-rw-r--r--src/trigger.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/trigger.c b/src/trigger.c
index d670e527c..15992df38 100644
--- a/src/trigger.c
+++ b/src/trigger.c
@@ -103,6 +103,10 @@ void sqlite3BeginTrigger(
/* The table does not exist. */
goto trigger_cleanup;
}
+ if( IsVirtual(pTab) ){
+ sqlite3ErrorMsg(pParse, "cannot create triggers on virtual tables");
+ goto trigger_cleanup;
+ }
/* Check that the trigger name is not reserved and that no trigger of the
** specified name exists */
@@ -594,9 +598,10 @@ int sqlite3TriggersExist(
int op, /* one of TK_DELETE, TK_INSERT, TK_UPDATE */
ExprList *pChanges /* Columns that change in an UPDATE statement */
){
- Trigger *pTrigger = pTab->pTrigger;
+ Trigger *pTrigger;
int mask = 0;
+ pTrigger = IsVirtual(pTab) ? 0 : pTab->pTrigger;
while( pTrigger ){
if( pTrigger->op==op && checkColumnOverLap(pTrigger->pColumns, pChanges) ){
mask |= pTrigger->tr_tm;