mirror of
https://github.com/MariaDB/server.git
synced 2026-04-22 08:15:31 +02:00
Fix number to date conversion so it always honors the NO_ZERO_DATE,
NO_ZERO_IN_DATE, and INVALID_DATES bits of SQL_MODE. (Bug #5906) include/my_time.h: Pass flags to number_to_datetime() so it can check things like NO_ZERO_DATE. libmysql/libmysql.c: Enable fuzzy date handling when converting strings and numbers to datetime fields. mysql-test/r/ps_2myisam.result: Update results mysql-test/r/ps_3innodb.result: Update results mysql-test/r/ps_4heap.result: Update results mysql-test/r/ps_5merge.result: Update results mysql-test/r/ps_6bdb.result: Update results mysql-test/r/ps_7ndb.result: Update results mysql-test/r/strict.result: Update results mysql-test/r/timezone2.result: Update results mysql-test/r/type_datetime.result: Update results mysql-test/t/strict.test: Add new regression test mysql-test/t/timezone2.test: Add new test of timestamp values in DST gap sql-common/my_time.c: Expand check_date() to check NO_ZERO_DATE and NO_ZERO_IN_DATE, and use it from number_to_datetime() as well as str_to_datetime(). Also, make number_to_datetime() return -1 on error so we can distinguish between a violation of NO_ZERO_DATE and other errors. sql/field.cc: Update conversion of numbers to date, datetime, and timestamp to use number_to_datetime() and report errors and warnings correctly and consistently.
This commit is contained in:
parent
b7033fb37b
commit
5958f22a62
15 changed files with 221 additions and 196 deletions
|
|
@ -40,6 +40,12 @@ insert into t1 (i, ts) values
|
|||
Warnings:
|
||||
Warning 1299 Invalid TIMESTAMP value in column 'ts' at row 2
|
||||
insert into t1 (i, ts) values
|
||||
(unix_timestamp(20030330015959),20030330015959),
|
||||
(unix_timestamp(20030330023000),20030330023000),
|
||||
(unix_timestamp(20030330030000),20030330030000);
|
||||
Warnings:
|
||||
Warning 1299 Invalid TIMESTAMP value in column 'ts' at row 2
|
||||
insert into t1 (i, ts) values
|
||||
(unix_timestamp('2003-05-01 00:00:00'),'2003-05-01 00:00:00');
|
||||
insert into t1 (i, ts) values
|
||||
(unix_timestamp('2003-10-26 01:00:00'),'2003-10-26 01:00:00'),
|
||||
|
|
@ -54,6 +60,9 @@ i ts
|
|||
1048985999 2003-03-30 00:59:59
|
||||
1048986000 2003-03-30 01:00:00
|
||||
1048986000 2003-03-30 01:00:00
|
||||
1048985999 2003-03-30 00:59:59
|
||||
1048986000 2003-03-30 01:00:00
|
||||
1048986000 2003-03-30 01:00:00
|
||||
1051740000 2003-04-30 22:00:00
|
||||
1067122800 2003-10-25 23:00:00
|
||||
1067126400 2003-10-26 00:00:00
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue