Changeset: 926f96b4e4ea for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/926f96b4e4ea
Added Files:
sql/test/BugTracker-2024/Tests/7598-foreign_key_match_options.test
sql/test/BugTracker-2024/Tests/7598-foreign_key_match_options_dump.SQL.py
sql/test/BugTracker-2024/Tests/7598-foreign_key_match_options_dump.stable.out
Modified Files:
sql/test/BugTracker-2024/Tests/All
Branch: Aug2024
Log Message:
Add test for #7598
diffs (110 lines):
diff --git a/sql/test/BugTracker-2024/Tests/7598-foreign_key_match_options.test
b/sql/test/BugTracker-2024/Tests/7598-foreign_key_match_options.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2024/Tests/7598-foreign_key_match_options.test
@@ -0,0 +1,56 @@
+statement ok
+create table authors(lastname varchar(20), firstname varchar(20), primary key
(lastname, firstname))
+
+statement ok
+insert into authors values ('doe', 'john');
+
+statement ok
+create table books_simple (authlast varchar (20), authfirst varchar(20),
foreign key(authlast, authfirst) references authors(lastname, firstname))
+
+statement ok
+insert into books_simple values (null, null)
+
+statement ok
+insert into books_simple values ('doe', null)
+
+statement ok
+insert into books_simple values ('smith', null)
+
+statement ok
+create table books_partial (authlast varchar (20), authfirst varchar(20),
foreign key(authlast, authfirst) references authors(lastname, firstname) MATCH
PARTIAL)
+
+statement ok
+insert into books_partial values (null, null)
+
+statement ok
+insert into books_partial values ('doe', null)
+
+statement error
+insert into books_partial values ('smith', null)
+
+statement ok
+create table books_full (authlast varchar (20), authfirst varchar(20))
+
+statement ok
+alter table books_full add foreign key (authlast, authfirst) references
authors(lastname, firstname) MATCH FULL
+
+statement ok
+insert into books_full values (null, null)
+
+statement error
+insert into books_full values ('doe', null)
+
+statement error
+insert into books_full values ('smith', null)
+
+statement ok
+drop table books_full
+
+statement ok
+drop table books_partial
+
+statement ok
+drop table books_simple
+
+statement ok
+drop table authors
diff --git
a/sql/test/BugTracker-2024/Tests/7598-foreign_key_match_options_dump.SQL.py
b/sql/test/BugTracker-2024/Tests/7598-foreign_key_match_options_dump.SQL.py
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2024/Tests/7598-foreign_key_match_options_dump.SQL.py
@@ -0,0 +1,12 @@
+from MonetDBtesting.sqltest import SQLTestCase
+
+with SQLTestCase() as tc:
+ tc.connect(username="monetdb", password="monetdb")
+ tc.execute("CREATE TABLE authors(lastname VARCHAR(20), firstname
VARCHAR(20), PRIMARY KEY (lastname, firstname));")
+ tc.execute("CREATE TABLE books_partial (authlast VARCHAR(20), authfirst
VARCHAR(20), FOREIGN KEY (authlast, authfirst) REFERENCES authors(lastname,
firstname) MATCH PARTIAL);")
+ tc.execute("CREATE TABLE books_full (authlast VARCHAR(20), authfirst
VARCHAR(20), FOREIGN KEY (authlast, authfirst) REFERENCES authors(lastname,
firstname) MATCH FULL);")
+ d = tc.sqldump()
+
d.assertMatchStableOut(fout='7598-foreign_key_match_options_dump.stable.out',
ratio=1)
+ tc.execute("DROP TABLE books_full;")
+ tc.execute("DROP TABLE books_partial;")
+ tc.execute("DROP TABLE authors;")
diff --git
a/sql/test/BugTracker-2024/Tests/7598-foreign_key_match_options_dump.stable.out
b/sql/test/BugTracker-2024/Tests/7598-foreign_key_match_options_dump.stable.out
new file mode 100644
--- /dev/null
+++
b/sql/test/BugTracker-2024/Tests/7598-foreign_key_match_options_dump.stable.out
@@ -0,0 +1,18 @@
+START TRANSACTION;
+SET SCHEMA "sys";
+CREATE TABLE "sys"."authors" (
+ "lastname" VARCHAR(20) NOT NULL,
+ "firstname" VARCHAR(20) NOT NULL,
+ CONSTRAINT "authors_lastname_firstname_pkey" PRIMARY KEY ("lastname",
"firstname")
+);
+CREATE TABLE "sys"."books_partial" (
+ "authlast" VARCHAR(20),
+ "authfirst" VARCHAR(20)
+);
+CREATE TABLE "sys"."books_full" (
+ "authlast" VARCHAR(20),
+ "authfirst" VARCHAR(20)
+);
+ALTER TABLE "sys"."books_full" ADD CONSTRAINT
"books_full_authlast_authfirst_fkey" FOREIGN KEY ("authlast", "authfirst")
REFERENCES "sys"."authors" ("lastname", "firstname") MATCH FULL;
+ALTER TABLE "sys"."books_partial" ADD CONSTRAINT
"books_partial_authlast_authfirst_fkey" FOREIGN KEY ("authlast", "authfirst")
REFERENCES "sys"."authors" ("lastname", "firstname") MATCH PARTIAL;
+COMMIT;
diff --git a/sql/test/BugTracker-2024/Tests/All
b/sql/test/BugTracker-2024/Tests/All
--- a/sql/test/BugTracker-2024/Tests/All
+++ b/sql/test/BugTracker-2024/Tests/All
@@ -94,3 +94,5 @@ 7580-date-diff
7582-ddl-exists
7587-rejectmismatch
7591-logical-expr
+7598-foreign_key_match_options
+7598-foreign_key_match_options_dump
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]