1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-16708: Fixed ths issue with handling of ERR packet received by mysqltest

on response to COM_STMT_EXECUTE

The test cases like the following one
  delimiter |;
  CREATE PROCEDURE SP001()
  BEGIN
    DECLARE C1 CURSOR FOR SELECT 1;

    OPEN C1;

    SELECT 1;
    CLOSE C1;
    CLOSE C1;
  END|
  delimiter ;|
  --error 1326
  call SP001();

are failed since processing of ERR packet was missed by mysqltest
in case it is run with --ps-protocol

Additionally, the test sp-error was changed to don't run multi-statements
since they are not supported by PS protocol
This commit is contained in:
Dmitry Shulga
2021-06-04 12:59:24 +07:00
committed by Sergei Golubchik
parent a72098421c
commit fc71746a6a
3 changed files with 12 additions and 7 deletions

View File

@ -8324,6 +8324,7 @@ void run_query_stmt(struct st_connection *cn, struct st_command *command,
goto end; goto end;
} }
int err;
do do
{ {
/* /*
@ -8357,8 +8358,6 @@ void run_query_stmt(struct st_connection *cn, struct st_command *command,
goto end; goto end;
} }
/* If we got here the statement was both executed and read successfully */
handle_no_error(command);
if (!disable_result_log) if (!disable_result_log)
{ {
/* /*
@ -8436,8 +8435,14 @@ void run_query_stmt(struct st_connection *cn, struct st_command *command,
} }
} }
} }
} while ( !mysql_stmt_next_result(stmt)); } while ( !(err= mysql_stmt_next_result(stmt)));
if (err > 0)
/* We got an error from mysql_next_result, maybe expected */
handle_error(command, mysql_errno(mysql), mysql_error(mysql),
mysql_sqlstate(mysql), ds);
else
handle_no_error(command);
end: end:
if (!disable_warnings) if (!disable_warnings)
{ {

View File

@ -2771,7 +2771,7 @@ DROP TABLE t2;
DROP PROCEDURE IF EXISTS p1; DROP PROCEDURE IF EXISTS p1;
DROP PROCEDURE IF EXISTS p2; DROP PROCEDURE IF EXISTS p2;
SET sql_mode = ''; SET sql_mode = ''|
CREATE PROCEDURE p1() CREATE PROCEDURE p1()
BEGIN BEGIN
DECLARE var1 INTEGER DEFAULT 'string'; DECLARE var1 INTEGER DEFAULT 'string';
@ -2782,7 +2782,7 @@ CALL p1()|
Warnings: Warnings:
Warning 1366 Incorrect integer value: 'string' for column ``.``.`var1` at row 1 Warning 1366 Incorrect integer value: 'string' for column ``.``.`var1` at row 1
SET sql_mode = DEFAULT; SET sql_mode = DEFAULT|
CREATE PROCEDURE p2() CREATE PROCEDURE p2()
BEGIN BEGIN
DECLARE EXIT HANDLER FOR SQLWARNING SELECT 'H2'; DECLARE EXIT HANDLER FOR SQLWARNING SELECT 'H2';

View File

@ -3711,7 +3711,7 @@ DROP PROCEDURE IF EXISTS p2;
delimiter |; delimiter |;
SET sql_mode = ''; SET sql_mode = ''|
CREATE PROCEDURE p1() CREATE PROCEDURE p1()
BEGIN BEGIN
DECLARE var1 INTEGER DEFAULT 'string'; DECLARE var1 INTEGER DEFAULT 'string';
@ -3721,7 +3721,7 @@ END|
--echo --echo
CALL p1()| CALL p1()|
--echo --echo
SET sql_mode = DEFAULT; SET sql_mode = DEFAULT|
CREATE PROCEDURE p2() CREATE PROCEDURE p2()
BEGIN BEGIN