mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-22602 Disable UPDATE CASCADE for SQL constraints
fix it for named constraints too
This commit is contained in:
@@ -943,6 +943,8 @@ DROP TABLE t1;
|
|||||||
#
|
#
|
||||||
# TODO: enable them after MDEV-16417 is finished
|
# TODO: enable them after MDEV-16417 is finished
|
||||||
create or replace table t1 (a int primary key) engine=innodb;
|
create or replace table t1 (a int primary key) engine=innodb;
|
||||||
|
create or replace table t2 (a int, constraint foo check(a > 0), foreign key(a) references t1(a) on update cascade) engine=innodb;
|
||||||
|
ERROR HY000: Function or expression 'a' cannot be used in the CHECK clause of `foo`
|
||||||
create or replace table t2 (a int, check(a > 0), foreign key(a) references t1(a) on update cascade) engine=innodb;
|
create or replace table t2 (a int, check(a > 0), foreign key(a) references t1(a) on update cascade) engine=innodb;
|
||||||
ERROR HY000: Function or expression 'a' cannot be used in the CHECK clause of `CONSTRAINT_1`
|
ERROR HY000: Function or expression 'a' cannot be used in the CHECK clause of `CONSTRAINT_1`
|
||||||
create or replace table t1 (f1 int, f2 date, f3 date, key(f1,f3,f2)) engine=innodb;
|
create or replace table t1 (f1 int, f2 date, f3 date, key(f1,f3,f2)) engine=innodb;
|
||||||
|
@@ -971,6 +971,8 @@ DROP TABLE t1;
|
|||||||
--echo # TODO: enable them after MDEV-16417 is finished
|
--echo # TODO: enable them after MDEV-16417 is finished
|
||||||
create or replace table t1 (a int primary key) engine=innodb;
|
create or replace table t1 (a int primary key) engine=innodb;
|
||||||
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
|
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create or replace table t2 (a int, constraint foo check(a > 0), foreign key(a) references t1(a) on update cascade) engine=innodb;
|
||||||
|
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
|
||||||
create or replace table t2 (a int, check(a > 0), foreign key(a) references t1(a) on update cascade) engine=innodb;
|
create or replace table t2 (a int, check(a > 0), foreign key(a) references t1(a) on update cascade) engine=innodb;
|
||||||
|
|
||||||
create or replace table t1 (f1 int, f2 date, f3 date, key(f1,f3,f2)) engine=innodb;
|
create or replace table t1 (f1 int, f2 date, f3 date, key(f1,f3,f2)) engine=innodb;
|
||||||
|
@@ -4622,7 +4622,7 @@ without_overlaps_err:
|
|||||||
my_error(ER_TOO_LONG_IDENT, MYF(0), check->name.str);
|
my_error(ER_TOO_LONG_IDENT, MYF(0), check->name.str);
|
||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
}
|
}
|
||||||
if (check_expression(check, &check->name, VCOL_CHECK_TABLE))
|
if (check_expression(check, &check->name, VCOL_CHECK_TABLE, alter_info))
|
||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user