diff options
author | drh <drh@noemail.net> | 2006-06-14 19:00:20 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2006-06-14 19:00:20 +0000 |
commit | 4cbdda9e273d030228bc58128d59e84009baefeb (patch) | |
tree | 8da8bb9cb7812dbe99a7e58929aab1b73c630095 /src/trigger.c | |
parent | badf7a7a2fa7af2e78341999a3de812d04d1eaeb (diff) | |
download | sqlite-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.c | 7 |
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; |