mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Fixed two bugs related to column level constraints
- CREATE TABLE ... SELECT drops constraints for columns that are both in the create and select part. - Fixed by copying the constraint in Column_definiton::redefine_stage1_common() - If one has both a default expression and check constraint for a column, one can get the error "Expression for field `a` is refering to uninitialized field `a`. - Fixed by ignoring default expressions for current column when checking for CHECK constraint
This commit is contained in:
@ -102,3 +102,23 @@ SELECT * FROM long_enough_name AS tbl;
|
||||
SHOW CREATE TABLE long_enough_name;
|
||||
|
||||
DROP TABLE long_enough_name;
|
||||
|
||||
#
|
||||
# Check that we don't loose constraints as part of CREATE ... SELECT
|
||||
#
|
||||
|
||||
create table t1 (a int check (a>10)) select 100 as 'a';
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Check that we constraints on field with default expressions work
|
||||
#
|
||||
|
||||
create table t1 (a text default(length(now())) check (length(a) > 1));
|
||||
insert into t1 values ();
|
||||
insert into t1 values ("ccc");
|
||||
--error ER_CONSTRAINT_FAILED
|
||||
insert into t1 values ("");
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
Reference in New Issue
Block a user