diff options
author | dan <dan@noemail.net> | 2009-09-28 14:49:01 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2009-09-28 14:49:01 +0000 |
commit | d66c83095edcfb0f26e7ddf24f28455048d02b12 (patch) | |
tree | afb321fdcb5fb10572e6b895a621ca79b8166b19 /src/sqliteInt.h | |
parent | 9277efa3d576ab243077404bb5966f9a67a73004 (diff) | |
download | sqlite-d66c83095edcfb0f26e7ddf24f28455048d02b12.tar.gz sqlite-d66c83095edcfb0f26e7ddf24f28455048d02b12.zip |
Fix the DROP TABLE command so that it cannot be used to bypass foreign key constraints (if foreign key support is enabled).
FossilOrigin-Name: 8353808c9e70412fdee31bfda7810e948f1c7485
Diffstat (limited to 'src/sqliteInt.h')
-rw-r--r-- | src/sqliteInt.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 60414f762..2ae1ec808 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -2122,6 +2122,7 @@ struct Parse { u32 oldmask; /* Mask of old.* columns referenced */ u8 eTriggerOp; /* TK_UPDATE, TK_INSERT or TK_DELETE */ u8 eOrconf; /* Default ON CONFLICT policy for trigger steps */ + u8 disableTriggers; /* True to disable triggers */ /* Above is constant between recursions. Below is reset before and after ** each recursion */ @@ -2949,15 +2950,17 @@ VTable *sqlite3GetVTable(sqlite3*, Table*); */ #if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER) void sqlite3FkCheck(Parse*, Table*, ExprList*, int, int); + void sqlite3FkDropTable(Parse*, SrcList *, Table*); void sqlite3FkActions(Parse*, Table*, ExprList*, int); int sqlite3FkRequired(Parse*, Table*, ExprList*); u32 sqlite3FkOldmask(Parse*, Table*, ExprList*); FKey *sqlite3FkReferences(Table *); #else - #define sqlite3FkCheck(a,b,c,d,e) #define sqlite3FkActions(a,b,c,d) - #define sqlite3FkRequired(a,b,c) 0 + #define sqlite3FkCheck(a,b,c,d,e) + #define sqlite3FkDropTable(a,b,c) #define sqlite3FkOldmask(a,b,c) 0 + #define sqlite3FkRequired(a,b,c) 0 #endif #ifndef SQLITE_OMIT_FOREIGN_KEY void sqlite3FkDelete(Table*); |