]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add test cases from
authordrh <>
Sat, 18 Jul 2026 08:46:36 +0000 (08:46 +0000)
committerdrh <>
Sat, 18 Jul 2026 08:46:36 +0000 (08:46 +0000)
[forum:/info/2026-07-18T03:35:48Z|Forum Post 2026-07-18T03:35:48Z].
New test cases are currently failing, as new or alternative fixes
are needed for the original problem.

FossilOrigin-Name: 49b67b7da6bceae3ee87153480e676f53a472b0f6e0ed8d1866ed819e8f64fa1

manifest
manifest.uuid
test/upsert1.test

index 01be45cffb2cc5c07f26eef52c7d34e9de0f83c3..ba37008ce104a37ed7b0a466037ca2bd61615e62 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Additional\stest\scases
-D 2026-07-17T23:25:28.543
+C Add\stest\scases\sfrom\n[forum:/info/2026-07-18T03:35:48Z|Forum\sPost\s2026-07-18T03:35:48Z].\nNew\stest\scases\sare\scurrently\sfailing,\sas\snew\sor\salternative\sfixes\nare\sneeded\sfor\sthe\soriginal\sproblem.
+D 2026-07-18T08:46:36.172
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -1947,7 +1947,7 @@ F test/upfrom2.test 66f3ebf721b3cebd922faee5c386bf244f816d416b57c000753ff51af623
 F test/upfrom3.test 6130f24ebf97f5ea865e5d2a14a2d543fe5428a62e87cc60f62d875e45c1f5f0
 F test/upfrom4.test 78f742a6577c91a7a55c64edb8811004e7c6aa99b8d57b2320f70a918c357807
 F test/upfromfault.test 3a10075a0043f0c4fad6614b2c371f88a8ba5a4acab68b907438413865d6a8d6
-F test/upsert1.test d8f2c15752f906fac51eb1b55902a15c9c68046da156ee3b37ec9117c2e4d776
+F test/upsert1.test 4ce8abe35a5d8370fd069338c993bcca61ce5b7de5f8a80fe6a990ab805b8018
 F test/upsert2.test 720e94d09f7362a282bc69b3c6b83d51daeaaf0440eb4920a08b86518b8c7496
 F test/upsert3.test 88d7d590a1948a9cb6eac1b54b0642f67a9f35a1fc0f19b200e97d5d39e3179c
 F test/upsert4.test 25d2a1da92f149331ae0c51ca6e3eee78189577585eab92de149900d62994fa5
@@ -2215,8 +2215,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 1875249ab30fb110bc09963b592c8f48d2fb57066d770ad7e1da7e8bc8602977
-R 687540f056163295440455e10a8f2d83
+P da16fe363e2b0f8e735405a03fd0cae0796333c37d41cb323863d3803ebfdc45
+R a60971113a47d3e3d0eac3731dd75625
 U drh
-Z 550171b5c0d55c96caac349090f33e1d
+Z d42e81dbfc96d3389e59de448f813cc7
 # Remove this line to create a well-formed Fossil manifest.
index 31275cfd8d057d9ce9f669c60a2df5411b282904..ad367302cda56d9f111313e18476c8a5c3df0565 100644 (file)
@@ -1 +1 @@
-da16fe363e2b0f8e735405a03fd0cae0796333c37d41cb323863d3803ebfdc45
+49b67b7da6bceae3ee87153480e676f53a472b0f6e0ed8d1866ed819e8f64fa1
index 1cf7a4baec382c80a86cc9c13d5de7226b8b912a..a464f7449de97248cee99eb9ce4ba507856c2dea 100644 (file)
@@ -299,82 +299,105 @@ do_execsql_test upsert1-1300 {
 #
 reset_db
 do_execsql_test upsert1-1400 {
-  CREATE TABLE t(
+  CREATE TABLE t0(
     a INTEGER PRIMARY KEY ON CONFLICT REPLACE,
     b INT UNIQUE ON CONFLICT FAIL,
     c INT UNIQUE
   );
-  INSERT INTO t VALUES (1, 10, 100),(2, 20, 200);
+  INSERT INTO t0 VALUES (1, 10, 100),(2, 20, 200);
 }
-do_catchsql_test upsert1-1410 {
-  INSERT INTO t VALUES (1, 20, 300) ON CONFLICT(c) DO NOTHING;
-} {1 {UNIQUE constraint failed: t.b}}
-do_execsql_test upsert1-1420 {
+do_catchsql_test upsert1-1401 {
+  INSERT INTO t0 VALUES (1, 20, 300) ON CONFLICT(c) DO NOTHING;
+} {1 {UNIQUE constraint failed: t0.b}}
+do_execsql_test upsert1-1402 {
   PRAGMA integrity_check;
 } {ok}
-do_execsql_test upsert1-1430 {
-  SELECT * FROM t ORDER BY a;
+do_execsql_test upsert1-1403 {
+  SELECT * FROM t0 ORDER BY a;
 } {1 10 100 2 20 200}
-
-do_execsql_test upsert1-1440 {
-  DROP TABLE t;
-  CREATE TABLE t(
+do_execsql_test upsert1-1404 {
+  DROP TABLE t0;
+  CREATE TABLE t0(
     a INTEGER PRIMARY KEY ON CONFLICT REPLACE,
     b INT UNIQUE ON CONFLICT IGNORE,
     c INT UNIQUE
   );
-  INSERT INTO t VALUES (1, 10, 100),(2, 20, 200);
+  INSERT INTO t0 VALUES (1, 10, 100),(2, 20, 200);
 }
-do_catchsql_test upsert1-1450 {
-  INSERT INTO t VALUES (1, 20, 300) ON CONFLICT(c) DO NOTHING;
+do_catchsql_test upsert1-1405 {
+  INSERT INTO t0 VALUES (1, 20, 300) ON CONFLICT(c) DO NOTHING;
 } {0 {}}
-do_execsql_test upsert1-1420 {
+do_execsql_test upsert1-1406 {
   PRAGMA integrity_check;
 } {ok}
-do_execsql_test upsert1-1460 {
-  SELECT * FROM t ORDER BY a;
+do_execsql_test upsert1-1407 {
+  SELECT * FROM t0 ORDER BY a;
 } {1 10 100 2 20 200}
-
-do_execsql_test upsert1-1470 {
-  DROP TABLE t;
-  CREATE TABLE t(
+do_execsql_test upsert1-1408 {
+  DROP TABLE t0;
+  CREATE TABLE t0(
     a INTEGER PRIMARY KEY ON CONFLICT REPLACE,
     b INT UNIQUE ON CONFLICT FAIL,
     c INT UNIQUE
   );
-  INSERT INTO t VALUES (1, 10, 100),(2, 20, 200);
+  INSERT INTO t0 VALUES (1, 10, 100),(2, 20, 200);
 }
-do_catchsql_test upsert1-1480 {
-  INSERT INTO t VALUES (1, 20, 300) ON CONFLICT(c) DO NOTHING;
-} {1 {UNIQUE constraint failed: t.b}}
+do_catchsql_test upsert1-1409 {
+  INSERT INTO t0 VALUES (1, 20, 300) ON CONFLICT(c) DO NOTHING;
+} {1 {UNIQUE constraint failed: t0.b}}
 do_execsql_test upsert1-1490 {
   PRAGMA integrity_check;
 } {ok}
-do_execsql_test upsert1-1500 {
-  SELECT * FROM t ORDER BY a;
+do_execsql_test upsert1-1410 {
+  SELECT * FROM t0 ORDER BY a;
 } {1 10 100 2 20 200}
-do_execsql_test upsert1-1510 {
+do_execsql_test upsert1-1411 {
+  DROP TABLE t0;
   CREATE TABLE t1(a INTEGER PRIMARY KEY, b UNIQUE ON CONFLICT FAIL, c UNIQUE);
   INSERT INTO t1 VALUES(1, 1, 1);
 }
-do_catchsql_test upsert1-1520 {
+do_catchsql_test upsert1-1412 {
   -- Inserts 0 rows, because hitting the constraint on (b) does ABORT:
   INSERT INTO t1 VALUES(3, 3, 3), (2, 1, 2) ON CONFLICT(c) DO NOTHING;
 } {1 {UNIQUE constraint failed: t1.b}}
-do_execsql_test upsert1-1530 {
+do_execsql_test upsert1-1413 {
   SELECT * FROM t1 ORDER BY a;
 } {1 1 1 3 3 3}
-do_catchsql_test upsert1-1530 {
+do_catchsql_test upsert1-1414 {
   -- Inserts 1 row, because hitting the constraint on (b) does FAIL:
   DELETE FROM t1 WHERE a=3;
   INSERT INTO t1 VALUES(3, 3, 3), (2, 1, 2);
 } {1 {UNIQUE constraint failed: t1.b}}
-do_execsql_test upsert1-1540 {
+do_execsql_test upsert1-1415 {
   SELECT * FROM t1 ORDER BY a;
 } {1 1 1 3 3 3}
-do_execsql_test upsert1-1550 {
+do_execsql_test upsert1-1416 {
   PRAGMA integrity_check;
 } ok
-
+# Counter-example to the fix at check-in 2026-07-17T16:26:56.257Z
+# provided by Pavan Nambi at forum post 2026-07-18T03:35:48Z
+do_execsql_test upsert1-1417 {
+  DROP TABLE t1;
+  PRAGMA recursive_triggers=ON;
+  CREATE TABLE t2(
+    a INTEGER PRIMARY KEY ON CONFLICT REPLACE,
+    b INT UNIQUE ON CONFLICT FAIL,
+    c INT UNIQUE
+  );
+  CREATE TRIGGER t_ad AFTER DELETE ON t2 BEGIN
+    INSERT INTO t2 VALUES(99,20,999);
+  END;
+  INSERT INTO t2 VALUES(1,10,100),(2,30,200);
+  SELECT * FROM t2 ORDER BY a;
+} {1 10 100 2 30 200}
+do_catchsql_test upsert1-1418 {
+  INSERT INTO t2 VALUES(1,20,300) ON CONFLICT(c) DO NOTHING;
+} {1 {UNIQUE constraint failed: t2.b}}
+do_execsql_test upsert1-1419 {
+  PRAGMA integrity_check;
+} ok
+do_execsql_test upsert1-1420 {
+  SELECT * FROM t2 ORDER BY a;
+} {2 30 200 99 20 999}
 
 finish_test