diff options
author | Alexander Barkov <bar@mariadb.com> | 2023-02-14 11:52:10 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2023-02-14 11:55:26 +0400 |
commit | d3d9514dd9f752f682024197463abc233a3008bd (patch) | |
tree | 54724aa95ab07ee8cca0b15bc4aeadf6c34deb1a /sql/sql_time.cc | |
parent | 8c1ad2a9fe940376d7cb79515685138e3591e5b7 (diff) | |
download | mariadb-git-bb-11.0-bar-MDEV-15750.tar.gz |
MDEV-15750 preserve MYSQL_TYPE_TIMESTAMP in temporal arithmeticbb-11.0-bar-MDEV-15750
In progress.
Diffstat (limited to 'sql/sql_time.cc')
-rw-r--r-- | sql/sql_time.cc | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/sql/sql_time.cc b/sql/sql_time.cc index 6899654c28f..3119a010794 100644 --- a/sql/sql_time.cc +++ b/sql/sql_time.cc @@ -24,8 +24,6 @@ #include <m_ctype.h> -#define MAX_DAY_NUMBER 3652424L - /* Some functions to calculate dates */ /* @@ -236,7 +234,7 @@ bool get_date_from_daynr(long daynr,uint *ret_year,uint *ret_month, uchar *month_pos; DBUG_ENTER("get_date_from_daynr"); - if (daynr < 366 || daynr > MAX_DAY_NUMBER) + if (daynr < 366 || daynr > Date::MAX_DAY_NUMBER()) DBUG_RETURN(1); year= (uint) (daynr*100 / 36525L); @@ -962,10 +960,7 @@ bool date_add_interval(THD *thd, MYSQL_TIME *ltime, interval_type int_type, my_bool neg= 0; enum enum_mysql_timestamp_type time_type= ltime->time_type; - if (((ulonglong) interval.day + - (ulonglong) interval.hour / 24 + - (ulonglong) interval.minute / 24 / 60 + - (ulonglong) interval.second / 24 / 60 / 60) > MAX_DAY_NUMBER) + if (interval.DDhhmmss_to_days_abs() > Date::MAX_DAY_NUMBER()) goto invalid_date; if (time_type != MYSQL_TIMESTAMP_TIME) |