diff options
author | Sergei Golubchik <sergii@pisem.net> | 2013-07-11 23:16:33 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2013-07-11 23:16:33 +0200 |
commit | 4d57bfdd485f45729031295295d78117fc5b3509 (patch) | |
tree | 07e73d6239c236adb274afe23ebb6734d2546c43 /sql/item_timefunc.cc | |
parent | 82403c0bb1c084b00670a51e0555920286512f2e (diff) | |
download | mariadb-git-4d57bfdd485f45729031295295d78117fc5b3509.tar.gz |
temporal-related changes. don't apply sql_mode flags on the lower level (str_to_datetime),
do it on the upper level, in items that return temporal values.
update tests results to match 5.6 better and to fix old bugs.
Diffstat (limited to 'sql/item_timefunc.cc')
-rw-r--r-- | sql/item_timefunc.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index 011fd06211f..e9a6727162a 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -2433,6 +2433,7 @@ bool Item_time_typecast::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date) bool Item_date_typecast::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date) { + fuzzy_date |= sql_mode_for_dates(); if (get_arg0_date(ltime, fuzzy_date & ~TIME_TIME_ONLY)) return 1; @@ -2454,6 +2455,7 @@ bool Item_date_typecast::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date) bool Item_datetime_typecast::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date) { + fuzzy_date |= sql_mode_for_dates(); if (get_arg0_date(ltime, fuzzy_date & ~TIME_TIME_ONLY)) return 1; @@ -3123,7 +3125,7 @@ bool Item_func_str_to_date::get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date) date_time_format.format.length= format->length(); if (extract_date_time(&date_time_format, val->ptr(), val->length(), ltime, cached_timestamp_type, 0, "datetime", - fuzzy_date)) + fuzzy_date | sql_mode_for_dates())) return (null_value=1); if (cached_timestamp_type == MYSQL_TIMESTAMP_TIME && ltime->day) { |