From: drh <> Date: Sat, 18 Jul 2026 08:46:36 +0000 (+0000) Subject: Add test cases from X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=8498ccfd5f6e128fc8fb619725d809c58cde75ee;p=thirdparty%2Fsqlite.git Add test cases from [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 --- diff --git a/manifest b/manifest index 01be45cffb..ba37008ce1 100644 --- 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. diff --git a/manifest.uuid b/manifest.uuid index 31275cfd8d..ad367302cd 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -da16fe363e2b0f8e735405a03fd0cae0796333c37d41cb323863d3803ebfdc45 +49b67b7da6bceae3ee87153480e676f53a472b0f6e0ed8d1866ed819e8f64fa1 diff --git a/test/upsert1.test b/test/upsert1.test index 1cf7a4baec..a464f7449d 100644 --- a/test/upsert1.test +++ b/test/upsert1.test @@ -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