Changeset: fbfff44bd448 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/fbfff44bd448
Added Files:
sql/test/BugTracker-2026/Tests/7976-dump_database-composite-key-order-bug.test
Modified Files:
sql/test/BugTracker-2026/Tests/All
Branch: Dec2025
Log Message:
Add test for issue #7976
diffs (124 lines):
diff --git
a/sql/test/BugTracker-2026/Tests/7976-dump_database-composite-key-order-bug.test
b/sql/test/BugTracker-2026/Tests/7976-dump_database-composite-key-order-bug.test
new file mode 100644
--- /dev/null
+++
b/sql/test/BugTracker-2026/Tests/7976-dump_database-composite-key-order-bug.test
@@ -0,0 +1,108 @@
+statement ok
+CREATE SCHEMA demo
+
+statement ok
+SET SCHEMA demo
+
+statement ok
+CREATE TABLE parent (
+ a INT NOT NULL,
+ b INT NOT NULL,
+ CONSTRAINT parent_ab UNIQUE (a, b)
+)
+
+statement ok
+CREATE TABLE child (
+ a INT NOT NULL,
+ b INT NOT NULL,
+ CONSTRAINT child_fk
+ FOREIGN KEY (a, b) REFERENCES parent (a, b)
+)
+
+query IT rowsort
+SELECT o.nr, o.name
+FROM sys.objects o
+JOIN sys.keys k ON o.id = k.id
+JOIN sys._tables t ON k.table_id = t.id
+JOIN sys.schemas s ON t.schema_id = s.id
+WHERE s.name = 'demo'
+ AND t.name = 'parent'
+ AND k.type = 1
+ORDER BY o.nr
+----
+0
+a
+1
+b
+
+query T nosort
+SELECT stmt
+FROM sys.dump_table_constraint_type
+WHERE schema_name = 'demo'
+ AND table_name = 'parent'
+----
+ALTER TABLE "demo"."parent" ADD CONSTRAINT "parent_ab" UNIQUE ("a", "b");
+
+statement ok
+CREATE SCHEMA noise
+
+statement ok
+CREATE TABLE noise.unrelated (
+ a INT NOT NULL,
+ b INT NOT NULL,
+ UNIQUE (a, b)
+)
+
+-- The catalogue query still returns 0, a and 1, b
+query IT rowsort
+SELECT o.nr, o.name
+FROM sys.objects o
+JOIN sys.keys k ON o.id = k.id
+JOIN sys._tables t ON k.table_id = t.id
+JOIN sys.schemas s ON t.schema_id = s.id
+WHERE s.name = 'demo'
+ AND t.name = 'parent'
+ AND k.type = 1
+ORDER BY o.nr
+----
+0
+a
+1
+b
+
+-- but the dump query now returns: ALTER TABLE "demo"."parent" ADD CONSTRAINT
"parent_ab" UNIQUE ("b", "a"); -- key columns are reversed
+query T nosort
+SELECT stmt
+FROM sys.dump_table_constraint_type
+WHERE schema_name = 'demo'
+ AND table_name = 'parent'
+----
+ALTER TABLE "demo"."parent" ADD CONSTRAINT "parent_ab" UNIQUE ("a", "b");
+
+query T nosort
+SELECT stmt
+FROM sys.dump_database(TRUE)
+WHERE stmt LIKE 'ALTER TABLE "demo".%'
+ORDER BY o
+----
+ALTER TABLE "demo"."parent" ADD CONSTRAINT "parent_ab" UNIQUE ("a", "b");
+ALTER TABLE "demo"."child" ADD CONSTRAINT "child_fk" FOREIGN KEY("a","b")
REFERENCES "demo"."parent"("a","b") ON DELETE RESTRICT ON UPDATE RESTRICT;
+
+statement ok
+DROP SCHEMA noise CASCADE
+
+-- the dump query now returns: ALTER TABLE "demo"."parent" ADD CONSTRAINT
"parent_ab" UNIQUE ("a", "b");
+query T nosort
+SELECT stmt
+FROM sys.dump_table_constraint_type
+WHERE schema_name = 'demo'
+ AND table_name = 'parent'
+----
+ALTER TABLE "demo"."parent" ADD CONSTRAINT "parent_ab" UNIQUE ("a", "b");
+
+statement ok
+SET SCHEMA sys
+
+statement ok
+DROP SCHEMA demo CASCADE
+
diff --git a/sql/test/BugTracker-2026/Tests/All
b/sql/test/BugTracker-2026/Tests/All
--- a/sql/test/BugTracker-2026/Tests/All
+++ b/sql/test/BugTracker-2026/Tests/All
@@ -158,6 +158,7 @@ KNOWNFAIL?7965-select-1-limit-0-bug
7972-orderby-limit-subquery-bug
KNOWNFAIL?7973-groupby-list-null-row-bug
KNOWNFAIL?7974-muli-column-not-in-subquery-bug
+KNOWNFAIL?7976-dump_database-composite-key-order-bug
7977-prepare-optimize
7978-name-leak-prepare-error-recompile
7979-prepare-error-exec-113
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]