diff options
Diffstat (limited to 'ext/sqlite/libsqlite/src/trigger.c')
-rw-r--r-- | ext/sqlite/libsqlite/src/trigger.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/ext/sqlite/libsqlite/src/trigger.c b/ext/sqlite/libsqlite/src/trigger.c index 97891b2cb9..82b679755a 100644 --- a/ext/sqlite/libsqlite/src/trigger.c +++ b/ext/sqlite/libsqlite/src/trigger.c @@ -83,6 +83,7 @@ void sqliteBeginTrigger( } zName = sqliteStrNDup(pName->z, pName->n); + sqliteDequote(zName); if( sqliteHashFind(&(db->aDb[iDb].trigHash), zName,pName->n+1) ){ sqliteErrorMsg(pParse, "trigger %T already exists", pName); goto trigger_cleanup; @@ -450,14 +451,15 @@ void sqliteDropTriggerPtr(Parse *pParse, Trigger *pTrigger, int nested){ if( pTable!=0 && !nested && (v = sqliteGetVdbe(pParse))!=0 ){ int base; static VdbeOp dropTrigger[] = { - { OP_Rewind, 0, ADDR(8), 0}, + { OP_Rewind, 0, ADDR(9), 0}, { OP_String, 0, 0, 0}, /* 1 */ - { OP_MemStore, 1, 1, 0}, - { OP_MemLoad, 1, 0, 0}, /* 3 */ { OP_Column, 0, 1, 0}, - { OP_Ne, 0, ADDR(7), 0}, + { OP_Ne, 0, ADDR(8), 0}, + { OP_String, 0, 0, "trigger"}, + { OP_Column, 0, 0, 0}, + { OP_Ne, 0, ADDR(8), 0}, { OP_Delete, 0, 0, 0}, - { OP_Next, 0, ADDR(3), 0}, /* 7 */ + { OP_Next, 0, ADDR(1), 0}, /* 8 */ }; sqliteBeginWriteOperation(pParse, 0, 0); |