From: drh Date: Sat, 25 Mar 2006 15:52:19 +0000 (+0000) Subject: Add code to report an error on a recursive trigger, but leave it X-Git-Tag: version-3.6.10~3015 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=229caa369ac93dd227b775477df493e55d8a4344;p=thirdparty%2Fsqlite.git Add code to report an error on a recursive trigger, but leave it commented out - turning it on will likely break a lot of code. (CVS 3152) FossilOrigin-Name: c83ec81d53f756660cafbbdaf9cf92e9e4bab4ad --- diff --git a/manifest b/manifest index 289b01a3e3..5fd33bab3a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\sa\snote\sto\sthe\sAPI\sdocumentation\semphasizing\sthat\sthe\sfilename\sargument\nto\ssqlite3_open()\smust\sbe\sUTF-8.\s\sTickets\s#1713,\s#1533.\s(CVS\s3151) -D 2006-03-25T14:03:42 +C Add\scode\sto\sreport\san\serror\son\sa\srecursive\strigger,\sbut\sleave\sit\ncommented\sout\s-\sturning\sit\son\swill\slikely\sbreak\sa\slot\sof\scode.\s(CVS\s3152) +D 2006-03-25T15:52:20 F Makefile.in 5d8dff443383918b700e495de42ec65bc1c8865b F Makefile.linux-gcc 74ba0eadf88748a9ce3fd03d2a3ede2e6715baec F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -84,7 +84,7 @@ F src/test_async.c e3deaedd4d86a56391b81808fde9e44fbd92f1d3 F src/test_md5.c 6c42bc0a3c0b54be34623ff77a0eec32b2fa96e3 F src/test_server.c a6460daed0b92ecbc2531b6dc73717470e7a648c F src/tokenize.c 382b3bb0ca26eb9153b5d20b246ef512a114a24f -F src/trigger.c 6e63d6d8104a395d6a472d2678a62f1cf6140a6d +F src/trigger.c 825e5b98183a0ad066d0e1dfa6708c2aac089723 F src/update.c 34add66fcd3301b33b6e4c4c813f4e408f7ee4a0 F src/utf.c 1d51225bce1ea8d1978e8ab28e862a0c12c7a8e8 F src/util.c 59389ed717f0fa9d8023b3f482ba09dcf41343a8 @@ -355,7 +355,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513 -P 1c582dd11304f4421da2fa451f52b313b541270e -R 95b27b76724fa6c680d52e13fce463da +P b0111f43e4f82f0c3144d1e6348d9e5fae504d95 +R 07f26df1ae14843844bd0e7a7c105a61 U drh -Z 7381e17e9519044ef5ca44deeaa6dc0e +Z 8dfcbbac72e2253b5a292c2031f2b098 diff --git a/manifest.uuid b/manifest.uuid index 6dc2efc885..9dda60666d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b0111f43e4f82f0c3144d1e6348d9e5fae504d95 \ No newline at end of file +c83ec81d53f756660cafbbdaf9cf92e9e4bab4ad \ No newline at end of file diff --git a/src/trigger.c b/src/trigger.c index 91b6defe79..72f7a72042 100644 --- a/src/trigger.c +++ b/src/trigger.c @@ -598,14 +598,7 @@ int sqlite3TriggersExist( while( pTrigger ){ if( pTrigger->op==op && checkColumnOverLap(pTrigger->pColumns, pChanges) ){ - TriggerStack *ss; - ss = pParse->trigStack; - while( ss && ss->pTrigger!=pTab->pTrigger ){ - ss = ss->pNext; - } - if( ss==0 ){ - mask |= pTrigger->tr_tm; - } + mask |= pTrigger->tr_tm; } pTrigger = pTrigger->pNext; } @@ -766,6 +759,13 @@ int sqlite3CodeRowTrigger( if( !pS ){ fire_this = 1; } +#if 0 /* Give no warning for recursive triggers. Just do not do them */ + else{ + sqlite3ErrorMsg(pParse, "recursive triggers not supported (%s)", + p->name); + return SQLITE_ERROR; + } +#endif } if( fire_this ){