From: drh <> Date: Mon, 15 Jun 2026 17:39:46 +0000 (+0000) Subject: Consistent error messages for excess trigger nesting. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=HEAD;p=thirdparty%2Fsqlite.git Consistent error messages for excess trigger nesting. FossilOrigin-Name: 4fb9f2ffb4b45d81c70f561f45cf29a0d5872a612b948882c4a2a14629bcbe28 --- diff --git a/manifest b/manifest index 46bfc50114..d12756cbcb 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Speed\sup\sSQL\saggregate\sfunctions\spercentile()\sand\smedian()\sby\susing\squickselect\sto\sfind\sthe\srequired\svalues\sinstead\sof\sfully\ssorting\sthe\sarray\sof\svalues\swith\squicksort. -D 2026-06-15T17:27:05.287 +C Consistent\serror\smessages\sfor\sexcess\strigger\snesting. +D 2026-06-15T17:39:46.895 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -804,7 +804,7 @@ F src/upsert.c dd9f0fcccbfb4f20e1026a21a7254ba3f2c08e9cfa92affaff5b5ec3b00ea549 F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165 F src/util.c 98cf12c8ba65623a76c1eb6e6afa98ff40107c9919bf79af42f4bfc70e654232 F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82 -F src/vdbe.c 8ed6f274dff8b9fb961d050a9ab933e7f6509221718bec862e85729d171c1606 +F src/vdbe.c 39658ee12b9d6bf5fc546e1ede20b307d86d9e988ae709c9b461249a8312513d F src/vdbe.h 70e862ac8a11b590f8c1eaac17a0078429d42bc4ea3f757a9af0f451dd966a71 F src/vdbeInt.h c31ba4dc8d280c2b1dc89c6fcee68f2555e3813ab34279552c20b964c0e338b1 F src/vdbeapi.c 6cdcbe5c7afa754c998e73d2d5d2805556268362914b952811bdfb9c78a37cf1 @@ -1074,7 +1074,7 @@ F test/e_delete.test ab39084f26ae1f033c940b70ebdbbd523dc4962e F test/e_droptrigger.test 235c610f8bf8ec44513e222b9085c7e49fad65ad0c1975ac2577109dd06fd8fa F test/e_dropview.test 74e405df7fa0f762e0c9445b166fe03955856532e2bb234c372f7c51228d75e7 F test/e_expr.test 9bdb347b78b9f4eff9153ea97797facc179a821898588471a70808b4471a69b0 -F test/e_fkey.test feeba6238aeff9d809fb6236b351da8df4ae9bda89e088e54526b31a0cbfeec5 +F test/e_fkey.test 2a4ad815372a4b57dad91cd37932e18e68bf545f6c946e9a4cb3e7bde92b8e84 F test/e_fts3.test 17ba7c373aba4d4f5696ba147ee23fd1a1ef70782af050e03e262ca187c5ee07 F test/e_insert.test f02f7f17852b2163732c6611d193f84fc67bc641fb4882c77a464076e5eba80e F test/e_reindex.test 027bb13d2c7e9e865886eed6349f126a273f8037899b636bf5fb53c7fc815921 @@ -1630,7 +1630,7 @@ F test/shared_err.test 32634e404a3317eeb94abc7a099c556a346fdb8fb3858dbe222a4cbb8 F test/sharedlock.test 5ede3c37439067c43b0198f580fd374ebf15d304 F test/shell-prompt.sql 8a320a78812d75349bd5e1a95178f7ff1f2194bb4cceee572865d127c51684b3 F test/shell1.test 2795124bb812d84ae7995fbfda4e518328cd9f31874bc2e5eb2bfe44ac31fa16 -F test/shell2.test dc541d2681503e55466a24d35a4cbf8ca5b90b8fcdef37fc4db07373a67d31d3 +F test/shell2.test e0842ea6a28f86f1ef235e117b3a381d16b999e7bdd9655b1de663026dd8ea27 F test/shell3.test 91efdd545097a61a1f72cf79c9ad5b49da080f3f10282eaf4c3c272cd1012db2 F test/shell4.test e25580a792b7b54560c3a76b6968bd8189261f38979fe28e6bc6312c5db280db F test/shell5.test a0c43d82a811a463a5d07d6418c5a045ab01a072544db8aa31ae394e93845d8d @@ -1906,7 +1906,7 @@ F test/trigger8.test 30cb0530bd7c4728055420e3f739aa00412eafa4 F test/trigger9.test 1724b595661da3dd3c8d79f0ebae818132a39e65c241bad2049f66952b1dc29d F test/triggerA.test 837be862d8721f903dba3f3ceff05b32e0bee5214cf6ea3da5fadf12d3650e9d F test/triggerB.test 56780c031b454abac2340dbb3b71ac5c56c3d7fe -F test/triggerC.test 84866f8bd91d2bcecc7c617a42a7fe01338793d9d080171eeb6f68241db357e2 +F test/triggerC.test 1faacf5249a7abe8bdc44aafe170f2141a72cb2abcef300dc91e3d55c4158f41 F test/triggerD.test 8e7f3921a92a5797d472732108109e44575fa650 F test/triggerE.test 612969cb57a4ef792059ad6d01af0117e1ae862c283753ffcc9a6428642b22ee F test/triggerF.test 5d76f0a8c428ff87a4d5ed52da06f6096a2c787a1e21b846111dfac4123de3ad @@ -2208,9 +2208,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P 1152463a66b47eed27b71e87533e8361b6077dc54ff55b8cd2ccde5cfa8199bd 9b43500f51ae7b43f0e2cc805bb8c93907eddbd8caf21ee5b5a3d2e795962088 -R 47d7442e9499fb070afb88cded90736e -T +closed 9b43500f51ae7b43f0e2cc805bb8c93907eddbd8caf21ee5b5a3d2e795962088 -U dan -Z 8aad25eee80e8de00de5243ef6acbd82 +P 0796d337f6a0ef02a460a24eadda20e33e8fb9ec64b696ae1addee69c1bfddeb +R 8fa73c86489622ce5799f785acd13531 +U drh +Z cc9ff32c4fe583768a909a4387445a80 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index f4a5e63871..7b6385e292 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -0796d337f6a0ef02a460a24eadda20e33e8fb9ec64b696ae1addee69c1bfddeb +4fb9f2ffb4b45d81c70f561f45cf29a0d5872a612b948882c4a2a14629bcbe28 diff --git a/src/vdbe.c b/src/vdbe.c index b25af14a3c..a1592c18ef 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -7560,7 +7560,7 @@ case OP_Program: { /* jump0 */ if( p->nFrame>=db->aLimit[SQLITE_LIMIT_TRIGGER_DEPTH] ){ rc = SQLITE_ERROR; - sqlite3VdbeError(p, "too many levels of trigger recursion"); + sqlite3VdbeError(p, "triggers nested too deep"); goto abort_due_to_error; } diff --git a/test/e_fkey.test b/test/e_fkey.test index 3662a39981..a4ba78e04d 100644 --- a/test/e_fkey.test +++ b/test/e_fkey.test @@ -2982,14 +2982,14 @@ if {[clang_sanitize_address]==0} { } {0 0} do_test e_fkey-63.1.2 { test_on_delete_recursion [expr $SQLITE_MAX_TRIGGER_DEPTH+1] - } {1 {too many levels of trigger recursion}} + } {1 {triggers nested too deep}} do_test e_fkey-63.1.3 { sqlite3_limit db SQLITE_LIMIT_TRIGGER_DEPTH 5 test_on_delete_recursion 5 } {0 0} do_test e_fkey-63.1.4 { test_on_delete_recursion 6 - } {1 {too many levels of trigger recursion}} + } {1 {triggers nested too deep}} do_test e_fkey-63.1.5 { sqlite3_limit db SQLITE_LIMIT_TRIGGER_DEPTH 1000000 } {5} @@ -2998,14 +2998,14 @@ if {[clang_sanitize_address]==0} { } {0 0} do_test e_fkey-63.2.2 { test_on_update_recursion [expr $SQLITE_MAX_TRIGGER_DEPTH+1] - } {1 {too many levels of trigger recursion}} + } {1 {triggers nested too deep}} do_test e_fkey-63.2.3 { sqlite3_limit db SQLITE_LIMIT_TRIGGER_DEPTH 5 test_on_update_recursion 5 } {0 0} do_test e_fkey-63.2.4 { test_on_update_recursion 6 - } {1 {too many levels of trigger recursion}} + } {1 {triggers nested too deep}} do_test e_fkey-63.2.5 { sqlite3_limit db SQLITE_LIMIT_TRIGGER_DEPTH 1000000 } {5} diff --git a/test/shell2.test b/test/shell2.test index 7141c4d497..0811f03ddd 100644 --- a/test/shell2.test +++ b/test/shell2.test @@ -51,7 +51,7 @@ do_test shell2-1.2.1 { # Test a problem reported on the mailing list. The shell was at one point # returning the generic SQLITE_ERROR message ("SQL error or missing database") -# instead of the "too many levels..." message in the test below. +# instead of the "triggers nested too deep" message in the test below. # do_test shell2-1.3 { catchcmd "-batch test.db" { @@ -64,7 +64,7 @@ do_test shell2-1.3 { UPDATE OR REPLACE t5 SET a = 4 WHERE a = 1; } -} {1 {Error near line 9: too many levels of trigger recursion}} +} {1 {Error near line 9: triggers nested too deep}} diff --git a/test/triggerC.test b/test/triggerC.test index 56c1e46c3d..85dff7cd43 100644 --- a/test/triggerC.test +++ b/test/triggerC.test @@ -132,7 +132,7 @@ do_test triggerC-1.11 { } {} do_test triggerC-1.12 { catchsql { UPDATE OR REPLACE t5 SET a = 4 WHERE a = 1 } -} {1 {too many levels of trigger recursion}} +} {1 {triggers nested too deep}} do_test triggerC-1.13 { execsql { CREATE TABLE t6(a INTEGER PRIMARY KEY, b); @@ -203,7 +203,7 @@ foreach {n tdefn rc} { CREATE TRIGGER t2_trig BEFORE INSERT ON t2 BEGIN INSERT INTO t2 VALUES(new.a - 1); END; - } {1 {too many levels of trigger recursion}} + } {1 {triggers nested too deep}} 6 { CREATE TRIGGER t2_trig AFTER INSERT ON t2 WHEN (new.a>0) BEGIN @@ -215,7 +215,7 @@ foreach {n tdefn rc} { CREATE TRIGGER t2_trig BEFORE INSERT ON t2 WHEN (new.a>0) BEGIN INSERT OR IGNORE INTO t2 VALUES(new.a); END; - } {1 {too many levels of trigger recursion}} + } {1 {triggers nested too deep}} } { do_test triggerC-2.1.$n { catchsql { DROP TRIGGER t2_trig } @@ -283,7 +283,7 @@ do_test triggerC-3.1.1 { } {} do_test triggerC-3.1.2 { catchsql { INSERT INTO t3 VALUES(0,0) } -} {1 {too many levels of trigger recursion}} +} {1 {triggers nested too deep}} do_test triggerC-3.1.3 { execsql { SELECT * FROM t3 } } {} @@ -298,7 +298,7 @@ do_test triggerC-3.2.1 { catchsql { INSERT INTO t3b VALUES(1); } -} {1 {too many levels of trigger recursion}} +} {1 {triggers nested too deep}} do_test triggerC-3.2.2 { db eval {SELECT * FROM t3b} } {} @@ -317,7 +317,7 @@ do_test triggerC-3.4.1 { DELETE FROM t3b; INSERT INTO t3b VALUES([expr $SQLITE_MAX_TRIGGER_DEPTH - 1]); " -} {1 {too many levels of trigger recursion}} +} {1 {triggers nested too deep}} do_test triggerC-3.4.2 { db eval {SELECT count(*), max(x), min(x) FROM t3b} } {0 {} {}} @@ -337,7 +337,7 @@ do_test triggerC-3.5.3 { DELETE FROM t3b; INSERT INTO t3b VALUES([expr ($SQLITE_MAX_TRIGGER_DEPTH * 2) - ($SQLITE_MAX_TRIGGER_DEPTH / 10)]); " -} {1 {too many levels of trigger recursion}} +} {1 {triggers nested too deep}} do_test triggerC-3.5.4 { db eval {SELECT count(*), max(x), min(x) FROM t3b} } {0 {} {}} @@ -357,7 +357,7 @@ do_test triggerC-3.6.3 { DELETE FROM t3b; INSERT INTO t3b VALUES([expr ($SQLITE_MAX_TRIGGER_DEPTH * 2) - 1]); " -} {1 {too many levels of trigger recursion}} +} {1 {triggers nested too deep}} do_test triggerC-3.6.4 { db eval {SELECT count(*), max(x), min(x) FROM t3b} } {0 {} {}} @@ -948,7 +948,7 @@ do_execsql_test triggerC-13.1 { } {} do_catchsql_test triggerC-13.2 { UPDATE t12 SET a=a+1, b=b+1; -} {1 {too many levels of trigger recursion}} +} {1 {triggers nested too deep}} #------------------------------------------------------------------------- # The following tests seek to verify that constant values (i.e. literals)