]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Consistent error messages for excess trigger nesting.
authordrh <>
Mon, 15 Jun 2026 17:39:46 +0000 (17:39 +0000)
committerdrh <>
Mon, 15 Jun 2026 17:39:46 +0000 (17:39 +0000)
FossilOrigin-Name: 4fb9f2ffb4b45d81c70f561f45cf29a0d5872a612b948882c4a2a14629bcbe28

manifest
manifest.uuid
src/vdbe.c
test/e_fkey.test
test/shell2.test
test/triggerC.test

index 46bfc50114fcd590847da3373e907958e8126060..d12756cbcb3715f8532b1652d0f2f79fd1d83707 100644 (file)
--- 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.
index f4a5e63871ea05d2be6d8be026e2fca258500e74..7b6385e29270bd218e806c009e4c5c18e00fe74e 100644 (file)
@@ -1 +1 @@
-0796d337f6a0ef02a460a24eadda20e33e8fb9ec64b696ae1addee69c1bfddeb
+4fb9f2ffb4b45d81c70f561f45cf29a0d5872a612b948882c4a2a14629bcbe28
index b25af14a3c58d9cf993256539b6389bba85579c2..a1592c18ef0116efa13ee01b4850e266f780ad8a 100644 (file)
@@ -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;
   }
 
index 3662a39981844d96250a3f2360e0c0e8d80efab7..a4ba78e04df5610fb8671b28b3e729d32d57b8aa 100644 (file)
@@ -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}
index 7141c4d497313292f3d0253ba485044a6335a86e..0811f03dddbbfb94727fe482c1a0e0cd82270c17 100644 (file)
@@ -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}}
 
 
 
index 56c1e46c3dac8580aef02a9a49e216041bc31337..85dff7cd43d3828079deba7cc42b6c5bf97ed03a 100644 (file)
@@ -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)