Commit 50c6b016 authored by unknown's avatar unknown

fix for bug#16434 (Events: Illegal dates don't cause errors)

(post-review commit)
WL#1034 (Internal CRON)


sql/event_timed.cc:
  remove bogus check
sql/share/errmsg.txt:
  change error messages
sql/sql_yacc.yy:
  handle error code returned by event_timed::init_starts()
parent 08378157
......@@ -238,9 +238,6 @@ event_timed::init_starts(THD *thd, Item *new_starts)
if (new_starts->fix_fields(thd, &new_starts))
DBUG_RETURN(EVEX_PARSE_ERROR);
if (new_starts->val_int() == MYSQL_TIMESTAMP_ERROR)
DBUG_RETURN(EVEX_BAD_PARAMS);
if ((not_used= new_starts->get_date(&ltime, TIME_NO_ZERO_DATE)))
DBUG_RETURN(EVEX_BAD_PARAMS);
......
......@@ -5760,7 +5760,7 @@ ER_EVENT_DROP_FAILED
ER_EVENT_INTERVAL_NOT_POSITIVE
eng "INTERVAL must be positive"
ER_EVENT_ENDS_BEFORE_STARTS
eng "ENDS must be after STARTS"
eng "ENDS is either invalid or before STARTS"
ER_EVENT_EXEC_TIME_IN_THE_PAST
eng "Activation (AT) time is in the past"
ER_EVENT_OPEN_TABLE_FAILED
......
......@@ -1467,7 +1467,25 @@ ev_starts: /* empty */
{
LEX *lex= Lex;
if (!lex->et_compile_phase)
lex->et->init_starts(YYTHD, $2);
{
switch (lex->et->init_starts(YYTHD, $2)) {
case EVEX_PARSE_ERROR:
yyerror(ER(ER_SYNTAX_ERROR));
YYABORT;
break;
case EVEX_BAD_PARAMS:
{
char buff[20];
String str(buff,(uint32) sizeof(buff), system_charset_info);
String *str2= $2->val_str(&str);
my_error(ER_WRONG_VALUE, MYF(0), "STARTS", str2? str2->c_ptr():
NULL);
YYABORT;
break;
}
}
}
}
;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment