Commit 6fd6652b authored by unknown's avatar unknown

Fixed BUG#3843: ANALYZE TABLE inside stored procedure causes 'Packets out of order' error.


mysql-test/r/sp.result:
  New test case for BUG#3843.
mysql-test/t/sp.test:
  New test case for BUG#3843.
sql/sql_yacc.yy:
  Added another multi results special case for stored procedures (analyze).
parent 05165962
...@@ -1360,6 +1360,18 @@ bug3132('Bob') ...@@ -1360,6 +1360,18 @@ bug3132('Bob')
Hello, Bob! Hello, Bob!
Hello, Judy! Hello, Judy!
drop function bug3132| drop function bug3132|
create procedure bug3843()
analyze table t1|
call bug3843()|
Table Op Msg_type Msg_text
test.t1 analyze status OK
call bug3843()|
Table Op Msg_type Msg_text
test.t1 analyze status Table is already up to date
select 1+2|
1+2
3
drop procedure bug3843|
drop table if exists fac| drop table if exists fac|
create table fac (n int unsigned not null primary key, f bigint unsigned)| create table fac (n int unsigned not null primary key, f bigint unsigned)|
create procedure ifac(n int unsigned) create procedure ifac(n int unsigned)
......
...@@ -1560,6 +1560,19 @@ create function bug3132(s char(20)) returns char(50) ...@@ -1560,6 +1560,19 @@ create function bug3132(s char(20)) returns char(50)
select bug3132('Bob') union all select bug3132('Judy')| select bug3132('Bob') union all select bug3132('Judy')|
drop function bug3132| drop function bug3132|
#
# BUG#3843
#
create procedure bug3843()
analyze table t1|
# Testing for packets out of order
call bug3843()|
call bug3843()|
select 1+2|
drop procedure bug3843|
# #
# Some "real" examples # Some "real" examples
......
...@@ -1601,7 +1601,8 @@ sp_proc_stmt: ...@@ -1601,7 +1601,8 @@ sp_proc_stmt:
lex->sql_command == SQLCOM_SHOW_CREATE_PROC || lex->sql_command == SQLCOM_SHOW_CREATE_PROC ||
lex->sql_command == SQLCOM_SHOW_CREATE_FUNC || lex->sql_command == SQLCOM_SHOW_CREATE_FUNC ||
lex->sql_command == SQLCOM_SHOW_STATUS_PROC || lex->sql_command == SQLCOM_SHOW_STATUS_PROC ||
lex->sql_command == SQLCOM_SHOW_STATUS_FUNC) lex->sql_command == SQLCOM_SHOW_STATUS_FUNC ||
lex->sql_command == SQLCOM_ANALYZE)
{ {
/* We maybe have one or more SELECT without INTO */ /* We maybe have one or more SELECT without INTO */
lex->sphead->m_multi_results= TRUE; lex->sphead->m_multi_results= TRUE;
......
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