Commit 166accff authored by unknown's avatar unknown

Fixed BUG#8409: Stored procedure crash if function contains FLUSH

  by simply disabling FLUSH for stored functions. (I can't really work.)


mysql-test/r/sp-error.result:
  New test case for BUG#8409.
mysql-test/t/sp-error.test:
  New test case for BUG#8409.
sql/sql_yacc.yy:
  Disable FLUSH for stored functions.
parent d5f4c14b
......@@ -646,4 +646,12 @@ drop procedure if exists bug10537|
create procedure bug10537()
load data local infile '/tmp/somefile' into table t1|
ERROR 0A000: LOAD DATA is not allowed in stored procedures
drop function if exists bug8409|
create function bug8409()
returns int
begin
flush tables;
return 5;
end|
ERROR 0A000: FLUSH is not allowed in stored procedures
drop table t1|
......@@ -905,6 +905,21 @@ create procedure bug10537()
load data local infile '/tmp/somefile' into table t1|
#
# BUG#8409: Stored procedure crash if function contains FLUSH
#
--disable_warnings
drop function if exists bug8409|
--enable_warnings
--error ER_SP_BADSTATEMENT
create function bug8409()
returns int
begin
flush tables;
return 5;
end|
#
# BUG#NNNN: New bug synopsis
#
......
......@@ -6511,6 +6511,11 @@ flush:
FLUSH_SYM opt_no_write_to_binlog
{
LEX *lex=Lex;
if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_FUNCTION)
{
my_error(ER_SP_BADSTATEMENT, MYF(0), "FLUSH");
YYABORT;
}
lex->sql_command= SQLCOM_FLUSH; lex->type=0;
lex->no_write_to_binlog= $2;
}
......
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