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:
committed by
Sergei Golubchik
parent
a72098421c
commit
fc71746a6a
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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';
|
||||||
|
@ -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
|
||||||
|
Reference in New Issue
Block a user