summaryrefslogtreecommitdiff
path: root/mysql-test/main/check_constraint.test
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2021-02-04 16:06:54 +0100
committerSergei Golubchik <serg@mariadb.org>2021-02-07 16:22:11 +0100
commitef5adf520760536c7396bdfe884fc509ac065694 (patch)
tree8b4074b80354de5126ce4604321874b439e03ec8 /mysql-test/main/check_constraint.test
parentc2c23e598d49fc991b34853d864c77d02741b61c (diff)
downloadmariadb-git-ef5adf520760536c7396bdfe884fc509ac065694.tar.gz
MDEV-24274 ALTER TABLE with CHECK CONSTRAINTS gives "Out of Memory" error
partially revert 76063c2a13. Item::clone() is not an all-purpose Item copying machine, it was specifically created for pushdown of predicates into derived tables and views and it does not copy everything. In particular, it does not copy Item_func_regex. Fix the bug differently by preserving the old constraint name. But keep setting automatic_name=true to have it regenerated for cases like ALTER TABLE ... ADD CONSTRAINT.
Diffstat (limited to 'mysql-test/main/check_constraint.test')
-rw-r--r--mysql-test/main/check_constraint.test8
1 files changed, 8 insertions, 0 deletions
diff --git a/mysql-test/main/check_constraint.test b/mysql-test/main/check_constraint.test
index 93538fd1666..1258a9e3be6 100644
--- a/mysql-test/main/check_constraint.test
+++ b/mysql-test/main/check_constraint.test
@@ -176,3 +176,11 @@ select * from t1 where a is null;
--error ER_CONSTRAINT_FAILED
insert t1 (b) values (1);
drop table t1;
+
+--echo #
+--echo # MDEV-24274 ALTER TABLE with CHECK CONSTRAINTS gives "Out of Memory" error
+--echo #
+create table t1 (id varchar(2), constraint id check (id regexp '[a-z]'));
+alter table t1 force;
+show create table t1;
+drop table t1;