summaryrefslogtreecommitdiff
path: root/sql/item_timefunc.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2018-10-01 12:34:03 +0400
committerAlexander Barkov <bar@mariadb.com>2018-10-01 12:34:03 +0400
commite5aebc1408f1413f6251400956da872c9b4f51b6 (patch)
treea69ac2523b4fea8915cb62490c9033da7cb154f8 /sql/item_timefunc.cc
parentf79bab3ae68393cb2f36fa83546e8ea02b7d0420 (diff)
downloadmariadb-git-e5aebc1408f1413f6251400956da872c9b4f51b6.tar.gz
A cleanup for MDEV-17317 Add THD* parameter into Item::get_date() and stricter data type control to "fuzzydate"
Fixing C++ function check_date() to get the "fuzzydate" as date_mode_t rather than ulonglong, so conversion from date_time_t to ulonglong is now done inside C++ check_date(), and no conversion is needed in the callers' code. As an additional safety, modified the code not to pass TIME_FUZZY_DATE to the low level C functions: - check_date() - str_to_datetime() - str_to_time() - number_to_datetime() because TIME_FUZZY_DATE is known only on the C++ level, C functions do not know it. Soon we'll be adding more flags into the C++ level (i.e. to date_time_t), e.g. for rounding. It's a good idea to prevent passing C++ specific flags into pure C routines before this change. Asserts were added into the affected C functions to verify that the caller passed only known C level flags.
Diffstat (limited to 'sql/item_timefunc.cc')
-rw-r--r--sql/item_timefunc.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc
index 94757e16d41..6d88ef2185a 100644
--- a/sql/item_timefunc.cc
+++ b/sql/item_timefunc.cc
@@ -441,7 +441,7 @@ static bool extract_date_time(THD *thd, DATE_TIME_FORMAT *format,
goto err;
int was_cut;
- if (check_date(l_time, ulonglong(fuzzydate | TIME_INVALID_DATES), &was_cut))
+ if (check_date(l_time, fuzzydate | TIME_INVALID_DATES, &was_cut))
goto err;
if (val != val_end)