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 -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to