summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorDmitry Shulga <dmitry.shulga@mariadb.com>2021-07-14 22:48:15 +0700
committerDmitry Shulga <dmitry.shulga@mariadb.com>2021-07-14 22:48:15 +0700
commit939ee8dbc5edb7b2b1062d0e3836e88bc9646e4b (patch)
tree7bacb1cab63d978e56e883deb5d4ab72f850a79c /mysql-test
parent04369f9cee4e2ce7562d42344cd59683b5fbb8ae (diff)
downloadmariadb-git-bb-10.6-MDEV-26147.tar.gz
MDEV-26147: The test main.sp-row fails in case it is run in PS modebb-10.6-MDEV-26147
In case stored procedure is invoked in PS mode with argument of type ROW() like the following one: CALL p1(ROW(10,20)) such statement fails with the error ER_OPERAND_COLUMNS (1241): Operand should contain 1 column(s) The reason of emitting the error is that wrong method was invoked on fixing an item corresponding to an argument of stored procedure - the method fix_fields_if_needed_for_scalar() was called instead of fix_fields_if_needed() that should be called.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/main/sp-row.result1
-rw-r--r--mysql-test/main/sp-row.test12
2 files changed, 8 insertions, 5 deletions
diff --git a/mysql-test/main/sp-row.result b/mysql-test/main/sp-row.result
index 3751b70b260..2764b4cd999 100644
--- a/mysql-test/main/sp-row.result
+++ b/mysql-test/main/sp-row.result
@@ -228,6 +228,7 @@ CREATE FUNCTION f1(a INT) RETURNS INT
BEGIN
RETURN a;
END;
+$$
CREATE PROCEDURE p1()
BEGIN
DECLARE a ROW (a INT,b INT);
diff --git a/mysql-test/main/sp-row.test b/mysql-test/main/sp-row.test
index cbd1e940475..527ff9455bd 100644
--- a/mysql-test/main/sp-row.test
+++ b/mysql-test/main/sp-row.test
@@ -2,11 +2,6 @@
--echo # MDEV-10914 ROW data type for stored routine variables
--echo #
-if (`SELECT $PS_PROTOCOL != 0`)
-{
- --skip Test temporarily disabled for ps-protocol
-}
-
--echo #
--echo # ROW of ROWs is not supported yet
--echo #
@@ -304,6 +299,7 @@ CREATE FUNCTION f1(a INT) RETURNS INT
BEGIN
RETURN a;
END;
+$$
CREATE PROCEDURE p1()
BEGIN
DECLARE a ROW (a INT,b INT);
@@ -1340,6 +1336,7 @@ DROP PROCEDURE p1;
--echo # ROW variable with a wrong column count
+--enable_prepare_warnings
CREATE TABLE t1 (a INT, b VARCHAR(32));
INSERT INTO t1 VALUES (10,'b10');
DELIMITER $$;
@@ -1351,6 +1348,7 @@ BEGIN
END;
$$
DELIMITER ;$$
+--disable_prepare_warnings
--error ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT
CALL p1();
DROP TABLE t1;
@@ -1360,6 +1358,7 @@ DROP PROCEDURE p1;
--echo # Multiple ROW variables
CREATE TABLE t1 (a INT, b VARCHAR(32));
INSERT INTO t1 VALUES (10,'b10');
+--enable_prepare_warnings
DELIMITER $$;
CREATE PROCEDURE p1()
BEGIN
@@ -1369,6 +1368,7 @@ BEGIN
END;
$$
DELIMITER ;$$
+--disable_prepare_warnings
--error ER_OPERAND_COLUMNS
CALL p1();
DROP TABLE t1;
@@ -1378,6 +1378,7 @@ DROP PROCEDURE p1;
--echo # ROW variables working example
CREATE TABLE t1 (a INT, b VARCHAR(32));
INSERT INTO t1 VALUES (10,'b10');
+--enable_prepare_warnings
DELIMITER $$;
CREATE PROCEDURE p1()
BEGIN
@@ -1387,6 +1388,7 @@ BEGIN
END;
$$
DELIMITER ;$$
+--disable_prepare_warnings
CALL p1();
DROP TABLE t1;
DROP PROCEDURE p1;