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.
|
# -- 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
|
End of 5.1 tests
|
||||||
|
@ -1365,6 +1365,8 @@ create table t1 like information_schema.character_sets;
|
|||||||
show create table t1;
|
show create table t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
--echo
|
--echo
|
||||||
--echo # --
|
--echo # --
|
||||||
--echo # -- Bug#21380: DEFAULT definition not always transfered by CREATE
|
--echo # -- Bug#21380: DEFAULT definition not always transfered by CREATE
|
||||||
@ -1407,8 +1409,10 @@ DROP TABLE t2;
|
|||||||
|
|
||||||
--echo
|
--echo
|
||||||
--echo # -- End of test case for Bug#21380.
|
--echo # -- End of test case for Bug#21380.
|
||||||
--echo
|
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
--echo
|
||||||
--echo # --
|
--echo # --
|
||||||
--echo # -- Bug#18834: ALTER TABLE ADD INDEX on table with two timestamp fields
|
--echo # -- Bug#18834: ALTER TABLE ADD INDEX on table with two timestamp fields
|
||||||
--echo # --
|
--echo # --
|
||||||
@ -1471,6 +1475,50 @@ DROP TABLE t3;
|
|||||||
|
|
||||||
--echo
|
--echo
|
||||||
--echo # -- End of Bug#18834.
|
--echo # -- End of Bug#18834.
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
--echo
|
||||||
|
--echo # --
|
||||||
|
--echo # -- Bug#34274: Invalid handling of 'DEFAULT 0' for YEAR data type.
|
||||||
|
--echo # --
|
||||||
--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
|
--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);
|
type= (Field::utype) MTYP_TYPENR(field->unireg_check);
|
||||||
|
|
||||||
if (field->def &&
|
if (field->def)
|
||||||
(regfield->real_type() != MYSQL_TYPE_YEAR ||
|
|
||||||
field->def->val_int() != 0))
|
|
||||||
{
|
{
|
||||||
int res= field->def->save_in_field(regfield, 1);
|
int res= field->def->save_in_field(regfield, 1);
|
||||||
/* If not ok or warning of level 'note' */
|
/* If not ok or warning of level 'note' */
|
||||||
|
Reference in New Issue
Block a user