mirror of
https://github.com/MariaDB/server.git
synced 2026-05-10 00:54:30 +02:00
Merge mysql.com:/home/cps/mysql/trees/4.1-runtime-bug9191
into mysql.com:/home/cps/mysql/trees/5.0-runtime-bug9191 configure.in: Auto merged include/my_time.h: Auto merged mysql-test/r/func_time.result: Auto merged mysql-test/r/timezone2.result: Auto merged mysql-test/t/func_time.test: Auto merged mysql-test/t/timezone2.test: Auto merged sql/mysql_priv.h: Auto merged sql/time.cc: Auto merged BitKeeper/deleted/.del-acinclude.m4~f4ab416bac5003: Auto merged sql-common/my_time.c: manual merge sql/item_timefunc.cc: manual merge sql/tztime.cc: manual merge
This commit is contained in:
commit
b2c40c1698
16 changed files with 358 additions and 68 deletions
|
|
@ -38,6 +38,14 @@ typedef long my_time_t;
|
|||
#define MY_TIME_T_MAX LONG_MAX
|
||||
#define MY_TIME_T_MIN LONG_MIN
|
||||
|
||||
|
||||
/* Time handling defaults */
|
||||
#define TIMESTAMP_MAX_YEAR 2038
|
||||
#define YY_PART_YEAR 70
|
||||
#define TIMESTAMP_MIN_YEAR (1900 + YY_PART_YEAR - 1)
|
||||
#define TIMESTAMP_MAX_VALUE INT_MAX32
|
||||
#define TIMESTAMP_MIN_VALUE 1
|
||||
|
||||
#define YY_PART_YEAR 70
|
||||
|
||||
/* Flags to str_to_datetime */
|
||||
|
|
@ -68,6 +76,30 @@ uint calc_days_in_year(uint year);
|
|||
|
||||
void init_time(void);
|
||||
|
||||
|
||||
/*
|
||||
Function to check sanity of a TIMESTAMP value
|
||||
|
||||
DESCRIPTION
|
||||
Check if a given MYSQL_TIME value fits in TIMESTAMP range.
|
||||
This function doesn't make precise check, but rather a rough
|
||||
estimate.
|
||||
|
||||
RETURN VALUES
|
||||
FALSE The value seems sane
|
||||
TRUE The MYSQL_TIME value is definitely out of range
|
||||
*/
|
||||
|
||||
static inline bool validate_timestamp_range(const MYSQL_TIME *t)
|
||||
{
|
||||
if ((t->year > TIMESTAMP_MAX_YEAR || t->year < TIMESTAMP_MIN_YEAR) ||
|
||||
(t->year == TIMESTAMP_MAX_YEAR && (t->month > 1 || t->day > 19)) ||
|
||||
(t->year == TIMESTAMP_MIN_YEAR && (t->month < 12 || t->day < 31)))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
my_time_t
|
||||
my_system_gmt_sec(const MYSQL_TIME *t, long *my_timezone,
|
||||
my_bool *in_dst_time_gap);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue