diff options
-rw-r--r-- | mysql-test/r/create.result | 41 | ||||
-rw-r--r-- | mysql-test/t/create.test | 50 | ||||
-rw-r--r-- | sql/unireg.cc | 4 |
3 files changed, 91 insertions, 4 deletions
diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index 81463a3f0f2..85ce830025d 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -1847,4 +1847,45 @@ DROP TABLE t3; # -- End of Bug#18834. +# -- +# -- Bug#34274: Invalid handling of 'DEFAULT 0' for YEAR data type. +# -- + +DROP TABLE IF EXISTS t1; + +CREATE TABLE t1(c1 YEAR DEFAULT 2008, c2 YEAR DEFAULT 0); + +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `c1` year(4) DEFAULT '2008', + `c2` year(4) DEFAULT '0000' +) ENGINE=MyISAM DEFAULT CHARSET=latin1 + +INSERT INTO t1 VALUES(); + +SELECT * FROM t1; +c1 c2 +2008 0000 + +ALTER TABLE t1 MODIFY c1 YEAR DEFAULT 0; + +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `c1` year(4) DEFAULT '0000', + `c2` year(4) DEFAULT '0000' +) ENGINE=MyISAM DEFAULT CHARSET=latin1 + +INSERT INTO t1 VALUES(); + +SELECT * FROM t1; +c1 c2 +2008 0000 +0000 0000 + +DROP TABLE t1; + +# -- End of Bug#34274 + End of 5.1 tests diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test index 28ae38d943a..9cf38742289 100644 --- a/mysql-test/t/create.test +++ b/mysql-test/t/create.test @@ -1365,6 +1365,8 @@ create table t1 like information_schema.character_sets; show create table t1; drop table t1; +########################################################################### + --echo --echo # -- --echo # -- Bug#21380: DEFAULT definition not always transfered by CREATE @@ -1407,8 +1409,10 @@ DROP TABLE t2; --echo --echo # -- End of test case for Bug#21380. ---echo +########################################################################### + +--echo --echo # -- --echo # -- Bug#18834: ALTER TABLE ADD INDEX on table with two timestamp fields --echo # -- @@ -1471,6 +1475,50 @@ DROP TABLE t3; --echo --echo # -- End of Bug#18834. + +########################################################################### + +--echo +--echo # -- +--echo # -- Bug#34274: Invalid handling of 'DEFAULT 0' for YEAR data type. +--echo # -- +--echo + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +--echo +CREATE TABLE t1(c1 YEAR DEFAULT 2008, c2 YEAR DEFAULT 0); + +--echo +SHOW CREATE TABLE t1; + +--echo +INSERT INTO t1 VALUES(); + +--echo +SELECT * FROM t1; + +--echo +ALTER TABLE t1 MODIFY c1 YEAR DEFAULT 0; + +--echo +SHOW CREATE TABLE t1; + --echo +INSERT INTO t1 VALUES(); +--echo +SELECT * FROM t1; + +--echo +DROP TABLE t1; + +--echo +--echo # -- End of Bug#34274 + +########################################################################### + +--echo --echo End of 5.1 tests diff --git a/sql/unireg.cc b/sql/unireg.cc index 38f09a7946c..abab4632fe4 100644 --- a/sql/unireg.cc +++ b/sql/unireg.cc @@ -979,9 +979,7 @@ static bool make_empty_rec(THD *thd, File file,enum legacy_db_type table_type, type= (Field::utype) MTYP_TYPENR(field->unireg_check); - if (field->def && - (regfield->real_type() != MYSQL_TYPE_YEAR || - field->def->val_int() != 0)) + if (field->def) { int res= field->def->save_in_field(regfield, 1); /* If not ok or warning of level 'note' */ |