diff options
author | Sergei Golubchik <serg@mariadb.org> | 2017-01-12 13:54:21 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2017-01-12 13:54:21 +0100 |
commit | 20ca1bcf4bd81ed43683676276b5f27dc8da8e91 (patch) | |
tree | 38912542ce68af33fdf4b1f87ab3d2bac91e7a6c | |
parent | 0d1d0d77f2a72d9cb6de0489dceb37644caf9037 (diff) | |
download | mariadb-git-20ca1bcf4bd81ed43683676276b5f27dc8da8e91.tar.gz |
MDEV-11527 Virtual columns do not get along well with NO_ZERO_DATE
don't check defaults for vcols
-rw-r--r-- | mysql-test/suite/vcol/r/vcol_misc.result | 7 | ||||
-rw-r--r-- | mysql-test/suite/vcol/t/vcol_misc.test | 11 | ||||
-rw-r--r-- | sql/sql_table.cc | 2 |
3 files changed, 19 insertions, 1 deletions
diff --git a/mysql-test/suite/vcol/r/vcol_misc.result b/mysql-test/suite/vcol/r/vcol_misc.result index 0aaed59ed6c..699b6d4efe3 100644 --- a/mysql-test/suite/vcol/r/vcol_misc.result +++ b/mysql-test/suite/vcol/r/vcol_misc.result @@ -330,3 +330,10 @@ t1 CREATE TABLE `t1` ( `c1` varchar(50) COLLATE latin1_general_ci DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci drop table t1; +set sql_mode='no_zero_date'; +create table t1 ( +ts timestamp not null default current_timestamp, +tsv timestamp as (adddate(ts, interval 1 day)) virtual +); +drop table t1; +set sql_mode=default; diff --git a/mysql-test/suite/vcol/t/vcol_misc.test b/mysql-test/suite/vcol/t/vcol_misc.test index 12f46e9b002..80a36d9c623 100644 --- a/mysql-test/suite/vcol/t/vcol_misc.test +++ b/mysql-test/suite/vcol/t/vcol_misc.test @@ -290,3 +290,14 @@ create table t1 (a int, b int as (b is null) virtual); create table t1 (v1 varchar(255) as (c1) persistent, c1 varchar(50)) collate=latin1_general_ci; show create table t1; drop table t1; + +# +# MDEV-11527 Virtual columns do not get along well with NO_ZERO_DATE +# +set sql_mode='no_zero_date'; +create table t1 ( + ts timestamp not null default current_timestamp, + tsv timestamp as (adddate(ts, interval 1 day)) virtual +); +drop table t1; +set sql_mode=default; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 2cec480d23b..43e146f1f1d 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3826,7 +3826,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info, Field::utype type= (Field::utype) MTYP_TYPENR(sql_field->unireg_check); if (thd->variables.sql_mode & MODE_NO_ZERO_DATE && - !sql_field->def && + !sql_field->def && !sql_field->vcol_info && sql_field->sql_type == MYSQL_TYPE_TIMESTAMP && (sql_field->flags & NOT_NULL_FLAG) && (type == Field::NONE || type == Field::TIMESTAMP_UN_FIELD)) |