Loading mysql-test/r/sp-code.result +9 −2 Original line number Diff line number Diff line Loading @@ -155,11 +155,11 @@ Pos Instruction 0 stmt 9 "drop temporary table if exists sudoku..." 1 stmt 1 "create temporary table sudoku_work ( ..." 2 stmt 1 "create temporary table sudoku_schedul..." 3 stmt 95 "call sudoku_init(" 3 stmt 95 "call sudoku_init()" 4 jump_if_not 7(8) p_naive@0 5 stmt 4 "update sudoku_work set cnt = 0 where ..." 6 jump 8 7 stmt 95 "call sudoku_count(" 7 stmt 95 "call sudoku_count()" 8 stmt 6 "insert into sudoku_schedule (row,col)..." 9 set v_scounter@2 0 10 set v_i@3 1 Loading Loading @@ -199,3 +199,10 @@ Pos Instruction 44 jump 14 45 stmt 9 "drop temporary table sudoku_work, sud..." drop procedure sudoku_solve; DROP PROCEDURE IF EXISTS p1; CREATE PROCEDURE p1() CREATE INDEX idx ON t1 (c1); SHOW PROCEDURE CODE p1; Pos Instruction 0 stmt 2 "CREATE INDEX idx ON t1 (c1)" DROP PROCEDURE p1; End of 5.0 tests. mysql-test/t/sp-code.test +22 −0 Original line number Diff line number Diff line Loading @@ -190,3 +190,25 @@ delimiter ;// show procedure code sudoku_solve; drop procedure sudoku_solve; # # Bug#19207: Final parenthesis omitted for CREATE INDEX in Stored # Procedure # # Wrong criteria was used to distinguish the case when there was no # lookahead performed in the parser. Bug affected only statements # ending in one-character token without any optional tail, like CREATE # INDEX and CALL. # --disable_warnings DROP PROCEDURE IF EXISTS p1; --enable_warnings CREATE PROCEDURE p1() CREATE INDEX idx ON t1 (c1); SHOW PROCEDURE CODE p1; DROP PROCEDURE p1; --echo End of 5.0 tests. sql/sql_yacc.yy +12 −4 Original line number Diff line number Diff line Loading @@ -1911,9 +1911,12 @@ sp_proc_stmt: sp_instr_stmt *i=new sp_instr_stmt(sp->instructions(), lex->spcont, lex); /* Extract the query statement from the tokenizer: The end is either lex->tok_end or tok->ptr. */ if (lex->ptr - lex->tok_end > 1) /* Extract the query statement from the tokenizer. The end is either lex->ptr, if there was no lookahead, lex->tok_end otherwise. */ if (yychar == YYEMPTY) i->m_query.length= lex->ptr - sp->m_tmp_query; else i->m_query.length= lex->tok_end - sp->m_tmp_query; Loading Loading @@ -7822,7 +7825,12 @@ option_type_value: lex))) YYABORT; if (lex->ptr - lex->tok_end > 1) /* Extract the query statement from the tokenizer. The end is either lex->ptr, if there was no lookahead, lex->tok_end otherwise. */ if (yychar == YYEMPTY) qbuff.length= lex->ptr - sp->m_tmp_query; else qbuff.length= lex->tok_end - sp->m_tmp_query; Loading Loading
mysql-test/r/sp-code.result +9 −2 Original line number Diff line number Diff line Loading @@ -155,11 +155,11 @@ Pos Instruction 0 stmt 9 "drop temporary table if exists sudoku..." 1 stmt 1 "create temporary table sudoku_work ( ..." 2 stmt 1 "create temporary table sudoku_schedul..." 3 stmt 95 "call sudoku_init(" 3 stmt 95 "call sudoku_init()" 4 jump_if_not 7(8) p_naive@0 5 stmt 4 "update sudoku_work set cnt = 0 where ..." 6 jump 8 7 stmt 95 "call sudoku_count(" 7 stmt 95 "call sudoku_count()" 8 stmt 6 "insert into sudoku_schedule (row,col)..." 9 set v_scounter@2 0 10 set v_i@3 1 Loading Loading @@ -199,3 +199,10 @@ Pos Instruction 44 jump 14 45 stmt 9 "drop temporary table sudoku_work, sud..." drop procedure sudoku_solve; DROP PROCEDURE IF EXISTS p1; CREATE PROCEDURE p1() CREATE INDEX idx ON t1 (c1); SHOW PROCEDURE CODE p1; Pos Instruction 0 stmt 2 "CREATE INDEX idx ON t1 (c1)" DROP PROCEDURE p1; End of 5.0 tests.
mysql-test/t/sp-code.test +22 −0 Original line number Diff line number Diff line Loading @@ -190,3 +190,25 @@ delimiter ;// show procedure code sudoku_solve; drop procedure sudoku_solve; # # Bug#19207: Final parenthesis omitted for CREATE INDEX in Stored # Procedure # # Wrong criteria was used to distinguish the case when there was no # lookahead performed in the parser. Bug affected only statements # ending in one-character token without any optional tail, like CREATE # INDEX and CALL. # --disable_warnings DROP PROCEDURE IF EXISTS p1; --enable_warnings CREATE PROCEDURE p1() CREATE INDEX idx ON t1 (c1); SHOW PROCEDURE CODE p1; DROP PROCEDURE p1; --echo End of 5.0 tests.
sql/sql_yacc.yy +12 −4 Original line number Diff line number Diff line Loading @@ -1911,9 +1911,12 @@ sp_proc_stmt: sp_instr_stmt *i=new sp_instr_stmt(sp->instructions(), lex->spcont, lex); /* Extract the query statement from the tokenizer: The end is either lex->tok_end or tok->ptr. */ if (lex->ptr - lex->tok_end > 1) /* Extract the query statement from the tokenizer. The end is either lex->ptr, if there was no lookahead, lex->tok_end otherwise. */ if (yychar == YYEMPTY) i->m_query.length= lex->ptr - sp->m_tmp_query; else i->m_query.length= lex->tok_end - sp->m_tmp_query; Loading Loading @@ -7822,7 +7825,12 @@ option_type_value: lex))) YYABORT; if (lex->ptr - lex->tok_end > 1) /* Extract the query statement from the tokenizer. The end is either lex->ptr, if there was no lookahead, lex->tok_end otherwise. */ if (yychar == YYEMPTY) qbuff.length= lex->ptr - sp->m_tmp_query; else qbuff.length= lex->tok_end - sp->m_tmp_query; Loading