-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
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
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.
#
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