diff options
author | unknown <andrey@lmy004.> | 2006-03-17 09:40:48 +0100 |
---|---|---|
committer | unknown <andrey@lmy004.> | 2006-03-17 09:40:48 +0100 |
commit | a9e6af8ddf93afb554a1c06fba74954b83e1d7c9 (patch) | |
tree | f9e4d7eaf815b7fe2beb165bc1635490583786f4 /sql | |
parent | be423af414cd7d56d8bb03532b2c1be9128cbc21 (diff) | |
parent | bcc6821b25aee9380add5d0478689b5eb2ef677e (diff) | |
download | mariadb-git-a9e6af8ddf93afb554a1c06fba74954b83e1d7c9.tar.gz |
manual merge
sql/event_timed.cc:
Auto merged
Diffstat (limited to 'sql')
-rw-r--r-- | sql/event_timed.cc | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/sql/event_timed.cc b/sql/event_timed.cc index b0e818a4e48..eb97d6c87d6 100644 --- a/sql/event_timed.cc +++ b/sql/event_timed.cc @@ -151,6 +151,7 @@ Event_timed::init_execute_at(THD *thd, Item *expr) { my_bool not_used; TIME ltime; + my_time_t t; TIME time_tmp; DBUG_ENTER("Event_timed::init_execute_at"); @@ -174,12 +175,18 @@ Event_timed::init_execute_at(THD *thd, Item *expr) TIME_to_ulonglong_datetime(&time_tmp)) DBUG_RETURN(EVEX_BAD_PARAMS); - /* This may result in a 1970-01-01 date if ltime is > 2037-xx-xx. CONVERT_TZ has similar problem. + mysql_priv.h currently lists + #define TIMESTAMP_MAX_YEAR 2038 (see TIME_to_timestamp()) */ - my_tz_UTC->gmt_sec_to_TIME(<ime, TIME_to_timestamp(thd,<ime, ¬_used)); + my_tz_UTC->gmt_sec_to_TIME(<ime,t=TIME_to_timestamp(thd,<ime,¬_used)); + if (!t) + { + DBUG_PRINT("error", ("Execute AT after year 2037")); + DBUG_RETURN(ER_WRONG_VALUE); + } execute_at_null= FALSE; execute_at= ltime; @@ -302,6 +309,7 @@ Event_timed::init_interval(THD *thd, Item *expr, interval_type new_interval) RETURNS 0 OK EVEX_PARSE_ERROR fix_fields failed + EVEX_BAD_PARAMS starts before now */ int @@ -309,6 +317,7 @@ Event_timed::init_starts(THD *thd, Item *new_starts) { my_bool not_used; TIME ltime, time_tmp; + my_time_t t; DBUG_ENTER("Event_timed::init_starts"); @@ -329,10 +338,17 @@ Event_timed::init_starts(THD *thd, Item *new_starts) DBUG_RETURN(EVEX_BAD_PARAMS); /* - This may result in a 1970-01-01 date if ltime is > 2037-xx-xx - CONVERT_TZ has similar problem + This may result in a 1970-01-01 date if ltime is > 2037-xx-xx. + CONVERT_TZ has similar problem. + mysql_priv.h currently lists + #define TIMESTAMP_MAX_YEAR 2038 (see TIME_to_timestamp()) */ - my_tz_UTC->gmt_sec_to_TIME(<ime, TIME_to_timestamp(thd, <ime, ¬_used)); + my_tz_UTC->gmt_sec_to_TIME(<ime,t=TIME_to_timestamp(thd, <ime, ¬_used)); + if (!t) + { + DBUG_PRINT("error", ("STARTS after year 2037")); + DBUG_RETURN(EVEX_BAD_PARAMS); + } starts= ltime; starts_null= FALSE; @@ -359,6 +375,7 @@ Event_timed::init_starts(THD *thd, Item *new_starts) RETURNS 0 OK EVEX_PARSE_ERROR fix_fields failed + ER_WRONG_VALUE starts distant date (after year 2037) EVEX_BAD_PARAMS ENDS before STARTS */ @@ -367,6 +384,7 @@ Event_timed::init_ends(THD *thd, Item *new_ends) { TIME ltime, ltime_now; my_bool not_used; + my_time_t t; DBUG_ENTER("Event_timed::init_ends"); @@ -378,11 +396,18 @@ Event_timed::init_ends(THD *thd, Item *new_ends) DBUG_RETURN(EVEX_BAD_PARAMS); /* - This may result in a 1970-01-01 date if ltime is > 2037-xx-xx ? - CONVERT_TZ has similar problem ? + This may result in a 1970-01-01 date if ltime is > 2037-xx-xx. + CONVERT_TZ has similar problem. + mysql_priv.h currently lists + #define TIMESTAMP_MAX_YEAR 2038 (see TIME_to_timestamp()) */ DBUG_PRINT("info", ("get the UTC time")); - my_tz_UTC->gmt_sec_to_TIME(<ime, TIME_to_timestamp(thd, <ime, ¬_used)); + my_tz_UTC->gmt_sec_to_TIME(<ime,t=TIME_to_timestamp(thd, <ime, ¬_used)); + if (!t) + { + DBUG_PRINT("error", ("ENDS after year 2037")); + DBUG_RETURN(EVEX_BAD_PARAMS); + } /* Check whether ends is after starts */ DBUG_PRINT("info", ("ENDS after STARTS?")); |