summaryrefslogtreecommitdiff
path: root/mysql-test/main/constraints.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/main/constraints.test')
-rw-r--r--mysql-test/main/constraints.test79
1 files changed, 79 insertions, 0 deletions
diff --git a/mysql-test/main/constraints.test b/mysql-test/main/constraints.test
new file mode 100644
index 00000000000..1997c23bfa9
--- /dev/null
+++ b/mysql-test/main/constraints.test
@@ -0,0 +1,79 @@
+#
+# Testing of constraints
+#
+--disable_warnings
+drop table if exists t1;
+--enable_warnings
+
+create table t1 (a int check (a>0));
+show create table t1;
+insert into t1 values (1);
+--error ER_CONSTRAINT_FAILED
+insert into t1 values (0);
+drop table t1;
+create table t1 (a int, b int, check (a>b));
+show create table t1;
+insert into t1 values (1,0);
+--error ER_CONSTRAINT_FAILED
+insert into t1 values (0,1);
+drop table t1;
+create table t1 (a int ,b int, constraint abc check (a>b));
+show create table t1;
+insert into t1 values (1,0);
+--error ER_CONSTRAINT_FAILED
+insert into t1 values (0,1);
+drop table t1;
+create table t1 (a int null);
+show create table t1;
+insert into t1 values (1),(NULL);
+drop table t1;
+create table t1 (a int null);
+alter table t1 add constraint constraint_1 unique (a);
+alter table t1 add constraint unique key_1(a);
+alter table t1 add constraint constraint_2 unique key_2(a);
+show create table t1;
+drop table t1;
+
+# End of 4.1 tests
+
+#
+# Bug#35578 (Parser allows useless/illegal CREATE TABLE syntax)
+#
+
+--disable_warnings
+drop table if exists t_illegal;
+--enable_warnings
+
+--error ER_PARSE_ERROR
+create table t_illegal (a int, b int, check a>b);
+
+--error ER_PARSE_ERROR
+create table t_illegal (a int, b int, constraint abc check a>b);
+
+--error ER_PARSE_ERROR
+create table t_illegal (a int, b int, constraint abc);
+
+#
+# Bug#11714 (Non-sensical ALTER TABLE ADD CONSTRAINT allowed)
+#
+
+--disable_warnings
+drop table if exists t_11714;
+--enable_warnings
+
+create table t_11714(a int, b int);
+
+--error ER_PARSE_ERROR
+alter table t_11714 add constraint cons1;
+
+drop table t_11714;
+
+#
+# Bug#38696 (CREATE TABLE ... CHECK ... allows illegal syntax)
+
+--error ER_PARSE_ERROR
+CREATE TABLE t_illegal (col_1 INT CHECK something (whatever));
+
+--error ER_PARSE_ERROR
+CREATE TABLE t_illegal (col_1 INT CHECK something);
+