summaryrefslogtreecommitdiff
path: root/sql/sql_time.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2023-02-14 11:52:10 +0400
committerAlexander Barkov <bar@mariadb.com>2023-02-14 11:55:26 +0400
commitd3d9514dd9f752f682024197463abc233a3008bd (patch)
tree54724aa95ab07ee8cca0b15bc4aeadf6c34deb1a /sql/sql_time.cc
parent8c1ad2a9fe940376d7cb79515685138e3591e5b7 (diff)
downloadmariadb-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.cc9
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)