mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Fix for Bug#34274: Invalid handling of 'DEFAULT 0'
for YEAR data type. The problem was that for some unknown reason 0 was not allowed as a default value for YEAR data type. That was coded before BK. However the Manual does not say a word about such a limitation. Also, it looks inconsistent with other data types. The fix is to allow 0 as a default value. mysql-test/r/create.result: Update result file. mysql-test/t/create.test: Add a test case for Bug#34274: Invalid handling of 'DEFAULT 0' for YEAR data type. sql/unireg.cc: Allow 0 as a default value for YEAR data type.
This commit is contained in:
@ -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
|
||||
|
@ -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
|
||||
|
@ -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' */
|
||||
|
Reference in New Issue
Block a user