summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r--sql/sql_yacc.yy47
1 files changed, 35 insertions, 12 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index f7277f6ca21..6589018060d 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -1411,12 +1411,13 @@ ev_schedule_time: EVERY_SYM expr interval
}
;
-ev_status: /* empty */
+ev_status: /* empty */ {$<ulong_num>$= 0;}
| ENABLED_SYM
{
LEX *lex=Lex;
if (!lex->et_compile_phase)
- lex->et->status= MYSQL_EVENT_ENABLED;
+ lex->et->status= MYSQL_EVENT_ENABLED;
+ $<ulong_num>$= 1;
}
| DISABLED_SYM
{
@@ -1424,6 +1425,7 @@ ev_status: /* empty */
if (!lex->et_compile_phase)
lex->et->status= MYSQL_EVENT_DISABLED;
+ $<ulong_num>$= 1;
}
;
ev_starts: /* empty */
@@ -1453,21 +1455,23 @@ ev_ends: /* empty */
}
}
;
-ev_on_completion: /* empty */
+ev_on_completion: /* empty */ {$<ulong_num>$= 0;}
| ON COMPLETION_SYM PRESERVE_SYM
{
LEX *lex=Lex;
if (!lex->et_compile_phase)
- lex->et->on_completion= MYSQL_EVENT_ON_COMPLETION_PRESERVE;
+ lex->et->on_completion= MYSQL_EVENT_ON_COMPLETION_PRESERVE;
+ $<ulong_num>$= 1;
}
| ON COMPLETION_SYM NOT_SYM PRESERVE_SYM
{
LEX *lex=Lex;
if (!lex->et_compile_phase)
- lex->et->on_completion= MYSQL_EVENT_ON_COMPLETION_DROP;
+ lex->et->on_completion= MYSQL_EVENT_ON_COMPLETION_DROP;
+ $<ulong_num>$= 1;
}
;
-ev_comment: /* empty */
+ev_comment: /* empty */ {$<ulong_num>$= 0;}
| COMMENT_SYM TEXT_STRING_sys
{
LEX *lex= Lex;
@@ -1476,6 +1480,7 @@ ev_comment: /* empty */
lex->comment= $2;
lex->et->init_comment(YYTHD, &$2);
}
+ $<ulong_num>$= 1;
}
;
@@ -4270,24 +4275,42 @@ alter:
sql_command is set here because some rules in ev_sql_stmt
can overwrite it
*/
+ printf("5=%d 6=%d 7=%d 8=%d 9=%d 10=%d", $<ulong_num>5 , $<ulong_num>6 , $<ulong_num>7 ,
+ $<ulong_num>8 , $<ulong_num>9 , $<ulong_num>10);
+ if (!($<ulong_num>5 || $<ulong_num>6 || $<ulong_num>7 ||
+ $<ulong_num>8 || $<ulong_num>9 || $<ulong_num>10))
+ {
+ yyerror(ER(ER_SYNTAX_ERROR));
+ YYABORT;
+ }
Lex->sql_command= SQLCOM_ALTER_EVENT;
}
;
-ev_on_schedule: /* empty */
- | ON SCHEDULE_SYM ev_schedule_time;
-
-ev_opt_sql_stmt: /* empty*/
- | DO_SYM ev_sql_stmt;
+ev_on_schedule: /* empty */ { $<ulong_num>$= 0;}
+ | ON SCHEDULE_SYM ev_schedule_time
+ {
+ $<ulong_num>$= 1;
+ }
+ ;
-ev_rename_to: /* empty */
+ev_rename_to: /* empty */ { $<ulong_num>$= 0;}
| RENAME TO_SYM sp_name
{
LEX *lex=Lex;
lex->spname= $3; //use lex's spname to hold the new name
//the original name is in the event_timed object
+ $<ulong_num>$= 1;
}
;
+
+ev_opt_sql_stmt: /* empty*/ { $<ulong_num>$= 0;}
+ | DO_SYM ev_sql_stmt
+ {
+ $<ulong_num>$= 1;
+ }
+ ;
+
ident_or_empty:
/* empty */ { $$= 0; }