]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Rename the SQLITE_DeferForeignKeys macro to shorter SQLITE_DeferFKs. Move
authordrh <drh@noemail.net>
Thu, 11 Jul 2013 12:19:12 +0000 (12:19 +0000)
committerdrh <drh@noemail.net>
Thu, 11 Jul 2013 12:19:12 +0000 (12:19 +0000)
the "defer_foreign_keys" pragma into the flagPragma() routine.

FossilOrigin-Name: 3a2ab74c85a40e0e7ef2d6aef6ec23837cb788e6

manifest
manifest.uuid
src/fkey.c
src/main.c
src/pragma.c
src/sqliteInt.h
src/vdbe.c
src/vdbeaux.c

index 66bca82b2dd92bf2ebe73d88b6125ef1b98af7ee..8d6c35f1b7063612add21cd2e7387bf631736cbe 100644 (file)
--- a/manifest
+++ b/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
index d864f435a3378920dfa1f1fe53563dc4f255e144..ae79df7faa6cb5481beddc13654a7ae587ee00b2 100644 (file)
@@ -1 +1 @@
-af3ca4c6e557e6bc92584586b5a97d9be41b0b82
\ No newline at end of file
+3a2ab74c85a40e0e7ef2d6aef6ec23837cb788e6
\ No newline at end of file
index 3f3c5d8ad6cbb1be993fa4543463535e3603cc4f..bb59c656f6be009f314bafd7663abe1f050ce0a2 100644 (file)
@@ -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 );
index ad9422b4866777b7b3e4a216fd9b323ab6d3e1ac..b25c43be3d60f3a901e4edd430a678c0cbb8a7e2 100644 (file)
@@ -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) ){
index 9a288b977c407ff59a3debaa739a87df41fde3f4..fd0ebc727c2e6e087001b2aca89578d7a5a58eb1 100644 (file)
@@ -197,12 +197,13 @@ static int flagPragma(Parse *pParse, const char *zLeft, const char *zRight){
     /* TODO: Maybe it shouldn't be possible to change the ReadUncommitted
     ** flag if there are any active statements. */
     { "read_uncommitted",         SQLITE_ReadUncommitted },
-    { "recursive_triggers",       SQLITE_RecTriggers },
+    { "recursive_triggers",       SQLITE_RecTriggers   },
 
     /* This flag may only be set if both foreign-key and trigger support
     ** are present in the build.  */
 #if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
-    { "foreign_keys",             SQLITE_ForeignKeys },
+    { "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
index 228d34fc59680747471ae700ce5106800ebbe20b..f989c3a30b60fa03001db6472465e62a3c2aad92 100644 (file)
@@ -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
index e5a40b7993df9280219d4345f55bdb73149d1e8a..b957212e343e18bbdcb91355e66f4e27fbff3b57 100644 (file)
@@ -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;
index 5ba51dce609d2c059f30fcf37a20b1d330f6144f..654230dfa9edc046d78666927c5635ce8e8fcc0d 100644 (file)
@@ -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{