mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-08 14:02:16 +03:00
Rename the SQLITE_DeferForeignKeys macro to shorter SQLITE_DeferFKs. Move
the "defer_foreign_keys" pragma into the flagPragma() routine. FossilOrigin-Name: 3a2ab74c85a40e0e7ef2d6aef6ec23837cb788e6
This commit is contained in:
22
manifest
22
manifest
@@ -1,5 +1,5 @@
|
||||
C Pull\sin\sall\sthe\slatest\schanges\sfrom\strunk.
|
||||
D 2013-07-09T13:05:49.248
|
||||
C Rename\sthe\sSQLITE_DeferForeignKeys\smacro\sto\sshorter\sSQLITE_DeferFKs.\s\sMove\nthe\s"defer_foreign_keys"\spragma\sinto\sthe\sflagPragma()\sroutine.
|
||||
D 2013-07-11T12:19:12.495
|
||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||
F Makefile.in aff38bc64c582dd147f18739532198372587b0f0
|
||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||
@@ -187,7 +187,7 @@ F src/date.c 067a81c9942c497aafd2c260e13add8a7d0c7dd4
|
||||
F src/delete.c 39a770e9729b1acd2de347f8f614584841d0083e
|
||||
F src/expr.c 2b47ae9da6c9f34eff6736962ea2e102c6c4a755
|
||||
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
|
||||
F src/fkey.c 87619fc3a9b6ab6877388bbcc05cdb136503786e
|
||||
F src/fkey.c 914a6bbd987d857c41ac9d244efa6641f36faadb
|
||||
F src/func.c 5c50c1ea31fd864b0fe921fe1a8d4c55acd609ef
|
||||
F src/global.c 5caf4deab621abb45b4c607aad1bd21c20aac759
|
||||
F src/hash.c ac3470bbf1ca4ae4e306a8ecb0fdf1731810ffe4
|
||||
@@ -198,7 +198,7 @@ F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d
|
||||
F src/legacy.c 0df0b1550b9cc1f58229644735e317ac89131f12
|
||||
F src/lempar.c cdf0a000315332fc9b50b62f3b5e22e080a0952b
|
||||
F src/loadext.c c48f7f3f170e502fe0cc20748e03c6e0b5a016c2
|
||||
F src/main.c a27560235a8e0e3f1a94aaca30189431bf61e776
|
||||
F src/main.c 93407bb51024f962ed9cf1c3e525e63484ebbdb9
|
||||
F src/malloc.c fe085aa851b666b7c375c1ff957643dc20a04bf6
|
||||
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
|
||||
F src/mem1.c 437c7c4af964895d4650f29881df63535caaa1fa
|
||||
@@ -223,7 +223,7 @@ F src/parse.y 9acfcc83ddbf0cf82f0ed9582ccf0ad6c366ff37
|
||||
F src/pcache.c f8043b433a57aba85384a531e3937a804432a346
|
||||
F src/pcache.h a5e4f5d9f5d592051d91212c5949517971ae6222
|
||||
F src/pcache1.c d23d07716de96c7c0c2503ec5051a4384c3fb938
|
||||
F src/pragma.c 057f5b1343c9a79e3e6c0c542a3a08b85849ee61
|
||||
F src/pragma.c c87581d93a7518cba656b7919e32ded5d331b76a
|
||||
F src/prepare.c 2306be166bbeddf454e18bf8b21dba8388d05328
|
||||
F src/printf.c 41c49dac366a3a411190001a8ab495fa8887974e
|
||||
F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
|
||||
@@ -234,7 +234,7 @@ F src/shell.c c8cd06e6b66250a3ea0149c4edec30de14f57b6f
|
||||
F src/sqlite.h.in fb8adf7852fb92e410de422b5569923327bf8a2c
|
||||
F src/sqlite3.rc fea433eb0a59f4c9393c8e6d76a6e2596b1fe0c0
|
||||
F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc
|
||||
F src/sqliteInt.h a83b0cef30022c46a19e6ace1f668b7833935eed
|
||||
F src/sqliteInt.h 62b11aa829ab51446a52dfea93f14b8e1e5d5862
|
||||
F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
|
||||
F src/status.c bedc37ec1a6bb9399944024d63f4c769971955a9
|
||||
F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
|
||||
@@ -290,11 +290,11 @@ F src/update.c 19daebf6a0a67af5524913e93498d08388792128
|
||||
F src/utf.c 8d819e2e5104a430fc2005f018db14347c95a38f
|
||||
F src/util.c f566b5138099a2df8533b190d0dcc74b7dfbe0c9
|
||||
F src/vacuum.c d9c5759f4c5a438bb43c2086f72c5d2edabc36c8
|
||||
F src/vdbe.c 7e1654d4ac01f017aad8088a1225e514b2aef5cf
|
||||
F src/vdbe.c 26f19a439806efdd9fb93b1874a4a7029a885142
|
||||
F src/vdbe.h 1223e2548e0970cf96f573ff6b99f804a36ad683
|
||||
F src/vdbeInt.h 11feb11eb49d8b312741011d30d91c9c50b59de0
|
||||
F src/vdbeapi.c bb28ee14bae43579b33d88e0d916a1657255a866
|
||||
F src/vdbeaux.c 84f5fb7cb2f62fd8b8a37b96ac929221cc77d317
|
||||
F src/vdbeaux.c 35846cedd64e90b83f498786775c69c2c6b6c8b1
|
||||
F src/vdbeblob.c 1268e0bcb8e21fa32520b0fc376e1bcdfaa0c642
|
||||
F src/vdbemem.c 833005f1cbbf447289f1973dba2a0c2228c7b8ab
|
||||
F src/vdbesort.c 3937e06b2a0e354500e17dc206ef4c35770a5017
|
||||
@@ -1115,7 +1115,7 @@ F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
|
||||
F tool/wherecosttest.c f407dc4c79786982a475261866a161cd007947ae
|
||||
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
|
||||
P 1452defb8cfcc489230314dd1e0425feba46c49d 1e39f85077f1f2b96c3a656c5b6334bafb005908
|
||||
R 996effd12b4e262519df6f6e538dae74
|
||||
P af3ca4c6e557e6bc92584586b5a97d9be41b0b82
|
||||
R 5801e485f633968bff3b48e71da6671c
|
||||
U drh
|
||||
Z 08707dac307041af534ddfd35863fca1
|
||||
Z 2dfee648a27ba78793a28310983bc733
|
||||
|
@@ -1 +1 @@
|
||||
af3ca4c6e557e6bc92584586b5a97d9be41b0b82
|
||||
3a2ab74c85a40e0e7ef2d6aef6ec23837cb788e6
|
@@ -422,7 +422,7 @@ static void fkLookupParent(
|
||||
}
|
||||
}
|
||||
|
||||
if( !pFKey->isDeferred && !(pParse->db->flags & SQLITE_DeferForeignKeys)
|
||||
if( !pFKey->isDeferred && !(pParse->db->flags & SQLITE_DeferFKs)
|
||||
&& !pParse->pToplevel
|
||||
&& !pParse->isMultiWrite
|
||||
){
|
||||
@@ -816,7 +816,7 @@ void sqlite3FkCheck(
|
||||
SrcList *pSrc;
|
||||
int *aiCol = 0;
|
||||
|
||||
if( !pFKey->isDeferred && !(db->flags & SQLITE_DeferForeignKeys)
|
||||
if( !pFKey->isDeferred && !(db->flags & SQLITE_DeferFKs)
|
||||
&& !pParse->pToplevel && !pParse->isMultiWrite
|
||||
){
|
||||
assert( regOld==0 && regNew!=0 );
|
||||
|
@@ -1038,7 +1038,7 @@ void sqlite3RollbackAll(sqlite3 *db, int tripCode){
|
||||
/* Any deferred constraint violations have now been resolved. */
|
||||
db->nDeferredCons = 0;
|
||||
db->nDeferredImmCons = 0;
|
||||
db->flags &= ~SQLITE_DeferForeignKeys;
|
||||
db->flags &= ~SQLITE_DeferFKs;
|
||||
|
||||
/* If one has been configured, invoke the rollback-hook callback */
|
||||
if( db->xRollbackCallback && (inTrans || !db->autoCommit) ){
|
||||
|
17
src/pragma.c
17
src/pragma.c
@@ -203,6 +203,7 @@ static int flagPragma(Parse *pParse, const char *zLeft, const char *zRight){
|
||||
** are present in the build. */
|
||||
#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
|
||||
{ "foreign_keys", SQLITE_ForeignKeys },
|
||||
{ "defer_foreign_keys", SQLITE_DeferFKs },
|
||||
#endif
|
||||
};
|
||||
int i;
|
||||
@@ -228,6 +229,7 @@ static int flagPragma(Parse *pParse, const char *zLeft, const char *zRight){
|
||||
db->flags |= mask;
|
||||
}else{
|
||||
db->flags &= ~mask;
|
||||
if( mask==SQLITE_DeferFKs ) db->nDeferredImmCons = 0;
|
||||
}
|
||||
|
||||
/* Many of the flag-pragmas modify the code generated by the SQL
|
||||
@@ -1169,21 +1171,6 @@ void sqlite3Pragma(
|
||||
}
|
||||
}
|
||||
}else
|
||||
|
||||
if( sqlite3StrICmp(zLeft, "defer_foreign_keys")==0 ){
|
||||
if( zRight ){
|
||||
if( sqlite3GetBoolean(zRight, 0) ){
|
||||
db->flags |= SQLITE_DeferForeignKeys;
|
||||
}else{
|
||||
db->flags &= ~SQLITE_DeferForeignKeys;
|
||||
db->nDeferredImmCons = 0;
|
||||
}
|
||||
sqlite3VdbeAddOp2(v, OP_Expire, 0, 0);
|
||||
}else{
|
||||
int bVal = !!(db->flags & SQLITE_DeferForeignKeys);
|
||||
returnSingleInt(pParse, "defer_foreign_keys", bVal);
|
||||
}
|
||||
}
|
||||
#endif /* !defined(SQLITE_OMIT_FOREIGN_KEY) */
|
||||
|
||||
#ifndef SQLITE_OMIT_FOREIGN_KEY
|
||||
|
@@ -1018,7 +1018,7 @@ struct sqlite3 {
|
||||
#define SQLITE_PreferBuiltin 0x00100000 /* Preference to built-in funcs */
|
||||
#define SQLITE_LoadExtension 0x00200000 /* Enable load_extension */
|
||||
#define SQLITE_EnableTrigger 0x00400000 /* True to enable triggers */
|
||||
#define SQLITE_DeferForeignKeys 0x00800000
|
||||
#define SQLITE_DeferFKs 0x00800000 /* Defer all FK constraints */
|
||||
|
||||
/*
|
||||
** Bits of the sqlite3.dbOptFlags field that are used by the
|
||||
|
@@ -5338,7 +5338,7 @@ case OP_Param: { /* out2-prerelease */
|
||||
** statement counter is incremented (immediate foreign key constraints).
|
||||
*/
|
||||
case OP_FkCounter: {
|
||||
if( db->flags & SQLITE_DeferForeignKeys ){
|
||||
if( db->flags & SQLITE_DeferFKs ){
|
||||
db->nDeferredImmCons += pOp->p2;
|
||||
}else if( pOp->p1 ){
|
||||
db->nDeferredCons += pOp->p2;
|
||||
|
@@ -2221,7 +2221,7 @@ int sqlite3VdbeHalt(Vdbe *p){
|
||||
}else{
|
||||
db->nDeferredCons = 0;
|
||||
db->nDeferredImmCons = 0;
|
||||
db->flags &= ~SQLITE_DeferForeignKeys;
|
||||
db->flags &= ~SQLITE_DeferFKs;
|
||||
sqlite3CommitInternalChanges(db);
|
||||
}
|
||||
}else{
|
||||
|
Reference in New Issue
Block a user