mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fix for bug #19370: DateTime datatype in MySQL has two bugs in it
mysql-test/r/date_formats.result: Fix for bug #19370: DateTime datatype in MySQL has two bugs in it - results adjusted mysql-test/r/strict.result: Fix for bug #19370: DateTime datatype in MySQL has two bugs in it - results adjusted mysql-test/r/type_datetime.result: Fix for bug #19370: DateTime datatype in MySQL has two bugs in it - results adjusted mysql-test/t/strict.test: Fix for bug #19370: DateTime datatype in MySQL has two bugs in it - tests adjusted sql-common/my_time.c: Fix for bug #19370: DateTime datatype in MySQL has two bugs in it - Regardless of the title of the bug the only real bug is that it doesn't make sense to have only some invalid parts in a date. E.g. a valid day among invalid years or months is totally ambiguous and we should refuse to guess what it means. To fix it, we add a check that both the year is zero and either day or month are zero (year and (day or month)), and if they are then we reject such dates. Doing so should adequately fix the reported problem.
This commit is contained in:
@ -449,6 +449,8 @@ create table t1 select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%
|
||||
str_to_date("10:11:12.0012", "%H:%i:%S.%f") as f2,
|
||||
str_to_date("2003-01-02", "%Y-%m-%d") as f3,
|
||||
str_to_date("02", "%d") as f4, str_to_date("02 10", "%d %H") as f5;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f4' at row 1
|
||||
describe t1;
|
||||
Field Type Null Key Default Extra
|
||||
f1 datetime YES NULL
|
||||
@ -458,7 +460,7 @@ f4 date YES NULL
|
||||
f5 time YES NULL
|
||||
select * from t1;
|
||||
f1 f2 f3 f4 f5
|
||||
2003-01-02 10:11:12 10:11:12 2003-01-02 0000-00-02 58:00:00
|
||||
2003-01-02 10:11:12 10:11:12 2003-01-02 0000-00-00 58:00:00
|
||||
drop table t1;
|
||||
create table t1 select "02 10" as a, "%d %H" as b;
|
||||
select str_to_date(a,b) from t1;
|
||||
|
Reference in New Issue
Block a user