From: dan Date: Tue, 1 Sep 2009 17:11:07 +0000 (+0000) Subject: Change "PRAGMA disable_recursive_triggers" to "PRAGMA recursive_triggers". Also a... X-Git-Tag: fts3-refactor~217 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5bde73c4eb8f4d3e90762e1aa6ab4696d40ec164;p=thirdparty%2Fsqlite.git Change "PRAGMA disable_recursive_triggers" to "PRAGMA recursive_triggers". Also a fix for compiling with OMIT_TRIGGER defined. FossilOrigin-Name: e016cca36390451d5d1c6e0d1b3cdbd6d869be1a --- diff --git a/manifest b/manifest index 7ce48f9330..1a17e9ddbf 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Merge\sin\schanges\sto\ssupport\srecursive\sinvocation\sof\striggers\s(disabled\sby\sdefault). -D 2009-09-01T16:39:06 +C Change\s"PRAGMA\sdisable_recursive_triggers"\sto\s"PRAGMA\srecursive_triggers".\sAlso\sa\sfix\sfor\scompiling\swith\sOMIT_TRIGGER\sdefined. +D 2009-09-01T17:11:07 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 73ddeec9dd10b85876c5c2ce1fdce627e1dcc7f8 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -126,7 +126,7 @@ F src/journal.c e00df0c0da8413ab6e1bb7d7cab5665d4a9000d0 F src/legacy.c 303b4ffcf1ae652fcf5ef635846c563c254564f6 F src/lempar.c 0c4d1ab0a5ef2b0381eb81a732c54f68f27a574d F src/loadext.c 0e88a335665db0b2fb4cece3e49dcb65d832635a -F src/main.c 09506443147ada14d98973a917667f4b2275aac7 +F src/main.c 2fe38f26388a3e1afbe0782f3e0c1e2d38291a36 F src/malloc.c b1725183bcc4ce2e569f1b65da844dc3e4c7a643 F src/mem0.c f2f84062d1f35814d6535c9f9e33de3bfb3b132c F src/mem1.c e6d5c23941288df8191b8a98c28e3f57771e2270 @@ -153,7 +153,7 @@ F src/parse.y 6c42631e72a3d14cde2bee85e79409066066d3df F src/pcache.c c92ffd4f3e1279b3766854c6d18b5bf4aac0d1fa F src/pcache.h 435ef324197f79391f9c92b71d7f92b548ad7a36 F src/pcache1.c 211295a9ff6a5b30f1ca50516731a5cf3e9bf82c -F src/pragma.c 6b1fa9f180d88b3f905cebd593ef6aef9334be43 +F src/pragma.c 0a3b3141935dbea48575af8131d0fd2c1efe9b06 F src/prepare.c 9803fc01f0db29ac4a17fa662902af285f37c06b F src/printf.c 508a1c59433353552b6553cba175eaa7331f8fc1 F src/random.c 676b9d7ac820fe81e6fb2394ac8c10cff7f38628 @@ -163,7 +163,7 @@ F src/select.c 8bc7347fe88cf16ac2cb1a37fb918d1417ab4142 F src/shell.c db2643650b9268df89a4bedca3f1c6d9e786f1bb F src/sqlite.h.in 9d03ceaad971882482c158c0e3d39d361c2c18a1 F src/sqlite3ext.h 1db7d63ab5de4b3e6b83dd03d1a4e64fef6d2a17 -F src/sqliteInt.h f25f4fcefe6f0c3b5fcbddc0e4dee759adde0f37 +F src/sqliteInt.h 12f2e4a8aa97c5ae9a83b8189d1280c84922cbfd F src/sqliteLimit.h ffe93f5a0c4e7bd13e70cd7bf84cfb5c3465f45d F src/status.c 237b193efae0cf6ac3f0817a208de6c6c6ef6d76 F src/table.c cc86ad3d6ad54df7c63a3e807b5783c90411a08d @@ -205,7 +205,7 @@ F src/update.c 12ffd68c2f241c730d5e051eb29b23e90682ff8a F src/utf.c 3ca2c9461b8e942c68da28bfccd448663f536a6f F src/util.c efb5f8e533d4beef545cf765cab5f7920b4c75f9 F src/vacuum.c 3fe0eebea6d2311c1c2ab2962887d11f7a4dcfb0 -F src/vdbe.c fcc15fb2cfb84e261a423e6f71e0b963b8739280 +F src/vdbe.c addf5f6fefe9b9c6ca8819efbf52cfce8bd68089 F src/vdbe.h 080fe6bc1264438becb8bf9b9f3c84074c336b78 F src/vdbeInt.h 6094e60f64d7a9d4352d4e6b90d1219dce947ad9 F src/vdbeapi.c 8d5013ab6104be757c208a70ffb191cc27d2b688 @@ -232,12 +232,12 @@ F test/async4.test aafa6328c559d3e4bb587de770cbdecfca06f0da F test/async5.test f3592d79c84d6e83a5f50d3fd500445f7d97dfdf F test/attach.test 1d1be27b9e4c654f9bb14d011a4a87753c0b197a F test/attach2.test a295d2d7061adcee5884ef4a93c7c96a82765437 -F test/attach3.test ab28cc309888e2ac25795b52b2eee2214920b360 +F test/attach3.test bd9830bc3a0d22ed1310c9bff6896927937017dc F test/attachmalloc.test cf8cf17d183de357b1147a9baacbdfc85b940b61 F test/auth.test 0f1237e10ab94108a0a4b3d463ddae3bddf31ed5 F test/auth2.test ee3ba272e2b975e913afc9b041ee75706e190005 F test/auth3.test a4755e6a2a2fea547ffe63c874eb569e60a28eb5 -F test/autoinc.test 8242b84e5af8af6e00db4b5c5d48afdf304a12cb +F test/autoinc.test a5affdde12ed6c0430ac0bef02474cc21349ba9b F test/autovacuum.test 25f891bc343a8bf5d9229e2e9ddab9f31a9ab5ec F test/autovacuum_ioerr2.test 598b0663074d3673a9c1bc9a16e80971313bafe6 F test/avtrans.test 1e901d8102706b63534dbd2bdd4d8f16c4082650 @@ -481,7 +481,7 @@ F test/minmax.test 722d80816f7e096bf2c04f4111f1a6c1ba65453d F test/minmax2.test 33504c01a03bd99226144e4b03f7631a274d66e0 F test/minmax3.test 94742aa922153953ce3562702815e4f1f079bdb8 F test/misc1.test 1b89c02c4a33b49dee4cd1d20d161aaaba719075 -F test/misc2.test 0bd5a44926124b9194b03499b37b8377f6d0b23b +F test/misc2.test a628db7b03e18973e5d446c67696b03de718c9fd F test/misc3.test 72c5dc87a78e7865c5ec7a969fc572913dbe96b6 F test/misc4.test 91e8ed25c092c2bb4e0bb01864631e2930f8d7de F test/misc5.test 6a5c1e3217a95b0db05ff9a0f1ecb5ce9043ffef @@ -643,7 +643,7 @@ F test/tkt3581.test 1966b7193f1e3f14951cce8c66907ae69454e9a3 F test/tkt35xx.test ed9721bd9eb1693b3b4d3cf2a093fa7f92af0c93 F test/tkt3630.test 929f64852103054125200bc825c316d5f75d42f7 F test/tkt3718.test 3b59dcb5c4e7754dacd91e7fd353a61492cc402a -F test/tkt3731.test d3ae761d8e31ddb2919e55776000e645e6b5b9f1 +F test/tkt3731.test 0c5f4cbffe102d43c3b2188af91a9e36348f974b F test/tkt3757.test 8f2208930655bbd4f92c14e19e72303a43e098ef F test/tkt3761.test b95ea9c98f21cf91325f18a984887e62caceab33 F test/tkt3762.test 2a9f3b03df44ec49ec0cfa8d5da6574c2a7853df @@ -671,8 +671,8 @@ F test/trans.test d887cb07630dc39879a322d958ad8b006137485c F test/trans2.test d5337e61de45e66b1fcbf9db833fa8c82e624b22 F test/trans3.test d728abaa318ca364dc370e06576aa7e5fbed7e97 F test/trigger1.test 2e18561f85e448bb633c9c9de792e9bbf7b2dd3e -F test/trigger2.test 10b5fa93a8646b4a446ad10e9e36af896b83c408 -F test/trigger3.test 841602f2659b17bc4a2fcbbf7fcbea4577750aad +F test/trigger2.test 834187beafd1db383af0c659cfa49b0576832816 +F test/trigger3.test 99a5631f633b86a18ff4784ebd28acfbf90cf96a F test/trigger4.test 8e90ee98cba940cd5f96493f82e55083806ab8a0 F test/trigger5.test 619391a3e9fc194081d22cefd830d811e7badf83 F test/trigger6.test 0e411654f122552da6590f0b4e6f781048a4a9b9 @@ -681,7 +681,7 @@ F test/trigger8.test 30cb0530bd7c4728055420e3f739aa00412eafa4 F test/trigger9.test 5b0789f1c5c4600961f8e68511b825b87be53e31 F test/triggerA.test 0718ad2d9bfef27c7af00e636df79bee6b988da7 F test/triggerB.test 56780c031b454abac2340dbb3b71ac5c56c3d7fe -F test/triggerC.test 3806d257b32e95ada0b230161ce9d36e4a7f335a +F test/triggerC.test 6ee1611c7ebd8ac892e67bd0e6e2ef7d9229dbc8 F test/types.test 9a825ec8eea4e965d7113b74c76a78bb5240f2ac F test/types2.test 3555aacf8ed8dc883356e59efc314707e6247a84 F test/types3.test a0f66bf12f80fad89493535474f7a6d16fa58150 @@ -749,7 +749,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 5e2f5496834bffb79236f803cdfedb18fbd533b7 a2a062a4b52f45af85c195582a36d1b76d2675db -R bdae7ca38a0ff6f2a23becb7bc516ab2 +P c1b388c30de1b660c56afbcac9c69700500808a9 +R 0973e102e19cefab8cd42cc8b4b5c5f1 U dan -Z f119bed83386ec346d66a132d507d343 +Z 70980fc870c9b0f72bb9f21c6d273a5a diff --git a/manifest.uuid b/manifest.uuid index 96ef8c3656..e198b54623 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -c1b388c30de1b660c56afbcac9c69700500808a9 \ No newline at end of file +e016cca36390451d5d1c6e0d1b3cdbd6d869be1a \ No newline at end of file diff --git a/src/main.c b/src/main.c index 38d4117f1c..595dc932ea 100644 --- a/src/main.c +++ b/src/main.c @@ -1591,7 +1591,7 @@ static int openDatabase( #ifdef SQLITE_ENABLE_LOAD_EXTENSION | SQLITE_LoadExtension #endif -#if 1 || defined(SQLITE_DISABLE_RECURSIVE_TRIGGERS) +#if SQLITE_DEFAULT_RECURSIVE_TRIGGERS | SQLITE_NoRecTriggers #endif ; diff --git a/src/pragma.c b/src/pragma.c index 64f4332061..60f214a0c3 100644 --- a/src/pragma.c +++ b/src/pragma.c @@ -190,7 +190,7 @@ 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 }, - { "disable_recursive_triggers", SQLITE_NoRecTriggers }, + { "recursive_triggers", SQLITE_RecTriggers }, }; int i; const struct sPragmaType *p; diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 9efb02397a..a8a1da6782 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -353,6 +353,10 @@ # define SQLITE_DEFAULT_FILE_FORMAT 1 #endif +#ifndef SQLITE_DEFAULT_RECURSIVE_TRIGGERS +# define SQLITE_DEFAULT_RECURSIVE_TRIGGERS 0 +#endif + /* ** Provide a default value for SQLITE_TEMP_STORE in case it is not specified ** on the command-line @@ -911,7 +915,7 @@ struct sqlite3 { #define SQLITE_RecoveryMode 0x00040000 /* Ignore schema errors */ #define SQLITE_ReverseOrder 0x00100000 /* Reverse unordered SELECTs */ -#define SQLITE_NoRecTriggers 0x00200000 /* Disable recursive triggers */ +#define SQLITE_RecTriggers 0x00200000 /* Enable recursive triggers */ /* ** Possible values for the sqlite.magic field. @@ -2704,6 +2708,7 @@ void sqlite3MaterializeView(Parse*, Table*, Expr*, int); # define sqlite3CodeRowTrigger(A,B,C,D,E,F,G,H,I,J) # define sqlite3TriggerList(X, Y) 0 # define sqlite3ParseToplevel(p) p +# define sqlite3TriggerOldmask(A,B,C,D,E,F) 0 #endif int sqlite3JoinType(Parse*, Token*, Token*, Token*); diff --git a/src/vdbe.c b/src/vdbe.c index 600b88ad81..e6b325abc1 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -4796,7 +4796,7 @@ case OP_Program: { /* jump */ ** single trigger all have the same value for the SubProgram.token ** variable. */ - if( db->flags&SQLITE_NoRecTriggers ){ + if( 0==(db->flags&SQLITE_RecTriggers) ){ t = pProgram->token; for(pFrame=p->pFrame; pFrame && pFrame->token!=t; pFrame=pFrame->pParent); if( pFrame ) break; diff --git a/test/attach3.test b/test/attach3.test index 2a37d74c91..36d39991bd 100644 --- a/test/attach3.test +++ b/test/attach3.test @@ -26,7 +26,7 @@ ifcapable !attach { # The tests in this file were written before SQLite supported recursive # trigger invocation, and some tests depend on that to pass. So disable # recursive triggers for this file. -catchsql { pragma disable_recursive_triggers = 1 } +catchsql { pragma recursive_triggers = off } # Create tables t1 and t2 in the main database execsql { diff --git a/test/autoinc.test b/test/autoinc.test index 1f00ad8281..4c8cf531eb 100644 --- a/test/autoinc.test +++ b/test/autoinc.test @@ -558,7 +558,7 @@ do_test autoinc-9.1 { } } {t3 0} -catchsql { pragma disable_recursive_triggers = 1 } +catchsql { pragma recursive_triggers = off } # Ticket #3928. Make sure that triggers to not make extra slots in # the SQLITE_SEQUENCE table. diff --git a/test/misc2.test b/test/misc2.test index b38c381f74..f6fc3833f9 100644 --- a/test/misc2.test +++ b/test/misc2.test @@ -21,7 +21,7 @@ source $testdir/tester.tcl # The tests in this file were written before SQLite supported recursive # trigger invocation, and some tests depend on that to pass. So disable # recursive triggers for this file. -catchsql { pragma disable_recursive_triggers = 1 } +catchsql { pragma recursive_triggers = off } ifcapable {trigger} { # Test for ticket #360 @@ -363,7 +363,7 @@ ifcapable tclvar { db close file delete -force test.db sqlite3 db test.db -catchsql { pragma disable_recursive_triggers = 1 } +catchsql { pragma recursive_triggers = off } # Ticket #453. If the SQL ended with "-", the tokenizer was calling that # an incomplete token, which caused problem. The solution was to just call diff --git a/test/tkt3731.test b/test/tkt3731.test index b19bfa18d2..11e5efd707 100644 --- a/test/tkt3731.test +++ b/test/tkt3731.test @@ -21,7 +21,7 @@ ifcapable {!trigger} { # The tests in this file were written before SQLite supported recursive # trigger invocation, and some tests depend on that to pass. So disable # recursive triggers for this file. -catchsql { pragma disable_recursive_triggers = 1 } +catchsql { pragma recursive_triggers = off } do_test tkt3731-1.1 { execsql { diff --git a/test/trigger2.test b/test/trigger2.test index 5d9f3fcf98..b4b922a5ee 100644 --- a/test/trigger2.test +++ b/test/trigger2.test @@ -57,7 +57,7 @@ ifcapable {!trigger} { # The tests in this file were written before SQLite supported recursive # trigger invocation, and some tests depend on that to pass. So disable # recursive triggers for this file. -catchsql { pragma disable_recursive_triggers = 1 } +catchsql { pragma recursive_triggers = off } # 1. ifcapable subquery { diff --git a/test/trigger3.test b/test/trigger3.test index 75709aa5c9..2e2780ec05 100644 --- a/test/trigger3.test +++ b/test/trigger3.test @@ -21,7 +21,7 @@ ifcapable {!trigger} { # The tests in this file were written before SQLite supported recursive } # trigger invocation, and some tests depend on that to pass. So disable # recursive triggers for this file. -catchsql { pragma disable_recursive_triggers = 1 } +catchsql { pragma recursive_triggers = off } # Test that we can cause ROLLBACK, FAIL and ABORT correctly # diff --git a/test/triggerC.test b/test/triggerC.test index fc4c950864..1aa85bc533 100644 --- a/test/triggerC.test +++ b/test/triggerC.test @@ -19,7 +19,7 @@ ifcapable {!trigger} { # Enable recursive triggers for this file. # -execsql { PRAGMA disable_recursive_triggers = 0 } +execsql { PRAGMA recursive_triggers = on } #sqlite3_db_config_lookaside db 0 0 0