diff options
author | Alexander Barkov <bar@mariadb.com> | 2018-03-02 12:09:41 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2018-03-02 12:09:41 +0400 |
commit | d70573564cb2701076083ea7f55ae9539fad13b4 (patch) | |
tree | 77784321bacf1f37aeb28f0beade9aa1426ce4e2 /mysql-test/suite/compat | |
parent | 5cf0662d76556b09f5d17af69fe37530ce6547fc (diff) | |
parent | 88a9d4ab42d370dedc9b1d90c75bee53fd8fb8c0 (diff) | |
download | mariadb-git-d70573564cb2701076083ea7f55ae9539fad13b4.tar.gz |
Merge remote-tracking branch 'origin/bb-10.2-ext' into 10.3
Diffstat (limited to 'mysql-test/suite/compat')
-rw-r--r-- | mysql-test/suite/compat/oracle/r/information_schema_parameters.result | 816 | ||||
-rw-r--r-- | mysql-test/suite/compat/oracle/t/information_schema_parameters.test | 94 |
2 files changed, 910 insertions, 0 deletions
diff --git a/mysql-test/suite/compat/oracle/r/information_schema_parameters.result b/mysql-test/suite/compat/oracle/r/information_schema_parameters.result new file mode 100644 index 00000000000..e1ed53c39de --- /dev/null +++ b/mysql-test/suite/compat/oracle/r/information_schema_parameters.result @@ -0,0 +1,816 @@ +# +# 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; diff --git a/mysql-test/suite/compat/oracle/t/information_schema_parameters.test b/mysql-test/suite/compat/oracle/t/information_schema_parameters.test new file mode 100644 index 00000000000..af241661939 --- /dev/null +++ b/mysql-test/suite/compat/oracle/t/information_schema_parameters.test @@ -0,0 +1,94 @@ + +--echo # +--echo # MDEV-15416 Crash when reading I_S.PARAMETERS +--echo # + +--echo # Create in sql_mode=ORACLE, display in sql_mode=ORACLE and sql_mode=DEFAULT + +SET sql_mode=ORACLE; +DELIMITER $$; +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; +$$ +DELIMITER ;$$ +--vertical_results +SET sql_mode=ORACLE; +SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='p1'; +SET sql_mode=DEFAULT; +SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='p1'; +--horizontal_results +DROP PROCEDURE p1; + + +SET sql_mode=ORACLE; +DELIMITER $$; +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; +$$ +DELIMITER ;$$ +--vertical_results +SET sql_mode=ORACLE; +SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='f1'; +SET sql_mode=DEFAULT; +SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='f1'; +--horizontal_results +DROP FUNCTION f1; + + +--echo # Create in sql_mode=DEFAULT, display in sql_mode=DEFAULT and sql_mode=ORACLE + +SET sql_mode=DEFAULT; +DELIMITER $$; +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; +$$ +DELIMITER ;$$ +--vertical_results +SET sql_mode=DEFAULT; +SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='p1'; +SET sql_mode=ORACLE; +SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='p1'; +--horizontal_results +DROP PROCEDURE p1; + + +SET sql_mode=DEFAULT; +DELIMITER $$; +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; +$$ +DELIMITER ;$$ +--vertical_results +SET sql_mode=DEFAULT; +SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='f1'; +SET sql_mode=ORACLE; +SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='f1'; +--horizontal_results +DROP FUNCTION f1; |