diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result index 37810e67f2a..cd0f9a7a172 100644 --- a/mysql-test/r/information_schema.result +++ b/mysql-test/r/information_schema.result @@ -1552,4 +1552,8 @@ VIEW_DEFINITION SELECT * FROM INFORMATION_SCHEMA.TABLES DROP VIEW v1; +SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA +WHERE SCHEMA_NAME ='information_schema'; +SCHEMA_NAME +information_schema End of 5.1 tests. diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test index 90671c4e8fd..c2c0f79d66b 100644 --- a/mysql-test/t/information_schema.test +++ b/mysql-test/t/information_schema.test @@ -1188,4 +1188,10 @@ FROM INFORMATION_SCHEMA.TABLES; SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS where TABLE_NAME = 'v1'; DROP VIEW v1; +# +# Bug#30795 Query on INFORMATION_SCHEMA.SCHEMATA, wrong result +# +SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA +WHERE SCHEMA_NAME ='information_schema'; + --echo End of 5.1 tests. diff --git a/sql/sql_show.cc b/sql/sql_show.cc index f7813b73089..cc0cda42321 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -3339,7 +3339,8 @@ int fill_schema_schemata(THD *thd, TABLE_LIST *tables, COND *cond) /* If we have lookup db value we should check that the database exists */ - if(lookup_field_vals.db_value.str && !lookup_field_vals.wild_db_value) + if(lookup_field_vals.db_value.str && !lookup_field_vals.wild_db_value && + !with_i_schema) { char path[FN_REFLEN+16]; uint path_len;