summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
authorvva@eagle.mysql.r18.ru <>2003-01-23 17:00:31 +0400
committervva@eagle.mysql.r18.ru <>2003-01-23 17:00:31 +0400
commit1fd4866322ce98e5b4eaf7454005f7ef150ce120 (patch)
tree4826ec10d265626686e84175d7e5efb9011caaf2 /sql/sql_yacc.yy
parent4b0adb203b35a3313cd4614053c7935aa70b1ddc (diff)
downloadmariadb-git-1fd4866322ce98e5b4eaf7454005f7ef150ce120.tar.gz
solve the lex conflict between the existing repeat() function
and repeat SP-construction
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r--sql/sql_yacc.yy9
1 files changed, 5 insertions, 4 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 2cc2f674d4a..3248048d304 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -535,8 +535,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token ITERATE_SYM
%token LEAVE_SYM
%token LOOP_SYM
-/* QQ This is temporary, until the REPEAT conflict is solved. */
-%token SPREPEAT_SYM
+%token REPEAT_SYM
%token UNTIL_SYM
%token WHILE_SYM
%token ASENSITIVE_SYM
@@ -1284,8 +1283,8 @@ sp_unlabeled_control:
lex->sphead->add_instr(i);
}
- | SPREPEAT_SYM sp_proc_stmts UNTIL_SYM expr END SPREPEAT_SYM
- { /* ^^ QQ temp. until conflict solved ^^ */
+ | REPEAT_SYM sp_proc_stmts UNTIL_SYM expr END REPEAT_SYM
+ {
LEX *lex= Lex;
uint ip= lex->sphead->instructions();
sp_label_t *lab= lex->spcont->last_label(); /* Jumping back */
@@ -2517,6 +2516,8 @@ simple_expr:
{ $$= ((Item*(*)(Item*,Item*))($1.symbol->create_func))($3,$5);}
| FUNC_ARG3 '(' expr ',' expr ',' expr ')'
{ $$= ((Item*(*)(Item*,Item*,Item*))($1.symbol->create_func))($3,$5,$7);}
+ | REPEAT_SYM '(' expr ',' expr ')'
+ { $$= new Item_func_repeat($3,$5); }
| ATAN '(' expr ')'
{ $$= new Item_func_atan($3); }
| ATAN '(' expr ',' expr ')'