mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Merge branch '10.9' into 10.10
This commit is contained in:
@@ -43,7 +43,10 @@ comment
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
db_collation latin1_swedish_ci
|
||||
body_utf8
|
||||
body_utf8 AS
|
||||
FUNCTION f1 RETURN INT;
|
||||
PROCEDURE p1;
|
||||
END
|
||||
aggregate NONE
|
||||
db test
|
||||
name pack
|
||||
@@ -73,7 +76,16 @@ comment
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
db_collation latin1_swedish_ci
|
||||
body_utf8
|
||||
body_utf8 AS
|
||||
FUNCTION f1 RETURN INT AS
|
||||
BEGIN
|
||||
RETURN 10;
|
||||
END;
|
||||
PROCEDURE p1 AS
|
||||
BEGIN
|
||||
SELECT f1();
|
||||
END;
|
||||
END
|
||||
aggregate NONE
|
||||
SELECT * FROM mysql.proc WHERE db='test' AND name LIKE 'pack.%';
|
||||
SET @@sql_mode=ORACLE;
|
||||
|
27
mysql-test/suite/compat/oracle/r/sp-memory-leak.result
Normal file
27
mysql-test/suite/compat/oracle/r/sp-memory-leak.result
Normal file
@@ -0,0 +1,27 @@
|
||||
#
|
||||
# Start of 10.5 tests
|
||||
#
|
||||
#
|
||||
# MDEV-26186 280 Bytes lost in mysys/array.c, mysys/hash.c, sql/sp.cc, sql/sp.cc, sql/item_create.cc, sql/item_create.cc, sql/sql_yacc.yy:10748 when using oracle sql_mode
|
||||
#
|
||||
SET sql_mode= 'oracle';
|
||||
BEGIN CONTINUE WHEN f0();
|
||||
ERROR 42000: CONTINUE with no matching label:
|
||||
SET sql_mode= 'oracle';
|
||||
BEGIN CONTINUE label WHEN f0();
|
||||
ERROR 42000: CONTINUE with no matching label: label
|
||||
SET sql_mode= 'oracle';
|
||||
BEGIN EXIT WHEN f0();
|
||||
ERROR 42000: EXIT with no matching label:
|
||||
SET sql_mode= 'oracle';
|
||||
BEGIN EXIT label WHEN f0();
|
||||
ERROR 42000: EXIT with no matching label: label
|
||||
SET sql_mode= 'oracle';
|
||||
WHILE f(8)<1 DO SELECT 1;;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DO SELECT 1' at line 1
|
||||
SET sql_mode= 'oracle';
|
||||
BEGIN DECLARE CONTINUE HANDLER FOR SQLEXCEPTION RETURN f0();
|
||||
ERROR 42000: RETURN is only allowed in a FUNCTION
|
||||
#
|
||||
# End of 10.5 tests
|
||||
#
|
75
mysql-test/suite/compat/oracle/r/sp-package-i_s.result
Normal file
75
mysql-test/suite/compat/oracle/r/sp-package-i_s.result
Normal file
@@ -0,0 +1,75 @@
|
||||
#
|
||||
# Start of 10.5 tests
|
||||
#
|
||||
#
|
||||
# MDEV-30662 SQL/PL package body does not appear in I_S.ROUTINES.ROUTINE_DEFINITION
|
||||
#
|
||||
SET sql_mode=ORACLE;
|
||||
CREATE OR REPLACE PACKAGE pkg1 AS
|
||||
FUNCTION f1() RETURN INT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg1 AS
|
||||
FUNCTION f1() RETURN INT AS
|
||||
BEGIN
|
||||
RETURN 1;
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
SELECT routine_name, routine_type, routine_definition
|
||||
FROM information_schema.routines
|
||||
WHERE routine_type LIKE 'PACKAGE%'
|
||||
ORDER BY routine_type;
|
||||
routine_name pkg1
|
||||
routine_type PACKAGE
|
||||
routine_definition AS
|
||||
FUNCTION f1() RETURN INT;
|
||||
END
|
||||
routine_name pkg1
|
||||
routine_type PACKAGE BODY
|
||||
routine_definition AS
|
||||
FUNCTION f1() RETURN INT AS
|
||||
BEGIN
|
||||
RETURN 1;
|
||||
END;
|
||||
END
|
||||
DROP PACKAGE pkg1;
|
||||
SET sql_mode=ORACLE;
|
||||
CREATE OR REPLACE PACKAGE pkg1 AS
|
||||
FUNCTION f1() RETURN INT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg1 AS
|
||||
FUNCTION f1() RETURN INT AS
|
||||
BEGIN
|
||||
RETURN 1;
|
||||
END;
|
||||
BEGIN
|
||||
SET @a=10;
|
||||
SET @a=f1();
|
||||
END;
|
||||
$$
|
||||
SELECT routine_name, routine_type, routine_definition
|
||||
FROM information_schema.routines
|
||||
WHERE routine_type LIKE 'PACKAGE%'
|
||||
ORDER BY routine_type;
|
||||
routine_name pkg1
|
||||
routine_type PACKAGE
|
||||
routine_definition AS
|
||||
FUNCTION f1() RETURN INT;
|
||||
END
|
||||
routine_name pkg1
|
||||
routine_type PACKAGE BODY
|
||||
routine_definition AS
|
||||
FUNCTION f1() RETURN INT AS
|
||||
BEGIN
|
||||
RETURN 1;
|
||||
END;
|
||||
BEGIN
|
||||
SET @a=10;
|
||||
SET @a=f1();
|
||||
END
|
||||
DROP PACKAGE pkg1;
|
||||
#
|
||||
# End of 10.5 tests
|
||||
#
|
@@ -535,7 +535,13 @@ comment package-test2-comment
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
db_collation latin1_swedish_ci
|
||||
body_utf8
|
||||
body_utf8 AS
|
||||
FUNCTION f1 RETURN INT DETERMINISTIC;
|
||||
FUNCTION f2(a INT) RETURN INT;
|
||||
FUNCTION concat RETURN INT;
|
||||
PROCEDURE p1;
|
||||
PROCEDURE p2(a INT);
|
||||
END
|
||||
aggregate NONE
|
||||
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA='test' AND ROUTINE_NAME='test2';
|
||||
SPECIFIC_NAME test2
|
||||
@@ -553,7 +559,13 @@ CHARACTER_SET_NAME NULL
|
||||
COLLATION_NAME NULL
|
||||
DTD_IDENTIFIER NULL
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION
|
||||
ROUTINE_DEFINITION AS
|
||||
FUNCTION f1 RETURN INT DETERMINISTIC;
|
||||
FUNCTION f2(a INT) RETURN INT;
|
||||
FUNCTION concat RETURN INT;
|
||||
PROCEDURE p1;
|
||||
PROCEDURE p2(a INT);
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
@@ -639,7 +651,13 @@ CHARACTER_SET_NAME NULL
|
||||
COLLATION_NAME NULL
|
||||
DTD_IDENTIFIER NULL
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION
|
||||
ROUTINE_DEFINITION AS
|
||||
FUNCTION f1 RETURN INT DETERMINISTIC;
|
||||
FUNCTION f2(a INT) RETURN INT;
|
||||
FUNCTION concat RETURN INT;
|
||||
PROCEDURE p1;
|
||||
PROCEDURE p2(a INT);
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
@@ -670,7 +688,19 @@ CHARACTER_SET_NAME NULL
|
||||
COLLATION_NAME NULL
|
||||
DTD_IDENTIFIER NULL
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION
|
||||
ROUTINE_DEFINITION AS
|
||||
FUNCTION f1 RETURN INT AS BEGIN RETURN 10; END;
|
||||
FUNCTION f2(a INT) RETURN INT AS BEGIN RETURN f1()+a; END;
|
||||
FUNCTION concat RETURN INT AS BEGIN RETURN 1; END;
|
||||
PROCEDURE p1 AS
|
||||
BEGIN
|
||||
SELECT f2(0);
|
||||
END;
|
||||
PROCEDURE p2(a INT) AS
|
||||
BEGIN
|
||||
SELECT f2(a);
|
||||
END;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
|
@@ -2,6 +2,7 @@
|
||||
|
||||
SET sql_mode=ORACLE;
|
||||
|
||||
--disable_ps2_protocol
|
||||
CREATE SEQUENCE s1;
|
||||
SHOW CREATE SEQUENCE s1;
|
||||
SELECT s1.currval;
|
||||
@@ -13,12 +14,14 @@ SELECT nextval(s1);
|
||||
EXPLAIN EXTENDED SELECT s1.currval;
|
||||
SELECT lastval(s1);
|
||||
DROP SEQUENCE s1;
|
||||
|
||||
--enable_ps2_protocol
|
||||
|
||||
CREATE SEQUENCE s1;
|
||||
CREATE VIEW v1 AS SELECT s1.nextval AS a;
|
||||
SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME='v1';
|
||||
--disable_ps2_protocol
|
||||
SELECT * FROM v1;
|
||||
--enable_ps2_protocol
|
||||
SHOW CREATE VIEW v1;
|
||||
DROP VIEW v1;
|
||||
DROP SEQUENCE s1;
|
||||
@@ -35,9 +38,11 @@ DROP SEQUENCE s1;
|
||||
--echo #
|
||||
--echo # MDEV-12533 sql_mode=ORACLE: Add support for database qualified sequence names in NEXTVAL and CURRVAL
|
||||
--echo #
|
||||
--disable_ps2_protocol
|
||||
CREATE SEQUENCE s1;
|
||||
SELECT test.s1.nextval;
|
||||
SELECT test.s1.currval;
|
||||
SELECT .s1.nextval;
|
||||
SELECT .s1.currval;
|
||||
DROP SEQUENCE s1;
|
||||
--enable_ps2_protocol
|
||||
|
@@ -1236,7 +1236,9 @@ DELIMITER ;$$
|
||||
|
||||
select * from Persons;
|
||||
set @a = 6;
|
||||
--disable_ps2_protocol
|
||||
select pkg2.func_main(@a);
|
||||
--enable_ps2_protocol
|
||||
select * from Persons;
|
||||
DROP TABLE Persons;
|
||||
DROP PACKAGE pkg2;
|
||||
@@ -1374,7 +1376,9 @@ DELIMITER ;$$
|
||||
|
||||
select * from Persons;
|
||||
set @a = 6;
|
||||
--disable_ps2_protocol
|
||||
select pkg2.func_main(@a);
|
||||
--enable_ps2_protocol
|
||||
select * from Persons;
|
||||
DROP TABLE Persons;
|
||||
DROP PACKAGE pkg2;
|
||||
|
35
mysql-test/suite/compat/oracle/t/sp-memory-leak.test
Normal file
35
mysql-test/suite/compat/oracle/t/sp-memory-leak.test
Normal file
@@ -0,0 +1,35 @@
|
||||
--echo #
|
||||
--echo # Start of 10.5 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-26186 280 Bytes lost in mysys/array.c, mysys/hash.c, sql/sp.cc, sql/sp.cc, sql/item_create.cc, sql/item_create.cc, sql/sql_yacc.yy:10748 when using oracle sql_mode
|
||||
--echo #
|
||||
|
||||
SET sql_mode= 'oracle';
|
||||
--error ER_SP_LILABEL_MISMATCH
|
||||
BEGIN CONTINUE WHEN f0();
|
||||
|
||||
SET sql_mode= 'oracle';
|
||||
--error ER_SP_LILABEL_MISMATCH
|
||||
BEGIN CONTINUE label WHEN f0();
|
||||
|
||||
SET sql_mode= 'oracle';
|
||||
--error ER_SP_LILABEL_MISMATCH
|
||||
BEGIN EXIT WHEN f0();
|
||||
|
||||
SET sql_mode= 'oracle';
|
||||
--error ER_SP_LILABEL_MISMATCH
|
||||
BEGIN EXIT label WHEN f0();
|
||||
|
||||
SET sql_mode= 'oracle';
|
||||
--error ER_PARSE_ERROR
|
||||
--query WHILE f(8)<1 DO SELECT 1;
|
||||
|
||||
SET sql_mode= 'oracle';
|
||||
--error ER_SP_BADRETURN
|
||||
BEGIN DECLARE CONTINUE HANDLER FOR SQLEXCEPTION RETURN f0();
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.5 tests
|
||||
--echo #
|
69
mysql-test/suite/compat/oracle/t/sp-package-i_s.test
Normal file
69
mysql-test/suite/compat/oracle/t/sp-package-i_s.test
Normal file
@@ -0,0 +1,69 @@
|
||||
--source include/default_charset.inc
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.5 tests
|
||||
--echo #
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-30662 SQL/PL package body does not appear in I_S.ROUTINES.ROUTINE_DEFINITION
|
||||
--echo #
|
||||
|
||||
# Testing a package without the executable section
|
||||
|
||||
SET sql_mode=ORACLE;
|
||||
DELIMITER $$;
|
||||
CREATE OR REPLACE PACKAGE pkg1 AS
|
||||
FUNCTION f1() RETURN INT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg1 AS
|
||||
FUNCTION f1() RETURN INT AS
|
||||
BEGIN
|
||||
RETURN 1;
|
||||
END;
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
||||
--vertical_results
|
||||
SELECT routine_name, routine_type, routine_definition
|
||||
FROM information_schema.routines
|
||||
WHERE routine_type LIKE 'PACKAGE%'
|
||||
ORDER BY routine_type;
|
||||
--horizontal_results
|
||||
|
||||
DROP PACKAGE pkg1;
|
||||
|
||||
# Testing a package with the executable section
|
||||
|
||||
SET sql_mode=ORACLE;
|
||||
DELIMITER $$;
|
||||
CREATE OR REPLACE PACKAGE pkg1 AS
|
||||
FUNCTION f1() RETURN INT;
|
||||
END;
|
||||
$$
|
||||
CREATE PACKAGE BODY pkg1 AS
|
||||
FUNCTION f1() RETURN INT AS
|
||||
BEGIN
|
||||
RETURN 1;
|
||||
END;
|
||||
BEGIN
|
||||
SET @a=10;
|
||||
SET @a=f1();
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
||||
--vertical_results
|
||||
SELECT routine_name, routine_type, routine_definition
|
||||
FROM information_schema.routines
|
||||
WHERE routine_type LIKE 'PACKAGE%'
|
||||
ORDER BY routine_type;
|
||||
--horizontal_results
|
||||
|
||||
DROP PACKAGE pkg1;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.5 tests
|
||||
--echo #
|
@@ -3,6 +3,7 @@
|
||||
SET sql_mode=ORACLE;
|
||||
|
||||
--enable_prepare_warnings
|
||||
--disable_ps2_protocol
|
||||
|
||||
--echo #
|
||||
--echo # Creating a body of a non-existing package
|
||||
@@ -3013,6 +3014,7 @@ DELIMITER ;$$
|
||||
|
||||
SELECT db2.pkg1.var1();
|
||||
CALL db2.pkg1.p2_db1_pkg1_p1;
|
||||
--enable_ps2_protocol
|
||||
|
||||
DROP DATABASE db1;
|
||||
DROP DATABASE db2;
|
||||
|
Reference in New Issue
Block a user