mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge 11.4 into 11.8
This commit is contained in:
@@ -1020,3 +1020,77 @@ ERROR 42000: This version of MariaDB doesn't yet support 'OUT/INOUT cursor param
|
||||
#
|
||||
# End of 10.8 tests
|
||||
#
|
||||
# Start of 11.4 tests
|
||||
#
|
||||
# MDEV-36047 Package body variables are not allowed as FETCH targets
|
||||
#
|
||||
CREATE PACKAGE pkg AS
|
||||
FUNCTION f1 RETURN INT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg AS
|
||||
vc INT := 0;
|
||||
FUNCTION f1 RETURN INT AS
|
||||
CURSOR cur IS SELECT 1 AS c FROM DUAL;
|
||||
BEGIN
|
||||
OPEN cur;
|
||||
FETCH cur INTO vc; -- SHOW CODE should display vc with a "PACKAGE_BODY" prefix
|
||||
CLOSE cur;
|
||||
RETURN vc;
|
||||
END;
|
||||
BEGIN
|
||||
DECLARE
|
||||
CURSOR cur IS SELECT 1 AS c FROM DUAL;
|
||||
BEGIN
|
||||
OPEN cur;
|
||||
FETCH cur INTO vc; -- SHOW CODE should display vc without a prefix
|
||||
CLOSE cur;
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
SELECT pkg.f1() FROM DUAL;
|
||||
pkg.f1()
|
||||
1
|
||||
DROP PACKAGE pkg;
|
||||
CREATE PACKAGE pkg AS
|
||||
FUNCTION f1 RETURN TEXT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg AS
|
||||
vc1 INT := 0;
|
||||
FUNCTION f1 RETURN TEXT AS
|
||||
CURSOR cur IS SELECT 1 AS c1, 2 AS c2 FROM DUAL;
|
||||
vc2 INT := 0;
|
||||
BEGIN
|
||||
OPEN cur;
|
||||
FETCH cur INTO vc1, vc2;
|
||||
CLOSE cur;
|
||||
RETURN vc1 || ' ' || vc2;
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
SELECT pkg.f1() FROM DUAL;
|
||||
pkg.f1()
|
||||
1 2
|
||||
DROP PACKAGE pkg;
|
||||
CREATE PACKAGE pkg AS
|
||||
FUNCTION f1 RETURN TEXT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg AS
|
||||
vc ROW(p1 INT, p2 INT);
|
||||
FUNCTION f1 RETURN TEXT AS
|
||||
CURSOR cur IS SELECT 1 AS c1, 2 AS c2 FROM DUAL;
|
||||
BEGIN
|
||||
OPEN cur;
|
||||
FETCH cur INTO vc;
|
||||
CLOSE cur;
|
||||
RETURN vc.p1 || ' ' || vc.p2;
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
SELECT pkg.f1() FROM DUAL;
|
||||
pkg.f1()
|
||||
1 2
|
||||
DROP PACKAGE pkg;
|
||||
# End of 11.4 tests
|
||||
|
@@ -243,3 +243,107 @@ Pos Instruction
|
||||
7 jump 11
|
||||
DROP PACKAGE pkg1;
|
||||
DROP TABLE t1;
|
||||
# Start of 11.4 tests
|
||||
#
|
||||
# MDEV-36047 Package body variables are not allowed as FETCH targets
|
||||
#
|
||||
CREATE PACKAGE pkg AS
|
||||
FUNCTION f1 RETURN INT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg AS
|
||||
vc INT := 0;
|
||||
FUNCTION f1 RETURN INT AS
|
||||
CURSOR cur IS SELECT 1 AS c FROM DUAL;
|
||||
BEGIN
|
||||
OPEN cur;
|
||||
FETCH cur INTO vc; -- SHOW CODE should display vc with a "PACKAGE_BODY" prefix
|
||||
CLOSE cur;
|
||||
RETURN vc;
|
||||
END;
|
||||
BEGIN
|
||||
DECLARE
|
||||
CURSOR cur IS SELECT 1 AS c FROM DUAL;
|
||||
BEGIN
|
||||
OPEN cur;
|
||||
FETCH cur INTO vc; -- SHOW CODE should display vc without a prefix
|
||||
CLOSE cur;
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
SELECT pkg.f1() FROM DUAL;
|
||||
pkg.f1()
|
||||
1
|
||||
SHOW FUNCTION CODE pkg.f1;
|
||||
Pos Instruction
|
||||
0 cpush cur@0
|
||||
1 copen cur@0
|
||||
2 cfetch cur@0 PACKAGE_BODY.vc@0
|
||||
3 cclose cur@0
|
||||
4 freturn int PACKAGE_BODY.vc@0
|
||||
SHOW PACKAGE BODY CODE pkg;
|
||||
Pos Instruction
|
||||
0 set vc@0 0
|
||||
1 cpush cur@0
|
||||
2 copen cur@0
|
||||
3 cfetch cur@0 vc@0
|
||||
4 cclose cur@0
|
||||
5 cpop 1
|
||||
DROP PACKAGE pkg;
|
||||
CREATE PACKAGE pkg AS
|
||||
FUNCTION f1 RETURN TEXT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg AS
|
||||
vc1 INT := 0;
|
||||
FUNCTION f1 RETURN TEXT AS
|
||||
CURSOR cur IS SELECT 1 AS c1, 2 AS c2 FROM DUAL;
|
||||
vc2 INT := 0;
|
||||
BEGIN
|
||||
OPEN cur;
|
||||
FETCH cur INTO vc1, vc2;
|
||||
CLOSE cur;
|
||||
RETURN vc1 || ' ' || vc2;
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
SELECT pkg.f1() FROM DUAL;
|
||||
pkg.f1()
|
||||
1 2
|
||||
SHOW FUNCTION CODE pkg.f1;
|
||||
Pos Instruction
|
||||
0 set vc2@0 0
|
||||
1 cpush cur@0
|
||||
2 copen cur@0
|
||||
3 cfetch cur@0 PACKAGE_BODY.vc1@0 vc2@0
|
||||
4 cclose cur@0
|
||||
5 freturn blob concat(concat(PACKAGE_BODY.vc1@0,' '),vc2@0)
|
||||
DROP PACKAGE pkg;
|
||||
CREATE PACKAGE pkg AS
|
||||
FUNCTION f1 RETURN TEXT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg AS
|
||||
vc ROW(p1 INT, p2 INT);
|
||||
FUNCTION f1 RETURN TEXT AS
|
||||
CURSOR cur IS SELECT 1 AS c1, 2 AS c2 FROM DUAL;
|
||||
BEGIN
|
||||
OPEN cur;
|
||||
FETCH cur INTO vc;
|
||||
CLOSE cur;
|
||||
RETURN vc.p1 || ' ' || vc.p2;
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
SELECT pkg.f1() FROM DUAL;
|
||||
pkg.f1()
|
||||
1 2
|
||||
SHOW FUNCTION CODE pkg.f1;
|
||||
Pos Instruction
|
||||
0 cpush cur@0
|
||||
1 copen cur@0
|
||||
2 cfetch cur@0 PACKAGE_BODY.vc@0
|
||||
3 cclose cur@0
|
||||
4 freturn blob concat(concat(PACKAGE_BODY.vc.p1@0[0],' '),PACKAGE_BODY.vc.p2@0[1])
|
||||
DROP PACKAGE pkg;
|
||||
# End of 11.4 tests
|
||||
|
26
mysql-test/suite/compat/oracle/t/sp-cursor-pkg-01.inc
Normal file
26
mysql-test/suite/compat/oracle/t/sp-cursor-pkg-01.inc
Normal file
@@ -0,0 +1,26 @@
|
||||
DELIMITER $$;
|
||||
CREATE PACKAGE pkg AS
|
||||
FUNCTION f1 RETURN INT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg AS
|
||||
vc INT := 0;
|
||||
FUNCTION f1 RETURN INT AS
|
||||
CURSOR cur IS SELECT 1 AS c FROM DUAL;
|
||||
BEGIN
|
||||
OPEN cur;
|
||||
FETCH cur INTO vc; -- SHOW CODE should display vc with a "PACKAGE_BODY" prefix
|
||||
CLOSE cur;
|
||||
RETURN vc;
|
||||
END;
|
||||
BEGIN
|
||||
DECLARE
|
||||
CURSOR cur IS SELECT 1 AS c FROM DUAL;
|
||||
BEGIN
|
||||
OPEN cur;
|
||||
FETCH cur INTO vc; -- SHOW CODE should display vc without a prefix
|
||||
CLOSE cur;
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
20
mysql-test/suite/compat/oracle/t/sp-cursor-pkg-02.inc
Normal file
20
mysql-test/suite/compat/oracle/t/sp-cursor-pkg-02.inc
Normal file
@@ -0,0 +1,20 @@
|
||||
# Mixing a package body variable and a local variable in the same FETCH.
|
||||
DELIMITER $$;
|
||||
CREATE PACKAGE pkg AS
|
||||
FUNCTION f1 RETURN TEXT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg AS
|
||||
vc1 INT := 0;
|
||||
FUNCTION f1 RETURN TEXT AS
|
||||
CURSOR cur IS SELECT 1 AS c1, 2 AS c2 FROM DUAL;
|
||||
vc2 INT := 0;
|
||||
BEGIN
|
||||
OPEN cur;
|
||||
FETCH cur INTO vc1, vc2;
|
||||
CLOSE cur;
|
||||
RETURN vc1 || ' ' || vc2;
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
19
mysql-test/suite/compat/oracle/t/sp-cursor-pkg-03.inc
Normal file
19
mysql-test/suite/compat/oracle/t/sp-cursor-pkg-03.inc
Normal file
@@ -0,0 +1,19 @@
|
||||
# Fetching into a PACKAGE BODY variable of the ROW type
|
||||
DELIMITER $$;
|
||||
CREATE PACKAGE pkg AS
|
||||
FUNCTION f1 RETURN TEXT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg AS
|
||||
vc ROW(p1 INT, p2 INT);
|
||||
FUNCTION f1 RETURN TEXT AS
|
||||
CURSOR cur IS SELECT 1 AS c1, 2 AS c2 FROM DUAL;
|
||||
BEGIN
|
||||
OPEN cur;
|
||||
FETCH cur INTO vc;
|
||||
CLOSE cur;
|
||||
RETURN vc.p1 || ' ' || vc.p2;
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
@@ -1042,3 +1042,24 @@ DELIMITER ;$$
|
||||
--echo #
|
||||
--echo # End of 10.8 tests
|
||||
--echo #
|
||||
|
||||
|
||||
--echo # Start of 11.4 tests
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-36047 Package body variables are not allowed as FETCH targets
|
||||
--echo #
|
||||
|
||||
--source sp-cursor-pkg-01.inc
|
||||
SELECT pkg.f1() FROM DUAL;
|
||||
DROP PACKAGE pkg;
|
||||
|
||||
--source sp-cursor-pkg-02.inc
|
||||
SELECT pkg.f1() FROM DUAL;
|
||||
DROP PACKAGE pkg;
|
||||
|
||||
--source sp-cursor-pkg-03.inc
|
||||
SELECT pkg.f1() FROM DUAL;
|
||||
DROP PACKAGE pkg;
|
||||
|
||||
--echo # End of 11.4 tests
|
||||
|
@@ -180,3 +180,28 @@ SHOW PROCEDURE CODE pkg1.p1;
|
||||
SHOW PACKAGE BODY CODE pkg1;
|
||||
DROP PACKAGE pkg1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo # Start of 11.4 tests
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-36047 Package body variables are not allowed as FETCH targets
|
||||
--echo #
|
||||
|
||||
--source sp-cursor-pkg-01.inc
|
||||
SELECT pkg.f1() FROM DUAL;
|
||||
SHOW FUNCTION CODE pkg.f1;
|
||||
SHOW PACKAGE BODY CODE pkg;
|
||||
DROP PACKAGE pkg;
|
||||
|
||||
--source sp-cursor-pkg-02.inc
|
||||
SELECT pkg.f1() FROM DUAL;
|
||||
SHOW FUNCTION CODE pkg.f1;
|
||||
DROP PACKAGE pkg;
|
||||
|
||||
--source sp-cursor-pkg-03.inc
|
||||
SELECT pkg.f1() FROM DUAL;
|
||||
SHOW FUNCTION CODE pkg.f1;
|
||||
DROP PACKAGE pkg;
|
||||
|
||||
--echo # End of 11.4 tests
|
||||
|
Reference in New Issue
Block a user