Commit d0e2841f authored by unknown's avatar unknown
Browse files

Merge sgluhov@bk-internal.mysql.com:/home/bk/mysql-5.0

into gluh.mysql.r18.ru:/home/gluh/MySQL/mysql-5.0

parents 563ebb43 373d911d
Loading
Loading
Loading
Loading
+16 −74
Original line number Diff line number Diff line
show variables variable_name where variable_name like "skip_show_database";
variable_name
skip_show_database
show variables where variable_name like "skip_show_database";
Variable_name	Value
skip_show_database	OFF
grant all privileges on test.* to mysqltest_1@localhost;
select * from information_schema.SCHEMATA where schema_name > 'm';
CATALOG_NAME	SCHEMA_NAME	DEFAULT_CHARACTER_SET_NAME	SQL_PATH
@@ -11,11 +11,6 @@ schema_name
information_schema
mysql
test
show databases *;
CATALOG_NAME	SCHEMA_NAME	DEFAULT_CHARACTER_SET_NAME	SQL_PATH
NULL	information_schema	utf8	NULL
NULL	mysql	latin1	NULL
NULL	test	latin1	NULL
show databases like 't%';
Database (t%)
test
@@ -24,11 +19,8 @@ Database
information_schema
mysql
test
show databases * where schema_name like 't%';
CATALOG_NAME	SCHEMA_NAME	DEFAULT_CHARACTER_SET_NAME	SQL_PATH
NULL	test	latin1	NULL
show databases * where schema_name = 't%';
CATALOG_NAME	SCHEMA_NAME	DEFAULT_CHARACTER_SET_NAME	SQL_PATH
show databases where `database` = 't%';
Database
create database testtets;
create table testtets.t1(a int, b VARCHAR(30), KEY string_data (b));
create table test.t2(a int);
@@ -116,20 +108,13 @@ t4
select * from information_schema.STATISTICS where TABLE_SCHEMA = "testtets";
TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	NON_UNIQUE	INDEX_SCHEMA	INDEX_NAME	SEQ_IN_INDEX	COLUMN_NAME	COLLATION	CARDINALITY	SUB_PART	PACKED	NULLABLE	INDEX_TYPE	COMMENT
NULL	testtets	t1	1	testtets	string_data	1	b	A	NULL	NULL	NULL	YES	BTREE	
show keys * from t3 where TABLE_SCHEMA Like "test%";
TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	NON_UNIQUE	INDEX_SCHEMA	INDEX_NAME	SEQ_IN_INDEX	COLUMN_NAME	COLLATION	CARDINALITY	SUB_PART	PACKED	NULLABLE	INDEX_TYPE	COMMENT
NULL	test	t3	1	test	a_data	1	a	A	NULL	NULL	NULL	YES	BTREE	
show keys from t3 where INDEX_NAME = "a_data";
show keys from t3 where Key_name = "a_data";
Table	Non_unique	Key_name	Seq_in_index	Column_name	Collation	Cardinality	Sub_part	Packed	Null	Index_type	Comment
t3	1	a_data	1	a	A	NULL	NULL	NULL	YES	BTREE	
show tables like 't%';
Tables_in_test (t%)
t2
t3
show tables * from test where table_name like 't%';
TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	TABLE_TYPE
NULL	test	t2	
NULL	test	t3	
show table status;
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
t2	MyISAM	9	Fixed	0	0	0	21474836479	1024	0	NULL	#	#	NULL	latin1_swedish_ci	NULL		
@@ -148,10 +133,9 @@ select * from information_schema.COLUMNS where table_name="t1"
and column_name= "a";
TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	COLUMN_NAME	ORDINAL_POSITION	COLUMN_DEFAULT	IS_NULLABLE	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	CHARACTER_SET_NAME	COLLATION_NAME	COLUMN_TYPE	COLUMN_KEY	EXTRA	PRIVILEGES	COLUMN_COMMENT
NULL	testtets	t1	a	1	NULL	YES	int	11	11	11	0	NULL	NULL	int(11)			select,insert,update,references	
show columns * from testtets.t1 where table_name = "t1";
TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	COLUMN_NAME	ORDINAL_POSITION	COLUMN_DEFAULT	IS_NULLABLE	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	CHARACTER_SET_NAME	COLLATION_NAME	COLUMN_TYPE	COLUMN_KEY	EXTRA	PRIVILEGES	COLUMN_COMMENT
NULL	testtets	t1	a	1	NULL	YES	int	11	11	11	0	NULL	NULL	int(11)			select,insert,update,references	
NULL	testtets	t1	b	2	NULL	YES	varchar	30	30	NULL	NULL	latin1	latin1_swedish_ci	varchar(30)	MUL		select,insert,update,references	
show columns from testtets.t1 where field like "%a%";
Field	Type	Null	Key	Default	Extra
a	int(11)	YES		NULL	
drop view v1;
drop tables testtets.t4, testtets.t1, t2, t3;
drop database testtets;
@@ -162,18 +146,9 @@ latin1 latin1_swedish_ci ISO 8859-1 West European 1
SHOW CHARACTER SET LIKE 'latin1%';
Charset	Description	Default collation	Maxlen
latin1	ISO 8859-1 West European	latin1_swedish_ci	1
SHOW CHARACTER SET * LIKE 'latin1%';
CHARACTER_SET_NAME	DEFAULT_COLLATE_NAME	DESCRIPTION	MAXLEN
latin1	latin1_swedish_ci	ISO 8859-1 West European	1
SHOW CHARACTER SET WHERE CHARACTER_SET_NAME like 'latin1%';
SHOW CHARACTER SET WHERE charset like 'latin1%';
Charset	Description	Default collation	Maxlen
latin1	ISO 8859-1 West European	latin1_swedish_ci	1
SHOW CHARACTER SET CHARACTER_SET_NAME WHERE CHARACTER_SET_NAME like 'latin1%';
CHARACTER_SET_NAME
latin1
SHOW CHARACTER SET *  WHERE CHARACTER_SET_NAME like 'latin1%';
CHARACTER_SET_NAME	DEFAULT_COLLATE_NAME	DESCRIPTION	MAXLEN
latin1	latin1_swedish_ci	ISO 8859-1 West European	1
select * from information_schema.COLLATIONS
where COLLATION_NAME like 'latin1%';
COLLATION_NAME	CHARACTER_SET_NAME	ID	IS_DEFAULT	IS_COMPILED	SORTLEN
@@ -195,17 +170,7 @@ latin1_bin latin1 47 Yes 1
latin1_general_ci	latin1	48			0
latin1_general_cs	latin1	49			0
latin1_spanish_ci	latin1	94			0
SHOW COLLATION * LIKE 'latin1%';
COLLATION_NAME	CHARACTER_SET_NAME	ID	IS_DEFAULT	IS_COMPILED	SORTLEN
latin1_german1_ci	latin1	5			0
latin1_swedish_ci	latin1	8	Yes	Yes	1
latin1_danish_ci	latin1	15			0
latin1_german2_ci	latin1	31		Yes	2
latin1_bin	latin1	47		Yes	1
latin1_general_ci	latin1	48			0
latin1_general_cs	latin1	49			0
latin1_spanish_ci	latin1	94			0
SHOW COLLATION WHERE COLLATION_NAME like 'latin1%';
SHOW COLLATION WHERE collation like 'latin1%';
Collation	Charset	Id	Default	Compiled	Sortlen
latin1_german1_ci	latin1	5			0
latin1_swedish_ci	latin1	8	Yes	Yes	1
@@ -215,26 +180,6 @@ latin1_bin latin1 47 Yes 1
latin1_general_ci	latin1	48			0
latin1_general_cs	latin1	49			0
latin1_spanish_ci	latin1	94			0
SHOW COLLATION COLLATION_NAME WHERE COLLATION_NAME like 'latin1%';
COLLATION_NAME
latin1_german1_ci
latin1_swedish_ci
latin1_danish_ci
latin1_german2_ci
latin1_bin
latin1_general_ci
latin1_general_cs
latin1_spanish_ci
SHOW COLLATION *  WHERE COLLATION_NAME like 'latin1%';
COLLATION_NAME	CHARACTER_SET_NAME	ID	IS_DEFAULT	IS_COMPILED	SORTLEN
latin1_german1_ci	latin1	5			0
latin1_swedish_ci	latin1	8	Yes	Yes	1
latin1_danish_ci	latin1	15			0
latin1_german2_ci	latin1	31		Yes	2
latin1_bin	latin1	47		Yes	1
latin1_general_ci	latin1	48			0
latin1_general_cs	latin1	49			0
latin1_spanish_ci	latin1	94			0
select * from information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
where COLLATION_NAME like 'latin1%';
COLLATION_NAME	CHARACTER_SET_NAME
@@ -671,14 +616,11 @@ BASE TABLE
show open tables where `table` like "user";
Database	Table	In_use	Name_locked
mysql	user	0	0
show status variable_name where variable_name like "%database%";
variable_name
Com_show_databases
show variables variable_name where variable_name like "%database%";
variable_name
character_set_database
collation_database
skip_show_database
show status where variable_name like "%database%";
Variable_name	Value
Com_show_databases	0
show variables where variable_name like "skip_show_databas";
Variable_name	Value
show global status like "Threads_running";
Variable_name	Value
Threads_running	1
+12 −0
Original line number Diff line number Diff line
@@ -264,6 +264,18 @@ prepare stmt4 from ' show tables from test like ''t2%'' ';
execute stmt4;
Tables_in_test (t2%)
t2
prepare stmt4 from ' show columns from t2 where field in (select ?) ';
SET @arg00="a";
execute stmt4 using @arg00;
Field	Type	Null	Key	Default	Extra
a	int(11)	NO	PRI		
SET @arg00="b";
execute stmt4 using @arg00;
Field	Type	Null	Key	Default	Extra
b	char(10)	YES		NULL	
SET @arg00=1;
execute stmt4 using @arg00;
Field	Type	Null	Key	Default	Extra
prepare stmt4 from ' show columns from t2 from test like ''a%'' ';
execute stmt4;
Field	Type	Null	Key	Default	Extra
+8 −19
Original line number Diff line number Diff line
@@ -2,16 +2,14 @@
# Test for information_schema.schemata &
# show databases

show variables variable_name where variable_name like "skip_show_database";
show variables where variable_name like "skip_show_database";
grant all privileges on test.* to mysqltest_1@localhost;

select * from information_schema.SCHEMATA where schema_name > 'm';
select schema_name from information_schema.schemata;
show databases *;
show databases like 't%';
show databases;
show databases * where schema_name like 't%';
show databases * where schema_name = 't%';
show databases where `database` = 't%';

# Test for information_schema.tables &
# show tables
@@ -35,12 +33,9 @@ select table_name from information_schema.TABLES
where table_schema = "testtets" and table_name like "t%";

select * from information_schema.STATISTICS where TABLE_SCHEMA = "testtets";
show keys * from t3 where TABLE_SCHEMA Like "test%";
show keys from t3 where INDEX_NAME = "a_data";
show keys from t3 where Key_name = "a_data";

show tables like 't%';
--replace_column 15 # 16 #
show tables * from test where table_name like 't%';
--replace_column 12 # 13 #
--replace_result "2147483647	" "21474836479	"
show table status;
@@ -49,7 +44,7 @@ show full columns from mysql.db like "Insert%";
show full columns from v1;
select * from information_schema.COLUMNS where table_name="t1"
and column_name= "a";
show columns * from testtets.t1 where table_name = "t1";
show columns from testtets.t1 where field like "%a%";

drop view v1;
drop tables testtets.t4, testtets.t1, t2, t3;
@@ -61,10 +56,7 @@ drop database testtets;
select * from information_schema.CHARACTER_SETS
where CHARACTER_SET_NAME like 'latin1%';
SHOW CHARACTER SET LIKE 'latin1%';
SHOW CHARACTER SET * LIKE 'latin1%';
SHOW CHARACTER SET WHERE CHARACTER_SET_NAME like 'latin1%';
SHOW CHARACTER SET CHARACTER_SET_NAME WHERE CHARACTER_SET_NAME like 'latin1%';
SHOW CHARACTER SET *  WHERE CHARACTER_SET_NAME like 'latin1%';
SHOW CHARACTER SET WHERE charset like 'latin1%';

# Test for information_schema.COLLATIONS &
# SHOW COLLATION
@@ -72,10 +64,7 @@ SHOW CHARACTER SET * WHERE CHARACTER_SET_NAME like 'latin1%';
select * from information_schema.COLLATIONS
where COLLATION_NAME like 'latin1%';
SHOW COLLATION LIKE 'latin1%';
SHOW COLLATION * LIKE 'latin1%';
SHOW COLLATION WHERE COLLATION_NAME like 'latin1%';
SHOW COLLATION COLLATION_NAME WHERE COLLATION_NAME like 'latin1%';
SHOW COLLATION *  WHERE COLLATION_NAME like 'latin1%';
SHOW COLLATION WHERE collation like 'latin1%';

select * from information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
where COLLATION_NAME like 'latin1%';
@@ -351,9 +340,9 @@ where table_schema="mysql" and table_name="user";
# test for 'show open tables ... where'
show open tables where `table` like "user";
# test for 'show status ... where'
show status variable_name where variable_name like "%database%";
show status where variable_name like "%database%";
# test for 'show variables ... where'
show variables variable_name where variable_name like "%database%";
show variables where variable_name like "skip_show_databas";

#
# Bug #7981:SHOW GLOBAL STATUS crashes server
+8 −0
Original line number Diff line number Diff line
@@ -290,6 +290,14 @@ prepare stmt4 from ' show databases ';
execute stmt4;
prepare stmt4 from ' show tables from test like ''t2%'' ';
execute stmt4;
prepare stmt4 from ' show columns from t2 where field in (select ?) ';
SET @arg00="a";
execute stmt4 using @arg00;
SET @arg00="b";
execute stmt4 using @arg00;
SET @arg00=1;
execute stmt4 using @arg00;

prepare stmt4 from ' show columns from t2 from test like ''a%'' ';
execute stmt4;
create index t2_idx on t2(b);
+20 −2
Original line number Diff line number Diff line
@@ -2119,14 +2119,32 @@ find_field_in_table(THD *thd, TABLE_LIST *table_list,
  DBUG_PRINT("enter", ("table: '%s'  name: '%s'  item name: '%s'  ref 0x%lx",
		       table_list->alias, name, item_name, (ulong) ref));
  if (table_list->field_translation)
  {
    uint num;
    if (table_list->schema_table_reformed)
    {
      num= thd->lex->current_select->item_list.elements;
    }
    else
    {
      DBUG_ASSERT(ref != 0 && table_list->view != 0);
    uint num= table_list->view->select_lex.item_list.elements;
      num= table_list->view->select_lex.item_list.elements;
    }
    Field_translator *trans= table_list->field_translation;
    for (uint i= 0; i < num; i ++)
    {
      if (!my_strcasecmp(system_charset_info, trans[i].name, name))
      {
        if (table_list->schema_table_reformed)
        {
          /*
            Translation table items are always Item_fields 
            and fixed already('mysql_schema_table' function). 
            So we can return ->field. It is used only for 
            'show & where' commands.
          */
          DBUG_RETURN(((Item_field*) (trans[i].item))->field);
        }
#ifndef NO_EMBEDDED_ACCESS_CHECKS
	if (check_grants_view &&
	    check_grant_column(thd, &table_list->grant,
Loading