mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02:00
Fixed BUG#10537: Server crashes while loading data file into table through
procedure. by simply disabling 'load' in stored procedures, like it's already disabled for prepared statements. (They must be made "re-execution" safe before working with either PS or SP.)
This commit is contained in:
parent
f5f92ce146
commit
4c69f7fb4e
3 changed files with 28 additions and 1 deletions
|
|
@ -642,4 +642,8 @@ val x bug8408()
|
||||||
7 7 3
|
7 7 3
|
||||||
drop function bug8408|
|
drop function bug8408|
|
||||||
delete from t1|
|
delete from t1|
|
||||||
|
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 table t1|
|
drop table t1|
|
||||||
|
|
|
||||||
|
|
@ -893,6 +893,18 @@ drop function bug8408|
|
||||||
delete from t1|
|
delete from t1|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#10537: Server crashes while loading data file into table through
|
||||||
|
# procedure.
|
||||||
|
# Disable load until it's PS and SP safe
|
||||||
|
--disable_warnings
|
||||||
|
drop procedure if exists bug10537|
|
||||||
|
--enable_warnings
|
||||||
|
--error ER_SP_BADSTATEMENT
|
||||||
|
create procedure bug10537()
|
||||||
|
load data local infile '/tmp/somefile' into table t1|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#NNNN: New bug synopsis
|
# BUG#NNNN: New bug synopsis
|
||||||
#
|
#
|
||||||
|
|
|
||||||
|
|
@ -6611,6 +6611,11 @@ use: USE_SYM ident
|
||||||
load: LOAD DATA_SYM
|
load: LOAD DATA_SYM
|
||||||
{
|
{
|
||||||
LEX *lex=Lex;
|
LEX *lex=Lex;
|
||||||
|
if (lex->sphead)
|
||||||
|
{
|
||||||
|
my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD DATA");
|
||||||
|
YYABORT;
|
||||||
|
}
|
||||||
lex->fname_start= lex->ptr;
|
lex->fname_start= lex->ptr;
|
||||||
}
|
}
|
||||||
load_data
|
load_data
|
||||||
|
|
@ -6618,7 +6623,13 @@ load: LOAD DATA_SYM
|
||||||
|
|
|
|
||||||
LOAD TABLE_SYM table_ident FROM MASTER_SYM
|
LOAD TABLE_SYM table_ident FROM MASTER_SYM
|
||||||
{
|
{
|
||||||
Lex->sql_command = SQLCOM_LOAD_MASTER_TABLE;
|
LEX *lex=Lex;
|
||||||
|
if (lex->sphead)
|
||||||
|
{
|
||||||
|
my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD TABLE");
|
||||||
|
YYABORT;
|
||||||
|
}
|
||||||
|
lex->sql_command = SQLCOM_LOAD_MASTER_TABLE;
|
||||||
if (!Select->add_table_to_list(YYTHD, $3, NULL, TL_OPTION_UPDATING))
|
if (!Select->add_table_to_list(YYTHD, $3, NULL, TL_OPTION_UPDATING))
|
||||||
YYABORT;
|
YYABORT;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue