mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	Fix INFORMATION_SCHEMA.COLUMNS.COLUMN_DEFAULT to be standard-compliant, but keep SHOW COLUMNS backward-compatibly unchanged.
		
			
				
	
	
		
			527 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			527 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # ========== parameters.1 ==========
 | |
| USE INFORMATION_SCHEMA;
 | |
| SHOW CREATE TABLE INFORMATION_SCHEMA.PARAMETERS;
 | |
| Table	Create Table
 | |
| PARAMETERS	CREATE TEMPORARY TABLE `PARAMETERS` (
 | |
|   `SPECIFIC_CATALOG` varchar(512) NOT NULL DEFAULT '',
 | |
|   `SPECIFIC_SCHEMA` varchar(64) NOT NULL DEFAULT '',
 | |
|   `SPECIFIC_NAME` varchar(64) NOT NULL DEFAULT '',
 | |
|   `ORDINAL_POSITION` int(21) NOT NULL DEFAULT 0,
 | |
|   `PARAMETER_MODE` varchar(5) DEFAULT NULL,
 | |
|   `PARAMETER_NAME` varchar(64) DEFAULT NULL,
 | |
|   `DATA_TYPE` varchar(64) NOT NULL DEFAULT '',
 | |
|   `CHARACTER_MAXIMUM_LENGTH` int(21) DEFAULT NULL,
 | |
|   `CHARACTER_OCTET_LENGTH` int(21) DEFAULT NULL,
 | |
|   `NUMERIC_PRECISION` int(21) DEFAULT NULL,
 | |
|   `NUMERIC_SCALE` int(21) DEFAULT NULL,
 | |
|   `DATETIME_PRECISION` bigint(21) unsigned DEFAULT NULL,
 | |
|   `CHARACTER_SET_NAME` varchar(64) DEFAULT NULL,
 | |
|   `COLLATION_NAME` varchar(64) DEFAULT NULL,
 | |
|   `DTD_IDENTIFIER` longtext NOT NULL DEFAULT '',
 | |
|   `ROUTINE_TYPE` varchar(9) NOT NULL DEFAULT ''
 | |
| )  DEFAULT CHARSET=utf8
 | |
| SELECT * FROM information_schema.columns
 | |
| WHERE table_schema = 'information_schema'
 | |
|   AND table_name   = 'parameters'
 | |
| ORDER BY ordinal_position;
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	SPECIFIC_CATALOG
 | |
| ORDINAL_POSITION	1
 | |
| COLUMN_DEFAULT	''
 | |
| IS_NULLABLE	NO
 | |
| DATA_TYPE	varchar
 | |
| CHARACTER_MAXIMUM_LENGTH	512
 | |
| CHARACTER_OCTET_LENGTH	1536
 | |
| NUMERIC_PRECISION	NULL
 | |
| NUMERIC_SCALE	NULL
 | |
| DATETIME_PRECISION	NULL
 | |
| CHARACTER_SET_NAME	utf8
 | |
| COLLATION_NAME	utf8_general_ci
 | |
| COLUMN_TYPE	varchar(512)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	SPECIFIC_SCHEMA
 | |
| ORDINAL_POSITION	2
 | |
| COLUMN_DEFAULT	''
 | |
| IS_NULLABLE	NO
 | |
| DATA_TYPE	varchar
 | |
| CHARACTER_MAXIMUM_LENGTH	64
 | |
| CHARACTER_OCTET_LENGTH	192
 | |
| NUMERIC_PRECISION	NULL
 | |
| NUMERIC_SCALE	NULL
 | |
| DATETIME_PRECISION	NULL
 | |
| CHARACTER_SET_NAME	utf8
 | |
| COLLATION_NAME	utf8_general_ci
 | |
| COLUMN_TYPE	varchar(64)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	SPECIFIC_NAME
 | |
| ORDINAL_POSITION	3
 | |
| COLUMN_DEFAULT	''
 | |
| IS_NULLABLE	NO
 | |
| DATA_TYPE	varchar
 | |
| CHARACTER_MAXIMUM_LENGTH	64
 | |
| CHARACTER_OCTET_LENGTH	192
 | |
| NUMERIC_PRECISION	NULL
 | |
| NUMERIC_SCALE	NULL
 | |
| DATETIME_PRECISION	NULL
 | |
| CHARACTER_SET_NAME	utf8
 | |
| COLLATION_NAME	utf8_general_ci
 | |
| COLUMN_TYPE	varchar(64)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	ORDINAL_POSITION
 | |
| ORDINAL_POSITION	4
 | |
| COLUMN_DEFAULT	0
 | |
| IS_NULLABLE	NO
 | |
| 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
 | |
| COLUMN_TYPE	int(21)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	PARAMETER_MODE
 | |
| ORDINAL_POSITION	5
 | |
| COLUMN_DEFAULT	NULL
 | |
| IS_NULLABLE	YES
 | |
| DATA_TYPE	varchar
 | |
| CHARACTER_MAXIMUM_LENGTH	5
 | |
| CHARACTER_OCTET_LENGTH	15
 | |
| NUMERIC_PRECISION	NULL
 | |
| NUMERIC_SCALE	NULL
 | |
| DATETIME_PRECISION	NULL
 | |
| CHARACTER_SET_NAME	utf8
 | |
| COLLATION_NAME	utf8_general_ci
 | |
| COLUMN_TYPE	varchar(5)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	PARAMETER_NAME
 | |
| ORDINAL_POSITION	6
 | |
| COLUMN_DEFAULT	NULL
 | |
| IS_NULLABLE	YES
 | |
| DATA_TYPE	varchar
 | |
| CHARACTER_MAXIMUM_LENGTH	64
 | |
| CHARACTER_OCTET_LENGTH	192
 | |
| NUMERIC_PRECISION	NULL
 | |
| NUMERIC_SCALE	NULL
 | |
| DATETIME_PRECISION	NULL
 | |
| CHARACTER_SET_NAME	utf8
 | |
| COLLATION_NAME	utf8_general_ci
 | |
| COLUMN_TYPE	varchar(64)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	DATA_TYPE
 | |
| ORDINAL_POSITION	7
 | |
| COLUMN_DEFAULT	''
 | |
| IS_NULLABLE	NO
 | |
| DATA_TYPE	varchar
 | |
| CHARACTER_MAXIMUM_LENGTH	64
 | |
| CHARACTER_OCTET_LENGTH	192
 | |
| NUMERIC_PRECISION	NULL
 | |
| NUMERIC_SCALE	NULL
 | |
| DATETIME_PRECISION	NULL
 | |
| CHARACTER_SET_NAME	utf8
 | |
| COLLATION_NAME	utf8_general_ci
 | |
| COLUMN_TYPE	varchar(64)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	CHARACTER_MAXIMUM_LENGTH
 | |
| ORDINAL_POSITION	8
 | |
| COLUMN_DEFAULT	NULL
 | |
| IS_NULLABLE	YES
 | |
| 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
 | |
| COLUMN_TYPE	int(21)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	CHARACTER_OCTET_LENGTH
 | |
| ORDINAL_POSITION	9
 | |
| COLUMN_DEFAULT	NULL
 | |
| IS_NULLABLE	YES
 | |
| 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
 | |
| COLUMN_TYPE	int(21)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	NUMERIC_PRECISION
 | |
| ORDINAL_POSITION	10
 | |
| COLUMN_DEFAULT	NULL
 | |
| IS_NULLABLE	YES
 | |
| 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
 | |
| COLUMN_TYPE	int(21)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	NUMERIC_SCALE
 | |
| ORDINAL_POSITION	11
 | |
| COLUMN_DEFAULT	NULL
 | |
| IS_NULLABLE	YES
 | |
| 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
 | |
| COLUMN_TYPE	int(21)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	DATETIME_PRECISION
 | |
| ORDINAL_POSITION	12
 | |
| COLUMN_DEFAULT	NULL
 | |
| IS_NULLABLE	YES
 | |
| DATA_TYPE	bigint
 | |
| CHARACTER_MAXIMUM_LENGTH	NULL
 | |
| CHARACTER_OCTET_LENGTH	NULL
 | |
| NUMERIC_PRECISION	20
 | |
| NUMERIC_SCALE	0
 | |
| DATETIME_PRECISION	NULL
 | |
| CHARACTER_SET_NAME	NULL
 | |
| COLLATION_NAME	NULL
 | |
| COLUMN_TYPE	bigint(21) unsigned
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	CHARACTER_SET_NAME
 | |
| ORDINAL_POSITION	13
 | |
| COLUMN_DEFAULT	NULL
 | |
| IS_NULLABLE	YES
 | |
| DATA_TYPE	varchar
 | |
| CHARACTER_MAXIMUM_LENGTH	64
 | |
| CHARACTER_OCTET_LENGTH	192
 | |
| NUMERIC_PRECISION	NULL
 | |
| NUMERIC_SCALE	NULL
 | |
| DATETIME_PRECISION	NULL
 | |
| CHARACTER_SET_NAME	utf8
 | |
| COLLATION_NAME	utf8_general_ci
 | |
| COLUMN_TYPE	varchar(64)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	COLLATION_NAME
 | |
| ORDINAL_POSITION	14
 | |
| COLUMN_DEFAULT	NULL
 | |
| IS_NULLABLE	YES
 | |
| DATA_TYPE	varchar
 | |
| CHARACTER_MAXIMUM_LENGTH	64
 | |
| CHARACTER_OCTET_LENGTH	192
 | |
| NUMERIC_PRECISION	NULL
 | |
| NUMERIC_SCALE	NULL
 | |
| DATETIME_PRECISION	NULL
 | |
| CHARACTER_SET_NAME	utf8
 | |
| COLLATION_NAME	utf8_general_ci
 | |
| COLUMN_TYPE	varchar(64)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	DTD_IDENTIFIER
 | |
| ORDINAL_POSITION	15
 | |
| COLUMN_DEFAULT	''
 | |
| IS_NULLABLE	NO
 | |
| DATA_TYPE	longtext
 | |
| CHARACTER_MAXIMUM_LENGTH	4294967295
 | |
| CHARACTER_OCTET_LENGTH	4294967295
 | |
| NUMERIC_PRECISION	NULL
 | |
| NUMERIC_SCALE	NULL
 | |
| DATETIME_PRECISION	NULL
 | |
| CHARACTER_SET_NAME	utf8
 | |
| COLLATION_NAME	utf8_general_ci
 | |
| COLUMN_TYPE	longtext
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| TABLE_CATALOG	def
 | |
| TABLE_SCHEMA	information_schema
 | |
| TABLE_NAME	PARAMETERS
 | |
| COLUMN_NAME	ROUTINE_TYPE
 | |
| ORDINAL_POSITION	16
 | |
| COLUMN_DEFAULT	''
 | |
| IS_NULLABLE	NO
 | |
| DATA_TYPE	varchar
 | |
| CHARACTER_MAXIMUM_LENGTH	9
 | |
| CHARACTER_OCTET_LENGTH	27
 | |
| NUMERIC_PRECISION	NULL
 | |
| NUMERIC_SCALE	NULL
 | |
| DATETIME_PRECISION	NULL
 | |
| CHARACTER_SET_NAME	utf8
 | |
| COLLATION_NAME	utf8_general_ci
 | |
| COLUMN_TYPE	varchar(9)
 | |
| COLUMN_KEY	
 | |
| EXTRA	
 | |
| PRIVILEGES	#
 | |
| COLUMN_COMMENT	
 | |
| IS_GENERATED	NEVER
 | |
| GENERATION_EXPRESSION	NULL
 | |
| DESCRIBE INFORMATION_SCHEMA.PARAMETERS;
 | |
| Field	Type	Null	Key	Default	Extra
 | |
| SPECIFIC_CATALOG	varchar(512)	NO			
 | |
| SPECIFIC_SCHEMA	varchar(64)	NO			
 | |
| SPECIFIC_NAME	varchar(64)	NO			
 | |
| ORDINAL_POSITION	int(21)	NO		0	
 | |
| PARAMETER_MODE	varchar(5)	YES		NULL	
 | |
| PARAMETER_NAME	varchar(64)	YES		NULL	
 | |
| DATA_TYPE	varchar(64)	NO			
 | |
| CHARACTER_MAXIMUM_LENGTH	int(21)	YES		NULL	
 | |
| CHARACTER_OCTET_LENGTH	int(21)	YES		NULL	
 | |
| NUMERIC_PRECISION	int(21)	YES		NULL	
 | |
| NUMERIC_SCALE	int(21)	YES		NULL	
 | |
| DATETIME_PRECISION	bigint(21) unsigned	YES		NULL	
 | |
| CHARACTER_SET_NAME	varchar(64)	YES		NULL	
 | |
| COLLATION_NAME	varchar(64)	YES		NULL	
 | |
| DTD_IDENTIFIER	longtext	NO			
 | |
| ROUTINE_TYPE	varchar(9)	NO			
 | |
| # ========== parameters.2 ==========
 | |
| DROP DATABASE IF EXISTS i_s_parameters_test;
 | |
| 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,'!');
 | |
| 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 'RETURNS CHAR(50)
 | |
| RETURN CONCAT('Hello', ,s,'!')' at line 1
 | |
| SELECT * FROM INFORMATION_SCHEMA.PARAMETERS
 | |
| WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func1';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| # ========== parameters.3 ==========
 | |
| DROP DATABASE IF EXISTS i_s_parameters_test;
 | |
| 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';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| def	i_s_parameters_test	test_func1	0	NULL	NULL	char	50	50	NULL	NULL	NULL	latin1	latin1_swedish_ci	char(50)	FUNCTION
 | |
| def	i_s_parameters_test	test_func1	1	IN	s	char	20	20	NULL	NULL	NULL	latin1	latin1_swedish_ci	char(20)	FUNCTION
 | |
| DROP FUNCTION test_func1;
 | |
| SELECT * FROM INFORMATION_SCHEMA.PARAMETERS
 | |
| WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'test_func1';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| # ========== parameters.4 ==========
 | |
| DROP DATABASE IF EXISTS i_s_parameters_test;
 | |
| CREATE DATABASE i_s_parameters_test;
 | |
| USE i_s_parameters_test;
 | |
| CREATE PROCEDURE testproc (OUT param1 INT)
 | |
| BEGIN
 | |
| SELECT 2+2 as param1;
 | |
| END;
 | |
| //
 | |
| SELECT * FROM INFORMATION_SCHEMA.PARAMETERS
 | |
| WHERE SPECIFIC_SCHEMA = 'i_s_parameters_test' AND SPECIFIC_NAME = 'testproc';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| def	i_s_parameters_test	testproc	1	OUT	param1	int	NULL	NULL	10	0	NULL	NULL	NULL	int(11)	PROCEDURE
 | |
| # ========== parameters.5 ==========
 | |
| DROP DATABASE IF EXISTS i_s_parameters_test;
 | |
| 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';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| def	i_s_parameters_test	test_proc	1	INOUT	P	int	NULL	NULL	10	0	NULL	NULL	NULL	int(11)	PROCEDURE
 | |
| # ========== parameters.6 ==========
 | |
| DROP DATABASE IF EXISTS i_s_parameters_test;
 | |
| 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';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| def	i_s_parameters_test	test_proc	1	OUT	p	varchar	10	10	NULL	NULL	NULL	latin1	latin1_swedish_ci	varchar(10)	PROCEDURE
 | |
| # ========== parameters.7 ==========
 | |
| DROP DATABASE IF EXISTS i_s_parameters_test;
 | |
| 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';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| def	i_s_parameters_test	test_func1	0	NULL	NULL	char	40	40	NULL	NULL	NULL	latin1	latin1_swedish_ci	char(40)	FUNCTION
 | |
| def	i_s_parameters_test	test_func1	1	IN	s	char	20	20	NULL	NULL	NULL	latin1	latin1_swedish_ci	char(20)	FUNCTION
 | |
| def	i_s_parameters_test	test_func1	2	IN	t	char	20	20	NULL	NULL	NULL	latin1	latin1_swedish_ci	char(20)	FUNCTION
 | |
| # ========== parameters.8 ==========
 | |
| DROP DATABASE IF EXISTS i_s_parameters_test;
 | |
| 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';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| def	i_s_parameters_test	test_func1	0	NULL	NULL	char	50	50	NULL	NULL	NULL	latin1	latin1_swedish_ci	char(50)	FUNCTION
 | |
| def	i_s_parameters_test	test_func1	1	IN	s	char	20	20	NULL	NULL	NULL	latin1	latin1_swedish_ci	char(20)	FUNCTION
 | |
| # ========== parameters.9 ==========
 | |
| DROP DATABASE IF EXISTS i_s_parameters_test;
 | |
| 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';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| def	i_s_parameters_test	test_func2	0	NULL	NULL	int	NULL	NULL	10	0	NULL	NULL	NULL	int(11)	FUNCTION
 | |
| def	i_s_parameters_test	test_func2	1	IN	s	int	NULL	NULL	10	0	NULL	NULL	NULL	int(11)	FUNCTION
 | |
| # ========== parameters.10 ==========
 | |
| DROP DATABASE IF EXISTS i_s_parameters_test;
 | |
| 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';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| def	i_s_parameters_test	test_func5	0	NULL	NULL	timestamp	NULL	NULL	NULL	NULL	0	NULL	NULL	timestamp	FUNCTION
 | |
| def	i_s_parameters_test	test_func5	1	IN	s	date	NULL	NULL	NULL	NULL	NULL	NULL	NULL	date	FUNCTION
 | |
| # ========== parameters.11 ==========
 | |
| DROP DATABASE IF EXISTS i_s_parameters_test;
 | |
| 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';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| def	i_s_parameters_test	test_func5	0	NULL	NULL	timestamp	NULL	NULL	NULL	NULL	0	NULL	NULL	timestamp	FUNCTION
 | |
| def	i_s_parameters_test	test_func5	1	IN	s	date	NULL	NULL	NULL	NULL	NULL	NULL	NULL	date	FUNCTION
 | |
| 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';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| def	i_s_parameters_test	test_func5	0	NULL	NULL	timestamp	NULL	NULL	NULL	NULL	0	NULL	NULL	timestamp	FUNCTION
 | |
| def	i_s_parameters_test	test_func5	1	IN	s	date	NULL	NULL	NULL	NULL	NULL	NULL	NULL	date	FUNCTION
 | |
| # ========== parameters.12 ==========
 | |
| DROP DATABASE IF EXISTS i_s_parameters_test;
 | |
| 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';
 | |
| SPECIFIC_CATALOG	SPECIFIC_SCHEMA	SPECIFIC_NAME	ORDINAL_POSITION	PARAMETER_MODE	PARAMETER_NAME	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	DATETIME_PRECISION	CHARACTER_SET_NAME	COLLATION_NAME	DTD_IDENTIFIER	ROUTINE_TYPE
 | |
| def	i_s_parameters_test	test_func5	0	NULL	NULL	varchar	30	90	NULL	NULL	NULL	utf8	utf8_general_ci	varchar(30)	FUNCTION
 | |
| def	i_s_parameters_test	test_func5	1	IN	s	char	20	60	NULL	NULL	NULL	utf8	utf8_general_ci	char(20)	FUNCTION
 | |
| DROP DATABASE i_s_parameters_test;
 |