Changeset: 61dbbe258797 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=61dbbe258797
Modified Files:
        sql/test/mergetables/Tests/singlekeyconstraint.sql
        sql/test/mergetables/Tests/singlekeyconstraint.stable.err
        sql/test/mergetables/Tests/singlekeyconstraint.stable.out
Branch: Jul2015
Log Message:

Corrected and extended single pk contraint on merge table check


diffs (120 lines):

diff --git a/sql/test/mergetables/Tests/singlekeyconstraint.sql 
b/sql/test/mergetables/Tests/singlekeyconstraint.sql
--- a/sql/test/mergetables/Tests/singlekeyconstraint.sql
+++ b/sql/test/mergetables/Tests/singlekeyconstraint.sql
@@ -5,7 +5,7 @@ 0.0 0.0 0.0
 1.0 0.0 0.0 
 
 CREATE TABLE part2 ( x double, y double, z double);
-ALTER TABLE part1 ADD PRIMARY KEY (x);
+ALTER TABLE part2 ADD PRIMARY KEY (x);
 COPY 2 RECORDS INTO part2 FROM stdin USING DELIMITERS ' ','\n';
 2.0 0.0 0.0
 3.0 0.0 0.0 
@@ -14,20 +14,27 @@ CREATE MERGE TABLE complete ( x double, 
 
 -- next complaints while both parts have local constraint.
 -- a global constaint should at least imply local constraints
+ALTER TABLE complete ADD TABLE part1;
+ALTER TABLE complete ADD TABLE part2;
+
+-- next should succeed
 ALTER TABLE complete ADD PRIMARY KEY (x);
 ALTER TABLE complete ADD TABLE part1;
 ALTER TABLE complete ADD TABLE part2;
 
 SELECT * FROM COMPLETE;
 
--- this one violates global constraint, not local
-INSERT INTO part2 VALUES(0.0, 0.0, 0.0);
+-- this one violates local constraint, not global
+INSERT INTO part2 VALUES(2.0, 0.0, 1.0);
 
 -- this one violates local constraint, not global
-INSERT INTO part1 VALUES(0.0, 0.0, 0.0);
+INSERT INTO part1 VALUES(0.0, 0.0, 2.0);
+
+-- this one violates global constraint, not local
+INSERT INTO part2 VALUES(0.0, 0.0, 3.0);
 
 -- how about direct insert into table
-INSERT INTO complete VALUES(4.0, 0.0, 0.0);
+INSERT INTO complete VALUES(4.0, 0.0, 4.0);
 
 SELECT * FROM complete;
 
diff --git a/sql/test/mergetables/Tests/singlekeyconstraint.stable.err 
b/sql/test/mergetables/Tests/singlekeyconstraint.stable.err
--- a/sql/test/mergetables/Tests/singlekeyconstraint.stable.err
+++ b/sql/test/mergetables/Tests/singlekeyconstraint.stable.err
@@ -30,6 +30,24 @@ stderr of test 'singlekeyconstraint` in 
 # 17:07:09 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-21328" "--port=33620"
 # 17:07:09 >  
 
+MAPI  = (monetdb) /var/tmp/mtest-8346/.s.monetdb.36761
+QUERY = ALTER TABLE complete ADD TABLE part1;
+ERROR = !ALTER MERGE TABLE: to be added table index doesn't match MERGE TABLE 
definition
+MAPI  = (monetdb) /var/tmp/mtest-8346/.s.monetdb.36761
+QUERY = ALTER TABLE complete ADD TABLE part2;
+ERROR = !ALTER MERGE TABLE: to be added table index doesn't match MERGE TABLE 
definition
+MAPI  = (monetdb) /var/tmp/mtest-8346/.s.monetdb.36761
+QUERY = INSERT INTO part2 VALUES(2.0, 0.0, 1.0);
+ERROR = !INSERT INTO: PRIMARY KEY constraint 'part2.part2_x_pkey' violated
+MAPI  = (monetdb) /var/tmp/mtest-8346/.s.monetdb.36761
+QUERY = INSERT INTO part1 VALUES(0.0, 0.0, 2.0);
+ERROR = !INSERT INTO: PRIMARY KEY constraint 'part1.part1_x_pkey' violated
+MAPI  = (monetdb) /var/tmp/mtest-8346/.s.monetdb.36761
+QUERY = INSERT INTO part2 VALUES(0.0, 0.0, 3.0);
+ERROR = !INSERT INTO: PRIMARY KEY constraint 'complete.complete_x_pkey' 
violated
+MAPI  = (monetdb) /var/tmp/mtest-8346/.s.monetdb.36761
+QUERY = INSERT INTO complete VALUES(4.0, 0.0, 4.0);
+ERROR = !INSERT INTO: cannot insert into merge table 'complete'
 
 # 17:07:09 >  
 # 17:07:09 >  "Done."
diff --git a/sql/test/mergetables/Tests/singlekeyconstraint.stable.out 
b/sql/test/mergetables/Tests/singlekeyconstraint.stable.out
--- a/sql/test/mergetables/Tests/singlekeyconstraint.stable.out
+++ b/sql/test/mergetables/Tests/singlekeyconstraint.stable.out
@@ -64,7 +64,43 @@ Ready.
 # 17:07:09 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-21328" "--port=33620"
 # 17:07:09 >  
 
-! Correct / expected output still needs to be provided / approved !
+#CREATE TABLE part1 ( x double, y double, z double);
+#ALTER TABLE part1 ADD PRIMARY KEY (x);
+#COPY 2 RECORDS INTO part1 FROM stdin USING DELIMITERS ' ','\n';
+#0.0 0.0 0.0
+#1.0 0.0 0.0 
+[ 2    ]
+#CREATE TABLE part2 ( x double, y double, z double);
+#ALTER TABLE part2 ADD PRIMARY KEY (x);
+#COPY 2 RECORDS INTO part2 FROM stdin USING DELIMITERS ' ','\n';
+#2.0 0.0 0.0
+#3.0 0.0 0.0 
+[ 2    ]
+#CREATE MERGE TABLE complete ( x double, y double, z double);
+#ALTER TABLE complete ADD PRIMARY KEY (x);
+#ALTER TABLE complete ADD TABLE part1;
+#ALTER TABLE complete ADD TABLE part2;
+#SELECT * FROM COMPLETE;
+% .complete,   .complete,      .complete # table_name
+% x,   y,      z # name
+% double,      double, double # type
+% 24,  24,     24 # length
+[ 0,   0,      0       ]
+[ 1,   0,      0       ]
+[ 2,   0,      0       ]
+[ 3,   0,      0       ]
+#SELECT * FROM complete;
+% .complete,   .complete,      .complete # table_name
+% x,   y,      z # name
+% double,      double, double # type
+% 24,  24,     24 # length
+[ 0,   0,      0       ]
+[ 1,   0,      0       ]
+[ 2,   0,      0       ]
+[ 3,   0,      0       ]
+#DROP TABLE complete;
+#DROP TABLE part1;
+#DROP TABLE part2;
 
 # 17:07:09 >  
 # 17:07:09 >  "Done."
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to