Loading mysql-test/r/information_schema.result +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 Loading @@ -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 Loading @@ -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); Loading Loading @@ -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 Loading @@ -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; Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading Loading @@ -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 mysql-test/r/ps_1general.result +12 −0 Original line number Diff line number Diff line Loading @@ -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 Loading mysql-test/t/information_schema.test +8 −19 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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; Loading @@ -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; Loading @@ -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 Loading @@ -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%'; Loading Loading @@ -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 Loading mysql-test/t/ps_1general.test +8 −0 Original line number Diff line number Diff line Loading @@ -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); Loading sql/sql_base.cc +20 −2 Original line number Diff line number Diff line Loading @@ -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 Loading
mysql-test/r/information_schema.result +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 Loading @@ -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 Loading @@ -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); Loading Loading @@ -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 Loading @@ -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; Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading Loading @@ -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
mysql-test/r/ps_1general.result +12 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
mysql-test/t/information_schema.test +8 −19 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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; Loading @@ -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; Loading @@ -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 Loading @@ -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%'; Loading Loading @@ -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 Loading
mysql-test/t/ps_1general.test +8 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
sql/sql_base.cc +20 −2 Original line number Diff line number Diff line Loading @@ -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