Commit f88fe3ad authored by unknown's avatar unknown

Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0

into mysql.com:/usr/local/home/marty/MySQL/test/mysql-5.0-ndb
parents f06db3f3 04758c8b
...@@ -851,8 +851,8 @@ repeat ...@@ -851,8 +851,8 @@ repeat
begin begin
declare a char(16); declare a char(16);
declare b,c int; declare b,c int;
fetch c1 into a, b; fetch from c1 into a, b;
fetch c2 into c; fetch next from c2 into c;
if not done then if not done then
if b < c then if b < c then
insert into test.t3 values (a, b); insert into test.t3 values (a, b);
......
...@@ -953,8 +953,8 @@ begin ...@@ -953,8 +953,8 @@ begin
declare a char(16); declare a char(16);
declare b,c int; declare b,c int;
fetch c1 into a, b; fetch from c1 into a, b;
fetch c2 into c; fetch next from c2 into c;
if not done then if not done then
if b < c then if b < c then
insert into test.t3 values (a, b); insert into test.t3 values (a, b);
......
...@@ -792,7 +792,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); ...@@ -792,7 +792,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
sp_c_chistics sp_a_chistics sp_chistic sp_c_chistic sp_c_chistics sp_a_chistics sp_chistic sp_c_chistic
END_OF_INPUT END_OF_INPUT
%type <NONE> call sp_proc_stmts sp_proc_stmt %type <NONE> call sp_proc_stmts sp_proc_stmts1 sp_proc_stmt
%type <num> sp_decl_idents sp_opt_inout sp_handler_type sp_hcond_list %type <num> sp_decl_idents sp_opt_inout sp_handler_type sp_hcond_list
%type <spcondtype> sp_cond sp_hcond %type <spcondtype> sp_cond sp_hcond
%type <spblock> sp_decls sp_decl %type <spblock> sp_decls sp_decl
...@@ -1507,7 +1507,11 @@ sp_opt_inout: ...@@ -1507,7 +1507,11 @@ sp_opt_inout:
sp_proc_stmts: sp_proc_stmts:
/* Empty */ {} /* Empty */ {}
| sp_proc_stmts { Lex->query_tables= 0; } sp_proc_stmt ';' | sp_proc_stmts { Lex->query_tables= 0; } sp_proc_stmt ';'
;
sp_proc_stmts1:
sp_proc_stmt ';' {}
| sp_proc_stmts1 { Lex->query_tables= 0; } sp_proc_stmt ';'
; ;
sp_decls: sp_decls:
...@@ -2070,16 +2074,16 @@ sp_proc_stmt: ...@@ -2070,16 +2074,16 @@ sp_proc_stmt:
i= new sp_instr_copen(sp->instructions(), lex->spcont, offset); i= new sp_instr_copen(sp->instructions(), lex->spcont, offset);
sp->add_instr(i); sp->add_instr(i);
} }
| FETCH_SYM ident INTO | FETCH_SYM sp_opt_fetch_noise ident INTO
{ {
LEX *lex= Lex; LEX *lex= Lex;
sp_head *sp= lex->sphead; sp_head *sp= lex->sphead;
uint offset; uint offset;
sp_instr_cfetch *i; sp_instr_cfetch *i;
if (! lex->spcont->find_cursor(&$2, &offset)) if (! lex->spcont->find_cursor(&$3, &offset))
{ {
net_printf(YYTHD, ER_SP_CURSOR_MISMATCH, $2.str); net_printf(YYTHD, ER_SP_CURSOR_MISMATCH, $3.str);
YYABORT; YYABORT;
} }
i= new sp_instr_cfetch(sp->instructions(), lex->spcont, offset); i= new sp_instr_cfetch(sp->instructions(), lex->spcont, offset);
...@@ -2104,6 +2108,12 @@ sp_proc_stmt: ...@@ -2104,6 +2108,12 @@ sp_proc_stmt:
} }
; ;
sp_opt_fetch_noise:
/* Empty */
| NEXT_SYM FROM
| FROM
;
sp_fetch_list: sp_fetch_list:
ident ident
{ {
...@@ -2164,7 +2174,7 @@ sp_if: ...@@ -2164,7 +2174,7 @@ sp_if:
sp->push_backpatch(i, ctx->push_label((char *)"", 0)); sp->push_backpatch(i, ctx->push_label((char *)"", 0));
sp->add_instr(i); sp->add_instr(i);
} }
sp_proc_stmts sp_proc_stmts1
{ {
sp_head *sp= Lex->sphead; sp_head *sp= Lex->sphead;
sp_pcontext *ctx= Lex->spcont; sp_pcontext *ctx= Lex->spcont;
...@@ -2186,7 +2196,7 @@ sp_if: ...@@ -2186,7 +2196,7 @@ sp_if:
sp_elseifs: sp_elseifs:
/* Empty */ /* Empty */
| ELSEIF_SYM sp_if | ELSEIF_SYM sp_if
| ELSE sp_proc_stmts | ELSE sp_proc_stmts1
; ;
sp_case: sp_case:
...@@ -2218,7 +2228,7 @@ sp_case: ...@@ -2218,7 +2228,7 @@ sp_case:
lex->query_tables= 0; lex->query_tables= 0;
sp->add_instr(i); sp->add_instr(i);
} }
sp_proc_stmts sp_proc_stmts1
{ {
sp_head *sp= Lex->sphead; sp_head *sp= Lex->sphead;
sp_pcontext *ctx= Lex->spcont; sp_pcontext *ctx= Lex->spcont;
...@@ -2247,7 +2257,7 @@ sp_whens: ...@@ -2247,7 +2257,7 @@ sp_whens:
sp->add_instr(i); sp->add_instr(i);
} }
| ELSE sp_proc_stmts {} | ELSE sp_proc_stmts1 {}
| WHEN_SYM sp_case {} | WHEN_SYM sp_case {}
; ;
...@@ -2325,7 +2335,7 @@ sp_unlabeled_control: ...@@ -2325,7 +2335,7 @@ sp_unlabeled_control:
lex->spcont= ctx->pop_context(); lex->spcont= ctx->pop_context();
} }
| LOOP_SYM | LOOP_SYM
sp_proc_stmts END LOOP_SYM sp_proc_stmts1 END LOOP_SYM
{ {
LEX *lex= Lex; LEX *lex= Lex;
uint ip= lex->sphead->instructions(); uint ip= lex->sphead->instructions();
...@@ -2348,7 +2358,7 @@ sp_unlabeled_control: ...@@ -2348,7 +2358,7 @@ sp_unlabeled_control:
lex->query_tables= 0; lex->query_tables= 0;
sp->add_instr(i); sp->add_instr(i);
} }
sp_proc_stmts END WHILE_SYM sp_proc_stmts1 END WHILE_SYM
{ {
LEX *lex= Lex; LEX *lex= Lex;
uint ip= lex->sphead->instructions(); uint ip= lex->sphead->instructions();
...@@ -2357,7 +2367,7 @@ sp_unlabeled_control: ...@@ -2357,7 +2367,7 @@ sp_unlabeled_control:
lex->sphead->add_instr(i); lex->sphead->add_instr(i);
} }
| REPEAT_SYM sp_proc_stmts UNTIL_SYM expr END REPEAT_SYM | REPEAT_SYM sp_proc_stmts1 UNTIL_SYM expr END REPEAT_SYM
{ {
LEX *lex= Lex; LEX *lex= Lex;
uint ip= lex->sphead->instructions(); uint ip= lex->sphead->instructions();
...@@ -5473,7 +5483,7 @@ drop: ...@@ -5473,7 +5483,7 @@ drop:
lex->drop_if_exists=$3; lex->drop_if_exists=$3;
lex->name=$4.str; lex->name=$4.str;
} }
| DROP FUNCTION_SYM if_exists sp_name opt_restrict | DROP FUNCTION_SYM if_exists sp_name
{ {
LEX *lex=Lex; LEX *lex=Lex;
if (lex->sphead) if (lex->sphead)
...@@ -5485,7 +5495,7 @@ drop: ...@@ -5485,7 +5495,7 @@ drop:
lex->drop_if_exists= $3; lex->drop_if_exists= $3;
lex->spname= $4; lex->spname= $4;
} }
| DROP PROCEDURE if_exists sp_name opt_restrict | DROP PROCEDURE if_exists sp_name
{ {
LEX *lex=Lex; LEX *lex=Lex;
if (lex->sphead) if (lex->sphead)
......
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