1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00
This commit is contained in:
Igor Babaev
2014-02-07 16:55:25 -08:00
3 changed files with 17 additions and 1 deletions

View File

@@ -316,4 +316,9 @@ ERROR HY000: The value specified for computed column 'd' in table 't1' ignored
INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,'a');
ERROR HY000: The value specified for computed column 'd' in table 't1' ignored
drop table t1;
#
# MDEV-5611: self-referencing virtual column
#
create table t1 (a int, b int as (b is null) virtual);
ERROR HY000: A computed column cannot be based on a computed column
# end of 5.3 tests

View File

@@ -275,4 +275,11 @@ UPDATE `test`.`t1` SET `d`='b' WHERE `a`='1' AND `b`='a' AND `c`='1' AND `d`='a
INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,'a');
drop table t1;
--echo #
--echo # MDEV-5611: self-referencing virtual column
--echo #
--error ER_VCOL_BASED_ON_VCOL
create table t1 (a int, b int as (b is null) virtual);
--echo # end of 5.3 tests

View File

@@ -1877,7 +1877,11 @@ public:
tab->merge_keys.merge(field->part_of_key);
if (tab->read_set)
bitmap_fast_test_and_set(tab->read_set, field->field_index);
if (field->vcol_info)
/*
Do not mark a self-referecing virtual column.
Such virtual columns are reported as invalid.
*/
if (field->vcol_info && tab->vcol_set)
tab->mark_virtual_col(field);
}
}