mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
MDEV-10370 Check constraints on virtual columns fails on INSERT when column not specified
add columns needed for CHECK constraints not only to read_set, but also to vcol_set.
This commit is contained in:
@@ -131,3 +131,8 @@ t1 CREATE TABLE `t1` (
|
|||||||
CONSTRAINT `CONSTRAINT_2` CHECK (`a` > `b`)
|
CONSTRAINT `CONSTRAINT_2` CHECK (`a` > `b`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1(c1 int, c2 int as (c1 + 1), check (c2 > 2));
|
||||||
|
insert into t1(c1) values(1);
|
||||||
|
ERROR 23000: CONSTRAINT `CONSTRAINT_1` failed for `test`.`t1`
|
||||||
|
insert into t1(c1) values(2);
|
||||||
|
drop table t1;
|
||||||
|
@@ -69,3 +69,12 @@ create or replace table t1 (a int, b int,
|
|||||||
constraint CONSTRAINT_2 check (a>b));
|
constraint CONSTRAINT_2 check (a>b));
|
||||||
show create table t1;
|
show create table t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-10370 Check constraints on virtual columns fails on INSERT when column not specified
|
||||||
|
#
|
||||||
|
create table t1(c1 int, c2 int as (c1 + 1), check (c2 > 2));
|
||||||
|
--error ER_CONSTRAINT_FAILED
|
||||||
|
insert into t1(c1) values(1);
|
||||||
|
insert into t1(c1) values(2);
|
||||||
|
drop table t1;
|
||||||
|
@@ -6605,6 +6605,8 @@ void TABLE::mark_columns_used_by_check_constraints(void)
|
|||||||
void TABLE::mark_check_constraint_columns_for_read(void)
|
void TABLE::mark_check_constraint_columns_for_read(void)
|
||||||
{
|
{
|
||||||
bitmap_union(read_set, s->check_set);
|
bitmap_union(read_set, s->check_set);
|
||||||
|
if (vcol_set)
|
||||||
|
bitmap_union(vcol_set, s->check_set);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user