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
