Commit 6794da11 authored by anozdrin/alik@ibm.'s avatar anozdrin/alik@ibm.
Browse files

Fix for BUG#10491: Server returns data as charset binary

SHOW CREATE TABLE or SELECT FROM I_S.

Actually, the bug discovers two problems:
  - the original query is not preserved properly. This is the problem
    of BUG#16291;
  - the resultset of SHOW CREATE TABLE statement is binary.

This patch fixes the second problem for the 5.0.

Both problems will be fixed in 5.1.
parent 483bc203
Loading
Loading
Loading
Loading
+443 −0
Original line number Diff line number Diff line
@@ -7,60 +7,157 @@ delete from mysql.db where user='mysqltest_1' || user='mysqltest_2' || user='mys
flush privileges;
create table t1 (a int not null primary key, b int not null,c int not null, key(b,c));
insert into t1 values (1,2,2),(2,2,3),(3,2,4),(4,2,4);
-- Here we enable metadata just to check that the collation of the
-- resultset is non-binary for string type. This should be changed
-- after Bug#29394 is implemented.
check table t1 fast;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Table	253	42	7	Y	0	31	8
def					Op	253	3	5	Y	0	31	8
def					Msg_type	253	3	6	Y	0	31	8
def					Msg_text	253	85	27	Y	0	31	8
Table	Op	Msg_type	Msg_text
test.t1	check	status	Table is already up to date
check table t1 fast;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Table	253	42	7	Y	0	31	8
def					Op	253	3	5	Y	0	31	8
def					Msg_type	253	3	6	Y	0	31	8
def					Msg_text	253	85	27	Y	0	31	8
Table	Op	Msg_type	Msg_text
test.t1	check	status	Table is already up to date
check table t1 changed;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Table	253	42	7	Y	0	31	8
def					Op	253	3	5	Y	0	31	8
def					Msg_type	253	3	6	Y	0	31	8
def					Msg_text	253	85	2	Y	0	31	8
Table	Op	Msg_type	Msg_text
test.t1	check	status	OK
insert into t1 values (5,5,5);
check table t1 changed;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Table	253	42	7	Y	0	31	8
def					Op	253	3	5	Y	0	31	8
def					Msg_type	253	3	6	Y	0	31	8
def					Msg_text	253	85	2	Y	0	31	8
Table	Op	Msg_type	Msg_text
test.t1	check	status	OK
check table t1 medium;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Table	253	42	7	Y	0	31	8
def					Op	253	3	5	Y	0	31	8
def					Msg_type	253	3	6	Y	0	31	8
def					Msg_text	253	85	2	Y	0	31	8
Table	Op	Msg_type	Msg_text
test.t1	check	status	OK
check table t1 extended;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Table	253	42	7	Y	0	31	8
def					Op	253	3	5	Y	0	31	8
def					Msg_type	253	3	6	Y	0	31	8
def					Msg_text	253	85	2	Y	0	31	8
Table	Op	Msg_type	Msg_text
test.t1	check	status	OK
show index from t1;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			STATISTICS	TABLE_NAME	Table	253	64	2	N	1	0	8
def			STATISTICS	NON_UNIQUE	Non_unique	8	1	1	N	32769	0	63
def			STATISTICS	INDEX_NAME	Key_name	253	64	7	N	1	0	8
def			STATISTICS	SEQ_IN_INDEX	Seq_in_index	8	2	1	N	32769	0	63
def			STATISTICS	COLUMN_NAME	Column_name	253	64	1	N	1	0	8
def			STATISTICS	COLLATION	Collation	253	1	1	Y	0	0	8
def			STATISTICS	CARDINALITY	Cardinality	8	21	1	Y	32768	0	63
def			STATISTICS	SUB_PART	Sub_part	8	3	0	Y	32768	0	63
def			STATISTICS	PACKED	Packed	253	10	0	Y	0	0	8
def			STATISTICS	NULLABLE	Null	253	3	0	N	1	0	8
def			STATISTICS	INDEX_TYPE	Index_type	253	16	5	N	1	0	8
def			STATISTICS	COMMENT	Comment	253	16	0	Y	0	0	8
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	PRIMARY	1	a	A	5	NULL	NULL		BTREE	
t1	1	b	1	b	A	1	NULL	NULL		BTREE	
t1	1	b	2	c	A	5	NULL	NULL		BTREE	
insert into t1 values (5,5,5);
ERROR 23000: Duplicate entry '5' for key 1
-- Here we enable metadata just to check that the collation of the
-- resultset is non-binary for string type. This should be changed
-- after Bug#29394 is implemented.
optimize table t1;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Table	253	42	7	Y	0	31	8
def					Op	253	3	8	Y	0	31	8
def					Msg_type	253	3	6	Y	0	31	8
def					Msg_text	253	85	2	Y	0	31	8
Table	Op	Msg_type	Msg_text
test.t1	optimize	status	OK
optimize table t1;
Table	Op	Msg_type	Msg_text
test.t1	optimize	status	Table is already up to date
drop table t1;
-- Here we enable metadata just to check that the collation of the
-- resultset is non-binary for string type. This should be changed
-- after Bug#29394 is implemented.
show variables like "wait_timeout%";
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			VARIABLES	Variable_name	Variable_name	253	80	12	N	1	0	8
def			VARIABLES	Value	Value	253	512	5	N	1	0	8
Variable_name	Value
wait_timeout	28800
show variables like "WAIT_timeout%";
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			VARIABLES	Variable_name	Variable_name	253	80	12	N	1	0	8
def			VARIABLES	Value	Value	253	512	5	N	1	0	8
Variable_name	Value
wait_timeout	28800
show variables like "this_doesn't_exists%";
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			VARIABLES	Variable_name	Variable_name	253	80	0	N	1	0	8
def			VARIABLES	Value	Value	253	512	0	N	1	0	8
Variable_name	Value
show table status from test like "this_doesn't_exists%";
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			TABLES	TABLE_NAME	Name	253	64	0	N	1	0	8
def			TABLES	ENGINE	Engine	253	64	0	Y	0	0	8
def			TABLES	VERSION	Version	8	21	0	Y	32768	0	63
def			TABLES	ROW_FORMAT	Row_format	253	10	0	Y	0	0	8
def			TABLES	TABLE_ROWS	Rows	8	21	0	Y	32768	0	63
def			TABLES	AVG_ROW_LENGTH	Avg_row_length	8	21	0	Y	32768	0	63
def			TABLES	DATA_LENGTH	Data_length	8	21	0	Y	32768	0	63
def			TABLES	MAX_DATA_LENGTH	Max_data_length	8	21	0	Y	32768	0	63
def			TABLES	INDEX_LENGTH	Index_length	8	21	0	Y	32768	0	63
def			TABLES	DATA_FREE	Data_free	8	21	0	Y	32768	0	63
def			TABLES	AUTO_INCREMENT	Auto_increment	8	21	0	Y	32768	0	63
def			TABLES	CREATE_TIME	Create_time	12	19	0	Y	128	0	63
def			TABLES	UPDATE_TIME	Update_time	12	19	0	Y	128	0	63
def			TABLES	CHECK_TIME	Check_time	12	19	0	Y	128	0	63
def			TABLES	TABLE_COLLATION	Collation	253	64	0	Y	0	0	8
def			TABLES	CHECKSUM	Checksum	8	21	0	Y	32768	0	63
def			TABLES	CREATE_OPTIONS	Create_options	253	255	0	Y	0	0	8
def			TABLES	TABLE_COMMENT	Comment	253	80	0	N	1	0	8
Name	Engine	Version	Row_format	Rows	Avg_row_length	Data_length	Max_data_length	Index_length	Data_free	Auto_increment	Create_time	Update_time	Check_time	Collation	Checksum	Create_options	Comment
show databases;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			SCHEMATA	SCHEMA_NAME	Database	253	64	18	N	1	0	8
Database
information_schema
mysql
test
show databases like "test%";
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			SCHEMATA	SCHEMA_NAME	Database (test%)	253	64	4	N	1	0	8
Database (test%)
test
create table t1 (f1 int not null, f2 int not null, f3 int not null, f4 int not null, primary key(f1,f2,f3,f4));
insert into t1 values (1,1,1,0),(1,1,2,0),(1,1,3,0),(1,2,1,0),(1,2,2,0),(1,2,3,0),(1,3,1,0),(1,3,2,0),(1,3,3,0),(1,1,1,1),(1,1,2,1),(1,1,3,1),(1,2,1,1),(1,2,2,1),(1,2,3,1),(1,3,1,1),(1,3,2,1),(1,3,3,1);
-- Here we enable metadata just to check that the collation of the
-- resultset is non-binary for string type. This should be changed
-- after Bug#29394 is implemented.
analyze table t1;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Table	253	42	7	Y	0	31	8
def					Op	253	3	7	Y	0	31	8
def					Msg_type	253	3	6	Y	0	31	8
def					Msg_text	253	85	2	Y	0	31	8
Table	Op	Msg_type	Msg_text
test.t1	analyze	status	OK
show index from t1;
@@ -69,7 +166,15 @@ t1 0 PRIMARY 1 f1 A 1 NULL NULL BTREE
t1	0	PRIMARY	2	f2	A	3	NULL	NULL		BTREE	
t1	0	PRIMARY	3	f3	A	9	NULL	NULL		BTREE	
t1	0	PRIMARY	4	f4	A	18	NULL	NULL		BTREE	
-- Here we enable metadata just to check that the collation of the
-- resultset is non-binary for string type. This should be changed
-- after Bug#29394 is implemented.
repair table t1;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Table	253	42	7	Y	0	31	8
def					Op	253	3	6	Y	0	31	8
def					Msg_type	253	3	6	Y	0	31	8
def					Msg_text	253	85	2	Y	0	31	8
Table	Op	Msg_type	Msg_text
test.t1	repair	status	OK
show index from t1;
@@ -645,4 +750,342 @@ select 1 from information_schema.tables limit 1;
show status like 'slow_queries';
Variable_name	Value
Slow_queries	1
DROP DATABASE IF EXISTS mysqltest1;
DROP TABLE IF EXISTS t1;
DROP VIEW IF EXISTS v1;
DROP PROCEDURE IF EXISTS p1;
DROP FUNCTION IF EXISTS f1;
CREATE DATABASE mysqltest1;
CREATE TABLE t1(c INT NOT NULL PRIMARY KEY);
CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET @a = 1;
CREATE VIEW v1 AS SELECT 1;
CREATE PROCEDURE p1() SELECT 1;
CREATE FUNCTION f1() RETURNS INT RETURN 1;
set names utf8;
-- Here we enable metadata just to check that the collation of the
-- resultset is non-binary for string type. This should be changed
-- after Bug#29394 is implemented.
----------------------------------------------------------------
SHOW CHARACTER SET LIKE 'utf8';
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			CHARACTER_SETS	CHARACTER_SET_NAME	Charset	253	192	4	N	1	0	33
def			CHARACTER_SETS	DESCRIPTION	Description	253	180	13	N	1	0	33
def			CHARACTER_SETS	DEFAULT_COLLATE_NAME	Default collation	253	192	15	N	1	0	33
def			CHARACTER_SETS	MAXLEN	Maxlen	8	3	1	N	32769	0	63
Charset	Description	Default collation	Maxlen
utf8	UTF-8 Unicode	utf8_general_ci	3
----------------------------------------------------------------
SHOW COLLATION LIKE 'latin1_bin';
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			COLLATIONS	COLLATION_NAME	Collation	253	192	10	N	1	0	33
def			COLLATIONS	CHARACTER_SET_NAME	Charset	253	192	6	N	1	0	33
def			COLLATIONS	ID	Id	8	11	2	N	32769	0	63
def			COLLATIONS	IS_DEFAULT	Default	253	9	0	N	1	0	33
def			COLLATIONS	IS_COMPILED	Compiled	253	9	3	N	1	0	33
def			COLLATIONS	SORTLEN	Sortlen	8	3	1	N	32769	0	63
Collation	Charset	Id	Default	Compiled	Sortlen
latin1_bin	latin1	47		Yes	1
----------------------------------------------------------------
SHOW CREATE DATABASE mysqltest1;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Database	253	63	10	N	1	31	33
def					Create Database	253	1023	69	N	1	31	33
Database	Create Database
mysqltest1	CREATE DATABASE `mysqltest1` /*!40100 DEFAULT CHARACTER SET latin1 */
----------------------------------------------------------------
SHOW DATABASES LIKE 'mysqltest1';
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			SCHEMATA	SCHEMA_NAME	Database (mysqltest1)	253	192	10	N	1	0	33
Database (mysqltest1)
mysqltest1
----------------------------------------------------------------
SHOW CREATE TABLE t1;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Table	253	63	2	N	1	31	33
def					Create Table	253	1023	103	N	1	31	33
Table	Create Table
t1	CREATE TABLE `t1` (
  `c` int(11) NOT NULL,
  PRIMARY KEY  (`c`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
----------------------------------------------------------------
SHOW INDEX FROM t1;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			STATISTICS	TABLE_NAME	Table	253	192	2	N	1	0	33
def			STATISTICS	NON_UNIQUE	Non_unique	8	1	1	N	32769	0	63
def			STATISTICS	INDEX_NAME	Key_name	253	192	7	N	1	0	33
def			STATISTICS	SEQ_IN_INDEX	Seq_in_index	8	2	1	N	32769	0	63
def			STATISTICS	COLUMN_NAME	Column_name	253	192	1	N	1	0	33
def			STATISTICS	COLLATION	Collation	253	3	1	Y	0	0	33
def			STATISTICS	CARDINALITY	Cardinality	8	21	1	Y	32768	0	63
def			STATISTICS	SUB_PART	Sub_part	8	3	0	Y	32768	0	63
def			STATISTICS	PACKED	Packed	253	30	0	Y	0	0	33
def			STATISTICS	NULLABLE	Null	253	9	0	N	1	0	33
def			STATISTICS	INDEX_TYPE	Index_type	253	48	5	N	1	0	33
def			STATISTICS	COMMENT	Comment	253	48	0	Y	0	0	33
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t1	0	PRIMARY	1	c	A	0	NULL	NULL		BTREE	
----------------------------------------------------------------
SELECT
TABLE_CATALOG,
TABLE_SCHEMA,
TABLE_NAME,
TABLE_TYPE,
ENGINE,
ROW_FORMAT,
TABLE_COLLATION,
CREATE_OPTIONS,
TABLE_COMMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE table_name = 't1';
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			TABLES	TABLE_CATALOG	TABLE_CATALOG	253	1536	0	Y	0	0	33
def			TABLES	TABLE_SCHEMA	TABLE_SCHEMA	253	192	4	N	1	0	33
def			TABLES	TABLE_NAME	TABLE_NAME	253	192	2	N	1	0	33
def			TABLES	TABLE_TYPE	TABLE_TYPE	253	192	10	N	1	0	33
def			TABLES	ENGINE	ENGINE	253	192	6	Y	0	0	33
def			TABLES	ROW_FORMAT	ROW_FORMAT	253	30	5	Y	0	0	33
def			TABLES	TABLE_COLLATION	TABLE_COLLATION	253	192	17	Y	0	0	33
def			TABLES	CREATE_OPTIONS	CREATE_OPTIONS	253	765	0	Y	0	0	33
def			TABLES	TABLE_COMMENT	TABLE_COMMENT	253	240	0	N	1	0	33
TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	TABLE_TYPE	ENGINE	ROW_FORMAT	TABLE_COLLATION	CREATE_OPTIONS	TABLE_COMMENT
NULL	test	t1	BASE TABLE	MyISAM	Fixed	latin1_swedish_ci		
----------------------------------------------------------------
SELECT
TABLE_CATALOG,
TABLE_SCHEMA,
TABLE_NAME,
COLUMN_NAME,
COLUMN_DEFAULT,
IS_NULLABLE,
DATA_TYPE,
CHARACTER_SET_NAME,
COLLATION_NAME,
COLUMN_TYPE,
COLUMN_KEY,
EXTRA,
PRIVILEGES,
COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 't1';
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			COLUMNS	TABLE_CATALOG	TABLE_CATALOG	253	1536	0	Y	0	0	33
def			COLUMNS	TABLE_SCHEMA	TABLE_SCHEMA	253	192	4	N	1	0	33
def			COLUMNS	TABLE_NAME	TABLE_NAME	253	192	2	N	1	0	33
def			COLUMNS	COLUMN_NAME	COLUMN_NAME	253	192	1	N	1	0	33
def			COLUMNS	COLUMN_DEFAULT	COLUMN_DEFAULT	252	589815	0	Y	16	0	33
def			COLUMNS	IS_NULLABLE	IS_NULLABLE	253	9	2	N	1	0	33
def			COLUMNS	DATA_TYPE	DATA_TYPE	253	192	3	N	1	0	33
def			COLUMNS	CHARACTER_SET_NAME	CHARACTER_SET_NAME	253	192	0	Y	0	0	33
def			COLUMNS	COLLATION_NAME	COLLATION_NAME	253	192	0	Y	0	0	33
def			COLUMNS	COLUMN_TYPE	COLUMN_TYPE	252	589815	7	N	17	0	33
def			COLUMNS	COLUMN_KEY	COLUMN_KEY	253	9	3	N	1	0	33
def			COLUMNS	EXTRA	EXTRA	253	60	0	N	1	0	33
def			COLUMNS	PRIVILEGES	PRIVILEGES	253	240	31	N	1	0	33
def			COLUMNS	COLUMN_COMMENT	COLUMN_COMMENT	253	765	0	N	1	0	33
TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	COLUMN_NAME	COLUMN_DEFAULT	IS_NULLABLE	DATA_TYPE	CHARACTER_SET_NAME	COLLATION_NAME	COLUMN_TYPE	COLUMN_KEY	EXTRA	PRIVILEGES	COLUMN_COMMENT
NULL	test	t1	c	NULL	NO	int	NULL	NULL	int(11)	PRI		select,insert,update,references	
----------------------------------------------------------------
SHOW TABLES LIKE 't1';
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			TABLE_NAMES	TABLE_NAME	Tables_in_test (t1)	253	192	2	N	1	0	33
Tables_in_test (t1)
t1
----------------------------------------------------------------
SHOW COLUMNS FROM t1;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			COLUMNS	COLUMN_NAME	Field	253	192	1	N	1	0	33
def			COLUMNS	COLUMN_TYPE	Type	252	589815	7	N	17	0	33
def			COLUMNS	IS_NULLABLE	Null	253	9	2	N	1	0	33
def			COLUMNS	COLUMN_KEY	Key	253	9	3	N	1	0	33
def			COLUMNS	COLUMN_DEFAULT	Default	252	589815	0	Y	16	0	33
def			COLUMNS	EXTRA	Extra	253	60	0	N	1	0	33
Field	Type	Null	Key	Default	Extra
c	int(11)	NO	PRI		
----------------------------------------------------------------
SHOW TRIGGERS LIKE 't1';
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			TRIGGERS	TRIGGER_NAME	Trigger	253	192	5	N	1	0	33
def			TRIGGERS	EVENT_MANIPULATION	Event	253	18	6	N	1	0	33
def			TRIGGERS	EVENT_OBJECT_TABLE	Table	253	192	2	N	1	0	33
def			TRIGGERS	ACTION_STATEMENT	Statement	252	589815	10	N	17	0	33
def			TRIGGERS	ACTION_TIMING	Timing	253	18	6	N	1	0	33
def			TRIGGERS	CREATED	Created	12	19	0	Y	128	0	63
def			TRIGGERS	SQL_MODE	sql_mode	252	589815	0	N	17	0	33
def			TRIGGERS	DEFINER	Definer	252	589815	14	N	17	0	33
Trigger	Event	Table	Statement	Timing	Created	sql_mode	Definer
t1_bi	INSERT	t1	SET @a = 1	BEFORE	NULL		root@localhost
----------------------------------------------------------------
SELECT 
TRIGGER_CATALOG,
TRIGGER_SCHEMA,
TRIGGER_NAME,
EVENT_MANIPULATION,
EVENT_OBJECT_CATALOG,
EVENT_OBJECT_SCHEMA,
EVENT_OBJECT_TABLE,
ACTION_CONDITION,
ACTION_STATEMENT,
ACTION_ORIENTATION,
ACTION_TIMING,
ACTION_REFERENCE_OLD_TABLE,
ACTION_REFERENCE_NEW_TABLE,
ACTION_REFERENCE_OLD_ROW,
ACTION_REFERENCE_NEW_ROW,
SQL_MODE,
DEFINER
FROM INFORMATION_SCHEMA.TRIGGERS
WHERE trigger_name = 't1_bi';
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			TRIGGERS	TRIGGER_CATALOG	TRIGGER_CATALOG	253	1536	0	Y	0	0	33
def			TRIGGERS	TRIGGER_SCHEMA	TRIGGER_SCHEMA	253	192	4	N	1	0	33
def			TRIGGERS	TRIGGER_NAME	TRIGGER_NAME	253	192	5	N	1	0	33
def			TRIGGERS	EVENT_MANIPULATION	EVENT_MANIPULATION	253	18	6	N	1	0	33
def			TRIGGERS	EVENT_OBJECT_CATALOG	EVENT_OBJECT_CATALOG	253	1536	0	Y	0	0	33
def			TRIGGERS	EVENT_OBJECT_SCHEMA	EVENT_OBJECT_SCHEMA	253	192	4	N	1	0	33
def			TRIGGERS	EVENT_OBJECT_TABLE	EVENT_OBJECT_TABLE	253	192	2	N	1	0	33
def			TRIGGERS	ACTION_CONDITION	ACTION_CONDITION	252	589815	0	Y	16	0	33
def			TRIGGERS	ACTION_STATEMENT	ACTION_STATEMENT	252	589815	10	N	17	0	33
def			TRIGGERS	ACTION_ORIENTATION	ACTION_ORIENTATION	253	27	3	N	1	0	33
def			TRIGGERS	ACTION_TIMING	ACTION_TIMING	253	18	6	N	1	0	33
def			TRIGGERS	ACTION_REFERENCE_OLD_TABLE	ACTION_REFERENCE_OLD_TABLE	253	192	0	Y	0	0	33
def			TRIGGERS	ACTION_REFERENCE_NEW_TABLE	ACTION_REFERENCE_NEW_TABLE	253	192	0	Y	0	0	33
def			TRIGGERS	ACTION_REFERENCE_OLD_ROW	ACTION_REFERENCE_OLD_ROW	253	9	3	N	1	0	33
def			TRIGGERS	ACTION_REFERENCE_NEW_ROW	ACTION_REFERENCE_NEW_ROW	253	9	3	N	1	0	33
def			TRIGGERS	SQL_MODE	SQL_MODE	252	589815	0	N	17	0	33
def			TRIGGERS	DEFINER	DEFINER	252	589815	14	N	17	0	33
TRIGGER_CATALOG	TRIGGER_SCHEMA	TRIGGER_NAME	EVENT_MANIPULATION	EVENT_OBJECT_CATALOG	EVENT_OBJECT_SCHEMA	EVENT_OBJECT_TABLE	ACTION_CONDITION	ACTION_STATEMENT	ACTION_ORIENTATION	ACTION_TIMING	ACTION_REFERENCE_OLD_TABLE	ACTION_REFERENCE_NEW_TABLE	ACTION_REFERENCE_OLD_ROW	ACTION_REFERENCE_NEW_ROW	SQL_MODE	DEFINER
NULL	test	t1_bi	INSERT	NULL	test	t1	NULL	SET @a = 1	ROW	BEFORE	NULL	NULL	OLD	NEW		root@localhost
----------------------------------------------------------------
SHOW CREATE VIEW v1;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					View	253	63	2	N	1	31	33
def					Create View	253	1023	103	N	1	31	33
View	Create View
v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1`
----------------------------------------------------------------
SELECT *
FROM INFORMATION_SCHEMA.VIEWS
WHERE table_name = 'v1';
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			VIEWS	TABLE_CATALOG	TABLE_CATALOG	253	1536	0	Y	0	0	33
def			VIEWS	TABLE_SCHEMA	TABLE_SCHEMA	253	192	4	N	1	0	33
def			VIEWS	TABLE_NAME	TABLE_NAME	253	192	2	N	1	0	33
def			VIEWS	VIEW_DEFINITION	VIEW_DEFINITION	252	589815	41	N	17	0	33
def			VIEWS	CHECK_OPTION	CHECK_OPTION	253	24	4	N	1	0	33
def			VIEWS	IS_UPDATABLE	IS_UPDATABLE	253	9	2	N	1	0	33
def			VIEWS	DEFINER	DEFINER	253	231	14	N	1	0	33
def			VIEWS	SECURITY_TYPE	SECURITY_TYPE	253	21	7	N	1	0	33
TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	VIEW_DEFINITION	CHECK_OPTION	IS_UPDATABLE	DEFINER	SECURITY_TYPE
NULL	test	v1	/* ALGORITHM=UNDEFINED */ select 1 AS `1`	NONE	NO	root@localhost	DEFINER
----------------------------------------------------------------
SHOW CREATE PROCEDURE p1;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Procedure	253	63	2	N	1	31	33
def					sql_mode	253	0	0	N	1	31	33
def					Create Procedure	253	2046	59	Y	0	31	33
Procedure	sql_mode	Create Procedure
p1		CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`()
SELECT 1
----------------------------------------------------------------
SELECT
SPECIFIC_NAME,
ROUTINE_CATALOG,
ROUTINE_SCHEMA,
ROUTINE_NAME,
ROUTINE_TYPE,
DTD_IDENTIFIER,
ROUTINE_BODY,
ROUTINE_DEFINITION,
EXTERNAL_NAME,
EXTERNAL_LANGUAGE,
PARAMETER_STYLE,
IS_DETERMINISTIC,
SQL_DATA_ACCESS,
SQL_PATH,
SECURITY_TYPE,
SQL_MODE,
ROUTINE_COMMENT,
DEFINER
FROM INFORMATION_SCHEMA.ROUTINES
WHERE routine_name = 'p1';
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			ROUTINES	SPECIFIC_NAME	SPECIFIC_NAME	253	192	2	N	1	0	33
def			ROUTINES	ROUTINE_CATALOG	ROUTINE_CATALOG	253	1536	0	Y	0	0	33
def			ROUTINES	ROUTINE_SCHEMA	ROUTINE_SCHEMA	253	192	4	N	1	0	33
def			ROUTINES	ROUTINE_NAME	ROUTINE_NAME	253	192	2	N	1	0	33
def			ROUTINES	ROUTINE_TYPE	ROUTINE_TYPE	253	27	9	N	1	0	33
def			ROUTINES	DTD_IDENTIFIER	DTD_IDENTIFIER	253	192	0	Y	0	0	33
def			ROUTINES	ROUTINE_BODY	ROUTINE_BODY	253	24	3	N	1	0	33
def			ROUTINES	ROUTINE_DEFINITION	ROUTINE_DEFINITION	252	589815	8	Y	16	0	33
def			ROUTINES	EXTERNAL_NAME	EXTERNAL_NAME	253	192	0	Y	0	0	33
def			ROUTINES	EXTERNAL_LANGUAGE	EXTERNAL_LANGUAGE	253	192	0	Y	0	0	33
def			ROUTINES	PARAMETER_STYLE	PARAMETER_STYLE	253	24	3	N	1	0	33
def			ROUTINES	IS_DETERMINISTIC	IS_DETERMINISTIC	253	9	2	N	1	0	33
def			ROUTINES	SQL_DATA_ACCESS	SQL_DATA_ACCESS	253	192	12	N	1	0	33
def			ROUTINES	SQL_PATH	SQL_PATH	253	192	0	Y	0	0	33
def			ROUTINES	SECURITY_TYPE	SECURITY_TYPE	253	21	7	N	1	0	33
def			ROUTINES	SQL_MODE	SQL_MODE	252	589815	0	N	17	0	33
def			ROUTINES	ROUTINE_COMMENT	ROUTINE_COMMENT	253	192	0	N	1	0	33
def			ROUTINES	DEFINER	DEFINER	253	231	14	N	1	0	33
SPECIFIC_NAME	ROUTINE_CATALOG	ROUTINE_SCHEMA	ROUTINE_NAME	ROUTINE_TYPE	DTD_IDENTIFIER	ROUTINE_BODY	ROUTINE_DEFINITION	EXTERNAL_NAME	EXTERNAL_LANGUAGE	PARAMETER_STYLE	IS_DETERMINISTIC	SQL_DATA_ACCESS	SQL_PATH	SECURITY_TYPE	SQL_MODE	ROUTINE_COMMENT	DEFINER
p1	NULL	test	p1	PROCEDURE	NULL	SQL	SELECT 1	NULL	NULL	SQL	NO	CONTAINS SQL	NULL	DEFINER			root@localhost
----------------------------------------------------------------
SHOW CREATE FUNCTION f1;
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def					Function	253	63	2	N	1	31	33
def					sql_mode	253	0	0	N	1	31	33
def					Create Function	253	2046	74	Y	0	31	33
Function	sql_mode	Create Function
f1		CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
RETURN 1
----------------------------------------------------------------
SELECT
SPECIFIC_NAME,
ROUTINE_CATALOG,
ROUTINE_SCHEMA,
ROUTINE_NAME,
ROUTINE_TYPE,
DTD_IDENTIFIER,
ROUTINE_BODY,
ROUTINE_DEFINITION,
EXTERNAL_NAME,
EXTERNAL_LANGUAGE,
PARAMETER_STYLE,
IS_DETERMINISTIC,
SQL_DATA_ACCESS,
SQL_PATH,
SECURITY_TYPE,
SQL_MODE,
ROUTINE_COMMENT,
DEFINER
FROM INFORMATION_SCHEMA.ROUTINES
WHERE routine_name = 'f1';
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
def			ROUTINES	SPECIFIC_NAME	SPECIFIC_NAME	253	192	2	N	1	0	33
def			ROUTINES	ROUTINE_CATALOG	ROUTINE_CATALOG	253	1536	0	Y	0	0	33
def			ROUTINES	ROUTINE_SCHEMA	ROUTINE_SCHEMA	253	192	4	N	1	0	33
def			ROUTINES	ROUTINE_NAME	ROUTINE_NAME	253	192	2	N	1	0	33
def			ROUTINES	ROUTINE_TYPE	ROUTINE_TYPE	253	27	8	N	1	0	33
def			ROUTINES	DTD_IDENTIFIER	DTD_IDENTIFIER	253	192	7	Y	0	0	33
def			ROUTINES	ROUTINE_BODY	ROUTINE_BODY	253	24	3	N	1	0	33
def			ROUTINES	ROUTINE_DEFINITION	ROUTINE_DEFINITION	252	589815	8	Y	16	0	33
def			ROUTINES	EXTERNAL_NAME	EXTERNAL_NAME	253	192	0	Y	0	0	33
def			ROUTINES	EXTERNAL_LANGUAGE	EXTERNAL_LANGUAGE	253	192	0	Y	0	0	33
def			ROUTINES	PARAMETER_STYLE	PARAMETER_STYLE	253	24	3	N	1	0	33
def			ROUTINES	IS_DETERMINISTIC	IS_DETERMINISTIC	253	9	2	N	1	0	33
def			ROUTINES	SQL_DATA_ACCESS	SQL_DATA_ACCESS	253	192	12	N	1	0	33
def			ROUTINES	SQL_PATH	SQL_PATH	253	192	0	Y	0	0	33
def			ROUTINES	SECURITY_TYPE	SECURITY_TYPE	253	21	7	N	1	0	33
def			ROUTINES	SQL_MODE	SQL_MODE	252	589815	0	N	17	0	33
def			ROUTINES	ROUTINE_COMMENT	ROUTINE_COMMENT	253	192	0	N	1	0	33
def			ROUTINES	DEFINER	DEFINER	253	231	14	N	1	0	33
SPECIFIC_NAME	ROUTINE_CATALOG	ROUTINE_SCHEMA	ROUTINE_NAME	ROUTINE_TYPE	DTD_IDENTIFIER	ROUTINE_BODY	ROUTINE_DEFINITION	EXTERNAL_NAME	EXTERNAL_LANGUAGE	PARAMETER_STYLE	IS_DETERMINISTIC	SQL_DATA_ACCESS	SQL_PATH	SECURITY_TYPE	SQL_MODE	ROUTINE_COMMENT	DEFINER
f1	NULL	test	f1	FUNCTION	int(11)	SQL	RETURN 1	NULL	NULL	SQL	NO	CONTAINS SQL	NULL	DEFINER			root@localhost
----------------------------------------------------------------
DROP DATABASE mysqltest1;
DROP TABLE t1;
DROP VIEW v1;
DROP PROCEDURE p1;
DROP FUNCTION f1;
End of 5.0 tests
+248 −0

File changed.

Preview size limit exceeded, changes collapsed.

+7 −1

File changed.

Preview size limit exceeded, changes collapsed.