diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:07:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:07:14 +0000 |
commit | a175314c3e5827eb193872241446f2f8f5c9d33c (patch) | |
tree | cd3d60ca99ae00829c52a6ca79150a5b6e62528b /mysql-test/main/information_schema_parameters.test | |
parent | Initial commit. (diff) | |
download | mariadb-10.5-a175314c3e5827eb193872241446f2f8f5c9d33c.tar.xz mariadb-10.5-a175314c3e5827eb193872241446f2f8f5c9d33c.zip |
Adding upstream version 1:10.5.12.upstream/1%10.5.12upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/main/information_schema_parameters.test')
-rw-r--r-- | mysql-test/main/information_schema_parameters.test | 278 |
1 files changed, 278 insertions, 0 deletions
diff --git a/mysql-test/main/information_schema_parameters.test b/mysql-test/main/information_schema_parameters.test new file mode 100644 index 00000000..81aef66b --- /dev/null +++ b/mysql-test/main/information_schema_parameters.test @@ -0,0 +1,278 @@ +#------------------------------------------------------------------------------ +# i_s_parameters.test +# .test file for MySQL regression suite +# Purpose: To test the presence, structure, and behavior +# of INFORMATION_SCHEMA.PARAMETERS +# Author: pcrews +# Last modified: 2007-12-03 +#------------------------------------------------------------------------------ + +--source include/default_charset.inc + +############################################################################### +# Testcase parameters.1: Verify INFORMATION_SCHEMA.PARAMETERS view has the +# following structure: +# SPECIFIC_CATALOG NULL +# SPECIFIC_SCHEMA routine's database +# SPECIFIC_NAME routine's name +# ORDINAL_POSITION first stored routine parameter is 1, +# always 0 for stored function RETURN +# PARAMETER_MODE 'IN' or 'OUT' or 'INOUT' +# PARAMETER_NAME the parameter's name +# DATA_TYPE same as for COLUMNS +# CHARACTER_MAXIMUM_LENGTH same as for COLUMNS +# CHARACTER_OCTET_LENGTH same as for COLUMNS +# CHARACTER_SET_NAME same as for COLUMNS +# COLLATION_NAME same as for COLUMNS +# NUMERIC_PRECISION same as for COLUMNS +# NUMERIC_SCALE same as for COLUMNS +# DTD_IDENTIFIER same as for PARAMETERS +############################################################################### +-- echo # ========== parameters.1 ========== +USE INFORMATION_SCHEMA; +--replace_result ENGINE=MyISAM "" ENGINE=MARIA "" ENGINE=Aria "" " PAGE_CHECKSUM=1" "" " PAGE_CHECKSUM=0" "" +SHOW CREATE TABLE INFORMATION_SCHEMA.PARAMETERS; + +# embedded server does not display privileges +--replace_column 19 # +query_vertical SELECT * FROM information_schema.columns +WHERE table_schema = 'information_schema' + AND table_name = 'parameters' +ORDER BY ordinal_position; + +DESCRIBE INFORMATION_SCHEMA.PARAMETERS; + +############################################################################### +# Testcase parameters.2: Unsuccessful stored procedure CREATE will not populate +# I_S.PARAMETERS view +############################################################################### +-- echo # ========== parameters.2 ========== +--disable_warnings +DROP DATABASE IF EXISTS i_s_parameters_test; +--enable_warnings + +CREATE DATABASE i_s_parameters_test; +USE i_s_parameters_test; + +# Missing closing ')' character at the end of 's char(20) in func declaration +--error ER_PARSE_ERROR +CREATE FUNCTION test_func1 (s char(20) RETURNS CHAR(50) +RETURN CONCAT('Hello', ,s,'!'); +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func1'; + +############################################################################### +# Testcase parameters.3: DROP FUNCTION - Verify DROP of a stored procedure +# removes I_S.PARAMETERS data for that +# function / procedure +############################################################################### +-- echo # ========== parameters.3 ========== +--disable_warnings +DROP DATABASE IF EXISTS i_s_parameters_test; +--enable_warnings + +CREATE DATABASE i_s_parameters_test; +USE i_s_parameters_test; + +CREATE FUNCTION test_func1 (s char(20)) RETURNS CHAR(50) +RETURN CONCAT('Hello, ',s,'!'); +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func1'; +DROP FUNCTION test_func1; +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func1'; + +############################################################################### +# Testcase parameters.4: CREATE PROCEDURE - IN +############################################################################### +-- echo # ========== parameters.4 ========== +--disable_warnings +DROP DATABASE IF EXISTS i_s_parameters_test; +--enable_warnings + +CREATE DATABASE i_s_parameters_test; +USE i_s_parameters_test; + +delimiter //; +CREATE PROCEDURE testproc (IN param1 INT) + BEGIN + SELECT 2+2 as param1; + END; +// +delimiter ;// +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'testproc'; + + +############################################################################### +# Testcase parameters.5: CREATE PROCEDURE - INOUT +############################################################################### +-- echo # ========== parameters.5 ========== +--disable_warnings +DROP DATABASE IF EXISTS i_s_parameters_test; +--enable_warnings + +CREATE DATABASE i_s_parameters_test; +USE i_s_parameters_test; + +CREATE PROCEDURE test_proc(INOUT P INT) SET @x=P*2; +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_proc'; + +############################################################################### +# Testcase parameters.6: CREATE PROCEDURE - OUT +############################################################################### +-- echo # ========== parameters.6 ========== +--disable_warnings +DROP DATABASE IF EXISTS i_s_parameters_test; +--enable_warnings + +CREATE DATABASE i_s_parameters_test; +USE i_s_parameters_test; + +CREATE PROCEDURE test_proc(OUT p VARCHAR(10)) SET P='test'; +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_proc'; + +############################################################################### +# Testcase parameters.7: CREATE FUNCTION - ORDINAL POSITION +# Verify proper behavior for several aspects here +# 3 rows should be created -- 1 for each IN parameter +# 1 for the RETURNS param +# ORDINAL POSITION values should be 0 for RETURNS +# 1 and 2 for IN parameters +# PARAM NAME and MODE should = NULL for RETURNS parm +############################################################################### +-- echo # ========== parameters.7 ========== +--disable_warnings +DROP DATABASE IF EXISTS i_s_parameters_test; +--enable_warnings + +CREATE DATABASE i_s_parameters_test; +USE i_s_parameters_test; + +CREATE FUNCTION test_func1 (s char(20), t char(20)) RETURNS CHAR(40) +RETURN CONCAT(s,t); +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func1'; + +############################################################################### +# Testcase parameters.8: CREATE FUNCTION - CHAR parameters +# Verify CHAR related columns are populated for such a +# parameter -- NUMERIC columns should be NULL +############################################################################### +-- echo # ========== parameters.8 ========== +--disable_warnings +DROP DATABASE IF EXISTS i_s_parameters_test; +--enable_warnings + +CREATE DATABASE i_s_parameters_test; +USE i_s_parameters_test; + +CREATE FUNCTION test_func1 (s char(20)) RETURNS CHAR(50) +RETURN CONCAT('Hello, ',s,'!'); +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func1'; + +############################################################################### +# Testcase parameters.9: CREATE FUNCTION - NUMERIC parameters +# Verify NUMERIC related columns are populated for such +# parameter -- CHAR columns should be NULL +############################################################################### +-- echo # ========== parameters.9 ========== +--disable_warnings +DROP DATABASE IF EXISTS i_s_parameters_test; +--enable_warnings + +CREATE DATABASE i_s_parameters_test; +USE i_s_parameters_test; + +CREATE FUNCTION test_func2 (s int) RETURNS INT RETURN s*2; +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func2'; + +############################################################################### +# Testcase parameters.10: CREATE FUNCTION - DATE +# Verify NUMERIC and CHAR related columns are NULL +############################################################################### +-- echo # ========== parameters.10 ========== +--disable_warnings +DROP DATABASE IF EXISTS i_s_parameters_test; +--enable_warnings + +CREATE DATABASE i_s_parameters_test; +USE i_s_parameters_test; + +CREATE FUNCTION test_func5 (s date) RETURNS TIMESTAMP +RETURN CURRENT_TIMESTAMP; +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func5'; + +############################################################################### +# Testcase parameters.11: ALTER FUNCTION +# Quick check to ensure ALTER doesn't affect this view +# Should have no effect -- comment visible in ROUTINES +# tested in i_s_routines.test +############################################################################### +-- echo # ========== parameters.11 ========== +--disable_warnings +DROP DATABASE IF EXISTS i_s_parameters_test; +--enable_warnings + +CREATE DATABASE i_s_parameters_test; +USE i_s_parameters_test; + +CREATE FUNCTION test_func5 (s date) RETURNS TIMESTAMP +RETURN CURRENT_TIMESTAMP; +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func5'; +ALTER FUNCTION test_func5 COMMENT 'new comment added'; +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func5'; + +############################################################################### +# Testcase parameters.12: MULTI-BYTE CHAR SETS +# Verify that CHAR_MAX_LENGTH and CHAR_OCTET_LENGTH +# differ as expected for multi-byte char sets +# Normally both values are equal +############################################################################### +-- echo # ========== parameters.12 ========== +--disable_warnings +DROP DATABASE IF EXISTS i_s_parameters_test; +--enable_warnings + +CREATE DATABASE i_s_parameters_test CHARACTER SET utf8; +USE i_s_parameters_test; + +CREATE FUNCTION test_func5 (s CHAR(20)) RETURNS VARCHAR(30) +RETURN CONCAT('XYZ, ' ,s); +SELECT * FROM INFORMATION_SCHEMA.PARAMETERS +WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func5'; + +# Cleanup +DROP DATABASE i_s_parameters_test; +USE test; + + +--echo # +--echo # Start of 10.3 tests +--echo # + +--echo # +--echo # MDEV-15416 Crash when reading I_S.PARAMETERS +--echo # + +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, + c ROW(a INT,b DOUBLE)) +BEGIN +END; +$$ +DELIMITER ;$$ +--vertical_results +SELECT *, '--------' FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME = 'p1'; +--horizontal_results +DROP PROCEDURE p1; |