Loading mysql-test/r/sp-error.result +33 −0 Original line number Diff line number Diff line Loading @@ -981,6 +981,8 @@ END | drop table t1| drop function bug_13627_f| drop function if exists bug12329; Warnings: Note 1305 FUNCTION bug12329 does not exist create table t1 as select 1 a; create table t2 as select 1 a; create function bug12329() returns int return (select a from t1); Loading Loading @@ -1055,3 +1057,34 @@ Db Name Type Definer Modified Created Security_type Comment mysqltest2 p1 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER drop database mysqltest2; use test; DROP FUNCTION IF EXISTS bug13012| CREATE FUNCTION bug13012() RETURNS INT BEGIN REPAIR TABLE t1; RETURN 1; END| ERROR 0A000: Not allowed to return a result set from a function CREATE FUNCTION bug13012() RETURNS INT BEGIN BACKUP TABLE t1 TO '/tmp'; RETURN 1; END| ERROR 0A000: Not allowed to return a result set from a function CREATE FUNCTION bug13012() RETURNS INT BEGIN RESTORE TABLE t1 FROM '/tmp'; RETURN 1; END| ERROR 0A000: Not allowed to return a result set from a function create table t1 (a int)| CREATE PROCEDURE bug13012_1() REPAIR TABLE t1| CREATE FUNCTION bug13012_2() RETURNS INT BEGIN CALL bug13012_1(); RETURN 1; END| SELECT bug13012_2()| ERROR 0A000: Not allowed to return a result set from a function drop table t1| drop procedure bug13012_1| drop function bug13012_2| mysql-test/r/sp.result +20 −2 Original line number Diff line number Diff line Loading @@ -4100,8 +4100,6 @@ x 4711 drop procedure bug14376| drop procedure if exists p1| Warnings: Note 1305 PROCEDURE p1 does not exist drop table if exists t1| create table t1 (a varchar(255))| insert into t1 (a) values ("a - table column")| Loading Loading @@ -4153,4 +4151,24 @@ A local variable in a nested compound statement takes precedence over table colu a - local variable in a nested compound statement A local variable in a nested compound statement takes precedence over table column in cursors a - local variable in a nested compound statement drop procedure p1| drop procedure if exists bug13012| create procedure bug13012() BEGIN REPAIR TABLE t1; BACKUP TABLE t1 to '../tmp'; DROP TABLE t1; RESTORE TABLE t1 FROM '../tmp'; END| call bug13012()| Table Op Msg_type Msg_text test.t1 repair status OK Table Op Msg_type Msg_text test.t1 backup status OK Table Op Msg_type Msg_text test.t1 restore status OK drop procedure bug13012| select * from t1| a a - table column drop table t1,t2; mysql-test/t/sp-error.test +38 −1 Original line number Diff line number Diff line Loading @@ -1410,7 +1410,6 @@ delimiter ;| # BUG#12329: "Bogus error msg when executing PS with stored procedure after # SP was re-created". See also test for related bug#13399 in trigger.test --disable_warnings drop function if exists bug12329; --enable_warnings create table t1 as select 1 a; Loading Loading @@ -1518,6 +1517,44 @@ show procedure status; drop database mysqltest2; use test; # # Bug#13012 "SP: REPAIR/BACKUP/RESTORE TABLE crashes the server" # delimiter |; --disable_warnings DROP FUNCTION IF EXISTS bug13012| --enable_warnings --error ER_SP_NO_RETSET CREATE FUNCTION bug13012() RETURNS INT BEGIN REPAIR TABLE t1; RETURN 1; END| --error ER_SP_NO_RETSET CREATE FUNCTION bug13012() RETURNS INT BEGIN BACKUP TABLE t1 TO '/tmp'; RETURN 1; END| --error ER_SP_NO_RETSET CREATE FUNCTION bug13012() RETURNS INT BEGIN RESTORE TABLE t1 FROM '/tmp'; RETURN 1; END| create table t1 (a int)| CREATE PROCEDURE bug13012_1() REPAIR TABLE t1| CREATE FUNCTION bug13012_2() RETURNS INT BEGIN CALL bug13012_1(); RETURN 1; END| --error ER_SP_NO_RETSET SELECT bug13012_2()| drop table t1| drop procedure bug13012_1| drop function bug13012_2| delimiter ;| # BUG#NNNN: New bug synopsis # Loading mysql-test/t/sp.test +21 −0 Original line number Diff line number Diff line Loading @@ -4908,8 +4908,10 @@ drop procedure bug14376| # variable declarations. In MySQL 5.0 it's vice versa. # --disable_warnings drop procedure if exists p1| drop table if exists t1| --enable_warnings create table t1 (a varchar(255))| insert into t1 (a) values ("a - table column")| create procedure p1(a varchar(255)) Loading Loading @@ -4944,6 +4946,25 @@ begin end; end| call p1("a - stored procedure parameter")| drop procedure p1| # # Bug#13012 "SP: REPAIR/BACKUP/RESTORE TABLE crashes the server" # --disable_warnings drop procedure if exists bug13012| --enable_warnings create procedure bug13012() BEGIN REPAIR TABLE t1; BACKUP TABLE t1 to '../tmp'; DROP TABLE t1; RESTORE TABLE t1 FROM '../tmp'; END| --replace_result ": 7" ": X" ": 17" ": X" $MYSQL_TEST_DIR MYSQL_TEST_DIR call bug13012()| drop procedure bug13012| select * from t1| # # BUG#NNNN: New bug synopsis Loading sql/sp_head.cc +3 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,9 @@ sp_get_flags_for_command(LEX *lex) case SQLCOM_SHOW_WARNS: case SQLCOM_SHOW_PROC_CODE: case SQLCOM_SHOW_FUNC_CODE: case SQLCOM_REPAIR: case SQLCOM_BACKUP_TABLE: case SQLCOM_RESTORE_TABLE: flags= sp_head::MULTI_RESULTS; break; /* Loading Loading
mysql-test/r/sp-error.result +33 −0 Original line number Diff line number Diff line Loading @@ -981,6 +981,8 @@ END | drop table t1| drop function bug_13627_f| drop function if exists bug12329; Warnings: Note 1305 FUNCTION bug12329 does not exist create table t1 as select 1 a; create table t2 as select 1 a; create function bug12329() returns int return (select a from t1); Loading Loading @@ -1055,3 +1057,34 @@ Db Name Type Definer Modified Created Security_type Comment mysqltest2 p1 PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER drop database mysqltest2; use test; DROP FUNCTION IF EXISTS bug13012| CREATE FUNCTION bug13012() RETURNS INT BEGIN REPAIR TABLE t1; RETURN 1; END| ERROR 0A000: Not allowed to return a result set from a function CREATE FUNCTION bug13012() RETURNS INT BEGIN BACKUP TABLE t1 TO '/tmp'; RETURN 1; END| ERROR 0A000: Not allowed to return a result set from a function CREATE FUNCTION bug13012() RETURNS INT BEGIN RESTORE TABLE t1 FROM '/tmp'; RETURN 1; END| ERROR 0A000: Not allowed to return a result set from a function create table t1 (a int)| CREATE PROCEDURE bug13012_1() REPAIR TABLE t1| CREATE FUNCTION bug13012_2() RETURNS INT BEGIN CALL bug13012_1(); RETURN 1; END| SELECT bug13012_2()| ERROR 0A000: Not allowed to return a result set from a function drop table t1| drop procedure bug13012_1| drop function bug13012_2|
mysql-test/r/sp.result +20 −2 Original line number Diff line number Diff line Loading @@ -4100,8 +4100,6 @@ x 4711 drop procedure bug14376| drop procedure if exists p1| Warnings: Note 1305 PROCEDURE p1 does not exist drop table if exists t1| create table t1 (a varchar(255))| insert into t1 (a) values ("a - table column")| Loading Loading @@ -4153,4 +4151,24 @@ A local variable in a nested compound statement takes precedence over table colu a - local variable in a nested compound statement A local variable in a nested compound statement takes precedence over table column in cursors a - local variable in a nested compound statement drop procedure p1| drop procedure if exists bug13012| create procedure bug13012() BEGIN REPAIR TABLE t1; BACKUP TABLE t1 to '../tmp'; DROP TABLE t1; RESTORE TABLE t1 FROM '../tmp'; END| call bug13012()| Table Op Msg_type Msg_text test.t1 repair status OK Table Op Msg_type Msg_text test.t1 backup status OK Table Op Msg_type Msg_text test.t1 restore status OK drop procedure bug13012| select * from t1| a a - table column drop table t1,t2;
mysql-test/t/sp-error.test +38 −1 Original line number Diff line number Diff line Loading @@ -1410,7 +1410,6 @@ delimiter ;| # BUG#12329: "Bogus error msg when executing PS with stored procedure after # SP was re-created". See also test for related bug#13399 in trigger.test --disable_warnings drop function if exists bug12329; --enable_warnings create table t1 as select 1 a; Loading Loading @@ -1518,6 +1517,44 @@ show procedure status; drop database mysqltest2; use test; # # Bug#13012 "SP: REPAIR/BACKUP/RESTORE TABLE crashes the server" # delimiter |; --disable_warnings DROP FUNCTION IF EXISTS bug13012| --enable_warnings --error ER_SP_NO_RETSET CREATE FUNCTION bug13012() RETURNS INT BEGIN REPAIR TABLE t1; RETURN 1; END| --error ER_SP_NO_RETSET CREATE FUNCTION bug13012() RETURNS INT BEGIN BACKUP TABLE t1 TO '/tmp'; RETURN 1; END| --error ER_SP_NO_RETSET CREATE FUNCTION bug13012() RETURNS INT BEGIN RESTORE TABLE t1 FROM '/tmp'; RETURN 1; END| create table t1 (a int)| CREATE PROCEDURE bug13012_1() REPAIR TABLE t1| CREATE FUNCTION bug13012_2() RETURNS INT BEGIN CALL bug13012_1(); RETURN 1; END| --error ER_SP_NO_RETSET SELECT bug13012_2()| drop table t1| drop procedure bug13012_1| drop function bug13012_2| delimiter ;| # BUG#NNNN: New bug synopsis # Loading
mysql-test/t/sp.test +21 −0 Original line number Diff line number Diff line Loading @@ -4908,8 +4908,10 @@ drop procedure bug14376| # variable declarations. In MySQL 5.0 it's vice versa. # --disable_warnings drop procedure if exists p1| drop table if exists t1| --enable_warnings create table t1 (a varchar(255))| insert into t1 (a) values ("a - table column")| create procedure p1(a varchar(255)) Loading Loading @@ -4944,6 +4946,25 @@ begin end; end| call p1("a - stored procedure parameter")| drop procedure p1| # # Bug#13012 "SP: REPAIR/BACKUP/RESTORE TABLE crashes the server" # --disable_warnings drop procedure if exists bug13012| --enable_warnings create procedure bug13012() BEGIN REPAIR TABLE t1; BACKUP TABLE t1 to '../tmp'; DROP TABLE t1; RESTORE TABLE t1 FROM '../tmp'; END| --replace_result ": 7" ": X" ": 17" ": X" $MYSQL_TEST_DIR MYSQL_TEST_DIR call bug13012()| drop procedure bug13012| select * from t1| # # BUG#NNNN: New bug synopsis Loading
sql/sp_head.cc +3 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,9 @@ sp_get_flags_for_command(LEX *lex) case SQLCOM_SHOW_WARNS: case SQLCOM_SHOW_PROC_CODE: case SQLCOM_SHOW_FUNC_CODE: case SQLCOM_REPAIR: case SQLCOM_BACKUP_TABLE: case SQLCOM_RESTORE_TABLE: flags= sp_head::MULTI_RESULTS; break; /* Loading