mirror of
https://github.com/MariaDB/server.git
synced 2025-07-02 14:22:51 +03:00
Bug #21564557: INCONSISTENT OUTPUT FROM 5.5 AND 5.6
UNIX_TIMESTAMP(STR_TO_DATE('201506', "%Y%M" Issue: ----- When an invalid date is supplied to the UNIX_TIMESTAMP function from STR_TO_DATE, no check is performed before converting it to a timestamp value. SOLUTION: --------- Add the check_date function and only if it succeeds, proceed to the timestamp conversion. No warning will be returned for dates having zero in month/date, since partial dates are allowed. UNIX_TIMESTAMP will return only a zero for such values. The problem has been handled in 5.6+ with WL#946.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -91,6 +91,11 @@ inline bool parse_date_time_format(timestamp_type format_type,
|
||||
date_time_format);
|
||||
}
|
||||
|
||||
static inline bool
|
||||
non_zero_date(const MYSQL_TIME *ltime)
|
||||
{
|
||||
return ltime->year || ltime->month || ltime->day;
|
||||
}
|
||||
|
||||
extern DATE_TIME_FORMAT global_date_format;
|
||||
extern DATE_TIME_FORMAT global_datetime_format;
|
||||
|
Reference in New Issue
Block a user