Commit 12d6b9c7 authored by unknown's avatar unknown
Browse files

Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0

into  moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.0-bug19207


sql/sql_yacc.yy:
  Auto merged
parents d8180d44 7733615d
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -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
@@ -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.
+22 −0
Original line number Diff line number Diff line
@@ -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.
+12 −4
Original line number Diff line number Diff line
@@ -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;
@@ -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;