# # MDEV-15416 Crash when reading I_S.PARAMETERS # # Create in sql_mode=ORACLE, display in sql_mode=ORACLE and sql_mode=DEFAULT SET sql_mode=ORACLE; CREATE PROCEDURE p1(a0 t1.a%TYPE, a1 test.t1.a%TYPE, b0 t1%ROWTYPE, b1 test.t1%ROWTYPE, d ROW(a INT,b DOUBLE)) AS BEGIN NULL; END; $$ SET sql_mode=ORACLE; SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='p1'; SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 1 PARAMETER_MODE IN PARAMETER_NAME a0 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "t1"."a"%TYPE ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 2 PARAMETER_MODE IN PARAMETER_NAME a1 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "test"."t1"."a"%TYPE ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 3 PARAMETER_MODE IN PARAMETER_NAME b0 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "t1"%ROWTYPE ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 4 PARAMETER_MODE IN PARAMETER_NAME b1 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "test"."t1"%ROWTYPE ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 5 PARAMETER_MODE IN PARAMETER_NAME d DATA_TYPE ROW CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW ROUTINE_TYPE PROCEDURE -------- -------- SET sql_mode=DEFAULT; SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='p1'; SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 1 PARAMETER_MODE IN PARAMETER_NAME a0 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "t1"."a"%TYPE ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 2 PARAMETER_MODE IN PARAMETER_NAME a1 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "test"."t1"."a"%TYPE ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 3 PARAMETER_MODE IN PARAMETER_NAME b0 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "t1"%ROWTYPE ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 4 PARAMETER_MODE IN PARAMETER_NAME b1 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "test"."t1"%ROWTYPE ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 5 PARAMETER_MODE IN PARAMETER_NAME d DATA_TYPE ROW CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW ROUTINE_TYPE PROCEDURE -------- -------- DROP PROCEDURE p1; SET sql_mode=ORACLE; CREATE FUNCTION f1(a0 t1.a%TYPE, a1 test.t1.a%TYPE, b0 t1%ROWTYPE, b1 test.t1%ROWTYPE, d ROW(a INT,b DOUBLE)) RETURN INT AS BEGIN RETURN 0; END; $$ SET sql_mode=ORACLE; SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='f1'; SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 0 PARAMETER_MODE NULL PARAMETER_NAME NULL DATA_TYPE int CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION 10 NUMERIC_SCALE 0 DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER int(11) ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 1 PARAMETER_MODE IN PARAMETER_NAME a0 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "t1"."a"%TYPE ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 2 PARAMETER_MODE IN PARAMETER_NAME a1 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "test"."t1"."a"%TYPE ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 3 PARAMETER_MODE IN PARAMETER_NAME b0 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "t1"%ROWTYPE ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 4 PARAMETER_MODE IN PARAMETER_NAME b1 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "test"."t1"%ROWTYPE ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 5 PARAMETER_MODE IN PARAMETER_NAME d DATA_TYPE ROW CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW ROUTINE_TYPE FUNCTION -------- -------- SET sql_mode=DEFAULT; SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='f1'; SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 0 PARAMETER_MODE NULL PARAMETER_NAME NULL DATA_TYPE int CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION 10 NUMERIC_SCALE 0 DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER int(11) ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 1 PARAMETER_MODE IN PARAMETER_NAME a0 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "t1"."a"%TYPE ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 2 PARAMETER_MODE IN PARAMETER_NAME a1 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "test"."t1"."a"%TYPE ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 3 PARAMETER_MODE IN PARAMETER_NAME b0 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "t1"%ROWTYPE ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 4 PARAMETER_MODE IN PARAMETER_NAME b1 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER "test"."t1"%ROWTYPE ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 5 PARAMETER_MODE IN PARAMETER_NAME d DATA_TYPE ROW CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW ROUTINE_TYPE FUNCTION -------- -------- DROP FUNCTION f1; # Create in sql_mode=DEFAULT, display in sql_mode=DEFAULT and sql_mode=ORACLE SET sql_mode=DEFAULT; CREATE PROCEDURE p1(a0 TYPE OF t1.a, a1 TYPE OF test.t1.a, b0 ROW TYPE OF t1, b1 ROW TYPE OF test.t1, d ROW(a INT,b DOUBLE)) BEGIN END; $$ SET sql_mode=DEFAULT; SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='p1'; SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 1 PARAMETER_MODE IN PARAMETER_NAME a0 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER TYPE OF `t1`.`a` ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 2 PARAMETER_MODE IN PARAMETER_NAME a1 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER TYPE OF `test`.`t1`.`a` ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 3 PARAMETER_MODE IN PARAMETER_NAME b0 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW TYPE OF `t1` ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 4 PARAMETER_MODE IN PARAMETER_NAME b1 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW TYPE OF `test`.`t1` ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 5 PARAMETER_MODE IN PARAMETER_NAME d DATA_TYPE ROW CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW ROUTINE_TYPE PROCEDURE -------- -------- SET sql_mode=ORACLE; SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='p1'; SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 1 PARAMETER_MODE IN PARAMETER_NAME a0 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER TYPE OF `t1`.`a` ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 2 PARAMETER_MODE IN PARAMETER_NAME a1 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER TYPE OF `test`.`t1`.`a` ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 3 PARAMETER_MODE IN PARAMETER_NAME b0 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW TYPE OF `t1` ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 4 PARAMETER_MODE IN PARAMETER_NAME b1 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW TYPE OF `test`.`t1` ROUTINE_TYPE PROCEDURE -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME p1 ORDINAL_POSITION 5 PARAMETER_MODE IN PARAMETER_NAME d DATA_TYPE ROW CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW ROUTINE_TYPE PROCEDURE -------- -------- DROP PROCEDURE p1; SET sql_mode=DEFAULT; CREATE FUNCTION f1(a0 TYPE OF t1.a, a1 TYPE OF test.t1.a, b0 ROW TYPE OF t1, b1 ROW TYPE OF test.t1, d ROW(a INT,b DOUBLE)) RETURNS INT BEGIN RETURN 0; END; $$ SET sql_mode=DEFAULT; SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='f1'; SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 0 PARAMETER_MODE NULL PARAMETER_NAME NULL DATA_TYPE int CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION 10 NUMERIC_SCALE 0 DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER int(11) ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 1 PARAMETER_MODE IN PARAMETER_NAME a0 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER TYPE OF `t1`.`a` ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 2 PARAMETER_MODE IN PARAMETER_NAME a1 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER TYPE OF `test`.`t1`.`a` ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 3 PARAMETER_MODE IN PARAMETER_NAME b0 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW TYPE OF `t1` ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 4 PARAMETER_MODE IN PARAMETER_NAME b1 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW TYPE OF `test`.`t1` ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 5 PARAMETER_MODE IN PARAMETER_NAME d DATA_TYPE ROW CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW ROUTINE_TYPE FUNCTION -------- -------- SET sql_mode=ORACLE; SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='f1'; SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 0 PARAMETER_MODE NULL PARAMETER_NAME NULL DATA_TYPE int CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION 10 NUMERIC_SCALE 0 DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER int(11) ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 1 PARAMETER_MODE IN PARAMETER_NAME a0 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER TYPE OF `t1`.`a` ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 2 PARAMETER_MODE IN PARAMETER_NAME a1 DATA_TYPE TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER TYPE OF `test`.`t1`.`a` ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 3 PARAMETER_MODE IN PARAMETER_NAME b0 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW TYPE OF `t1` ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 4 PARAMETER_MODE IN PARAMETER_NAME b1 DATA_TYPE ROW TYPE OF CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW TYPE OF `test`.`t1` ROUTINE_TYPE FUNCTION -------- -------- SPECIFIC_CATALOG def SPECIFIC_SCHEMA test SPECIFIC_NAME f1 ORDINAL_POSITION 5 PARAMETER_MODE IN PARAMETER_NAME d DATA_TYPE ROW CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER ROW ROUTINE_TYPE FUNCTION -------- -------- DROP FUNCTION f1; # # MDEV 18092 Query with the table I_S.PARAMETERS stop working # after a package is created # SET sql_mode=ORACLE; CREATE DATABASE db1_mdev18092; USE db1_mdev18092; CREATE PROCEDURE p1(a INT) AS BEGIN NULL; END; $$ CREATE OR REPLACE PACKAGE employee_tools AS FUNCTION getSalary(eid INT) RETURN DECIMAL(10,2); PROCEDURE raiseSalary(eid INT, amount DECIMAL(10,2)); PROCEDURE raiseSalaryStd(eid INT); PROCEDURE hire(ename TEXT, esalary DECIMAL(10,2)); END; $$ SELECT *, '---------------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_SCHEMA='db1_mdev18092'; SPECIFIC_CATALOG def SPECIFIC_SCHEMA db1_mdev18092 SPECIFIC_NAME p1 ORDINAL_POSITION 1 PARAMETER_MODE IN PARAMETER_NAME a DATA_TYPE int CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION 10 NUMERIC_SCALE 0 DATETIME_PRECISION NULL CHARACTER_SET_NAME NULL COLLATION_NAME NULL DTD_IDENTIFIER int(11) ROUTINE_TYPE PROCEDURE --------------- --------------- DROP DATABASE db1_mdev18092;