Commit afe5507c authored by unknown's avatar unknown
Browse files

fix for bug #12490 (all-in-one patch)

(Packets out of order if calling HELP CONTENTS from Stored Procedure)


mysql-test/r/sp-error.result:
  results of test of bug 12490
mysql-test/t/sp-error.test:
  test for bug 12490
  (Packets out of order if calling HELP CONTENTS from Stored Procedure)
sql/sql_yacc.yy:
  disable HELP in SP
  (fixes bug 12490)
parent b224e52c
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -748,6 +748,14 @@ end|
call bug11394(2, 1)|
ERROR HY000: Recursive stored routines are not allowed.
drop procedure bug11394|
CREATE PROCEDURE BUG_12490() HELP CONTENTS;
ERROR 0A000: HELP is not allowed in stored procedures
CREATE FUNCTION BUG_12490() RETURNS INT HELP CONTENTS;
ERROR 0A000: HELP is not allowed in stored procedures
CREATE TABLE t_bug_12490(a int);
CREATE TRIGGER BUG_12490 BEFORE UPDATE ON t_bug_12490 FOR EACH ROW HELP CONTENTS;
ERROR 0A000: HELP is not allowed in stored procedures
DROP TABLE t_bug_12490;
drop function if exists bug11834_1;
drop function if exists bug11834_2;
create function bug11834_1() returns int return 10;
+13 −0
Original line number Diff line number Diff line
@@ -1079,6 +1079,19 @@ call bug11394(2, 1)|
drop procedure bug11394|
delimiter ;|


#
# BUG 12490 (Packets out of order if calling HELP CONTENTS from Stored Procedure)
#
--error 1314
CREATE PROCEDURE BUG_12490() HELP CONTENTS;
--error 1314
CREATE FUNCTION BUG_12490() RETURNS INT HELP CONTENTS;
CREATE TABLE t_bug_12490(a int);
--error 1314
CREATE TRIGGER BUG_12490 BEFORE UPDATE ON t_bug_12490 FOR EACH ROW HELP CONTENTS;
DROP TABLE t_bug_12490;

#
# Bug#11834 "Re-execution of prepared statement with dropped function
# crashes server". Also tests handling of prepared stmts which use
+10 −2
Original line number Diff line number Diff line
@@ -1016,11 +1016,19 @@ execute_var_ident: '@' ident_or_text
/* help */

help:
       HELP_SYM ident_or_text
       HELP_SYM
       {
         if (Lex->sphead)
         {
           my_error(ER_SP_BADSTATEMENT, MYF(0), "HELP");
           YYABORT;
         }
       }
       ident_or_text
       {
	  LEX *lex= Lex;
	  lex->sql_command= SQLCOM_HELP;
	  lex->help_arg= $2.str;
	  lex->help_arg= $3.str;
       };

/* change master */