List:Commits« Previous MessageNext Message »
From:Alexander Nozdrin Date:June 28 2007 11:24am
Subject:bk commit into 5.0 tree (anozdrin:1.2505) BUG#10491
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of alik. When alik does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2007-06-28 13:24:52+04:00, anozdrin@ibm. +3 -0
  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.

  mysql-test/r/show_check.result@stripped, 2007-06-28 13:24:51+04:00, anozdrin@ibm. +443 -0
    Update result file.

  mysql-test/t/show_check.test@stripped, 2007-06-28 13:24:51+04:00, anozdrin@ibm. +248 -0
    Provide test case for BUG#10491.

  sql/item.h@stripped, 2007-06-28 13:24:51+04:00, anozdrin@ibm. +7 -1
    Use utf8_general_ci instead of binary collation by default,
    because for views and base tables utf8 is the character set
    in which their definition is stored. For system constants
    it's the default character set, and for other objects
    (routines, triggers), no character set is stored, and
    therefore no character set is known, so returning utf8
    is just as good as any non-binary character set.
    This latter problem is fixed in 5.1 by 16291. In 5.1
    we will return the "real" character set.

diff -Nrup a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result
--- a/mysql-test/r/show_check.result	2006-11-28 01:47:19 +03:00
+++ b/mysql-test/r/show_check.result	2007-06-28 13:24:51 +04:00
@@ -7,60 +7,157 @@ delete from mysql.db where user='mysqlte
 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 
 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
diff -Nrup a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test
--- a/mysql-test/t/show_check.test	2006-11-16 22:19:23 +03:00
+++ b/mysql-test/t/show_check.test	2007-06-28 13:24:51 +04:00
@@ -18,6 +18,12 @@ 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);
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
 check table t1 fast;
 check table t1 fast;
 check table t1 changed;
@@ -26,28 +32,58 @@ check table t1 changed;
 check table t1 medium;
 check table t1 extended;
 show index from t1;
+--disable_metadata
 --error 1062
 insert into t1 values (5,5,5);
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
 optimize table t1;
+--disable_metadata
 optimize table t1;
 drop table t1;
 
 #show variables;
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
 show variables like "wait_timeout%";
 show variables like "WAIT_timeout%";
 show variables like "this_doesn't_exists%";
 show table status from test like "this_doesn't_exists%";
 show databases;
 show databases like "test%";
+--disable_metadata
 
 #
 # Check of show index
 #
 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);
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
 analyze table t1;
+--disable_metadata
 show index from t1;
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
+
 repair table t1;
+--disable_metadata
 show index from t1;
 drop table t1;
 
@@ -517,5 +553,217 @@ show status like 'slow_queries';
 # (mysqld is started with --log-queries-not-using-indexes)
 select 1 from information_schema.tables limit 1;
 show status like 'slow_queries';
+
+#
+# BUG#10491: Server returns data as charset binary SHOW CREATE TABLE or SELECT
+# FROM I_S.
+#
+
+# Ensure that all needed objects are dropped.
+
+--disable_warnings
+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;
+--enable_warnings
+
+# Create objects.
+
+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;
+
+
+# Test.
+
+set names utf8;
+
+--echo -- Here we enable metadata just to check that the collation of the
+--echo -- resultset is non-binary for string type. This should be changed
+--echo -- after Bug#29394 is implemented.
+
+--enable_metadata
+
+--echo ----------------------------------------------------------------
+
+SHOW CHARACTER SET LIKE 'utf8';
+
+--echo ----------------------------------------------------------------
+
+SHOW COLLATION LIKE 'latin1_bin';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE DATABASE mysqltest1;
+
+--echo ----------------------------------------------------------------
+
+SHOW DATABASES LIKE 'mysqltest1';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE TABLE t1;
+
+--echo ----------------------------------------------------------------
+
+SHOW INDEX FROM t1;
+
+--echo ----------------------------------------------------------------
+
+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';
+
+--echo ----------------------------------------------------------------
+
+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';
+
+--echo ----------------------------------------------------------------
+
+SHOW TABLES LIKE 't1';
+
+--echo ----------------------------------------------------------------
+
+SHOW COLUMNS FROM t1;
+
+--echo ----------------------------------------------------------------
+
+SHOW TRIGGERS LIKE 't1';
+
+--echo ----------------------------------------------------------------
+
+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';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE VIEW v1;
+
+--echo ----------------------------------------------------------------
+
+SELECT *
+FROM INFORMATION_SCHEMA.VIEWS
+WHERE table_name = 'v1';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE PROCEDURE p1;
+
+--echo ----------------------------------------------------------------
+
+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';
+
+--echo ----------------------------------------------------------------
+
+SHOW CREATE FUNCTION f1;
+
+--echo ----------------------------------------------------------------
+
+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';
+
+--echo ----------------------------------------------------------------
+
+--disable_metadata
+
+# Cleanup.
+
+DROP DATABASE mysqltest1;
+DROP TABLE t1;
+DROP VIEW v1;
+DROP PROCEDURE p1;
+DROP FUNCTION f1;
 
 --echo End of 5.0 tests
diff -Nrup a/sql/item.h b/sql/item.h
--- a/sql/item.h	2007-06-20 11:18:42 +04:00
+++ b/sql/item.h	2007-06-28 13:24:51 +04:00
@@ -1764,11 +1764,17 @@ public:
   enum_field_types field_type() const { return MYSQL_TYPE_DATETIME; }
 };
 
+/**
+  Item_empty_string -- is a utility class to put an item into List<Item>
+  which is then used in protocol.send_fields() when sending SHOW output to
+  the client.
+*/
+
 class Item_empty_string :public Item_string
 {
 public:
   Item_empty_string(const char *header,uint length, CHARSET_INFO *cs= NULL) :
-    Item_string("",0, cs ? cs : &my_charset_bin)
+    Item_string("",0, cs ? cs : &my_charset_utf8_general_ci)
     { name=(char*) header; max_length= cs ? length * cs->mbmaxlen : length; }
   void make_field(Send_field *field);
 };
Thread
bk commit into 5.0 tree (anozdrin:1.2505) BUG#10491Alexander Nozdrin28 Jun