diff options
author | gluh@mysql.com <> | 2005-05-10 18:34:04 +0000 |
---|---|---|
committer | gluh@mysql.com <> | 2005-05-10 18:34:04 +0000 |
commit | 75b7fef44f4644159c49fc244c695df268a18c28 (patch) | |
tree | 86a9f1c500003b9ce300a5626230f0b499623bcf | |
parent | 5dee7cfc705e7e55da2684dde01d04a20722039d (diff) | |
download | mariadb-git-75b7fef44f4644159c49fc244c695df268a18c28.tar.gz |
Bug#10018: use INFORMATION_SCHEMA works, but show tables in it returns error
additional fix after review
-rw-r--r-- | sql/sql_show.cc | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/sql/sql_show.cc b/sql/sql_show.cc index fe3a2590817..c35687d84a6 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -1805,6 +1805,11 @@ int make_db_list(THD *thd, List<char> *files, get_index_field_values(lex, idx_field_vals); if (is_wild_value) { + /* + This part of code is only for SHOW DATABASES command. + idx_field_vals->db_value can be 0 when we don't use + LIKE clause (see also get_index_field_values() function) + */ if (!idx_field_vals->db_value || !wild_case_compare(system_charset_info, information_schema_name.str, @@ -1818,11 +1823,15 @@ int make_db_list(THD *thd, List<char> *files, idx_field_vals->db_value, 1); } + /* + This part of code is for SHOW TABLES, SHOW TABLE STATUS commands. + idx_field_vals->db_value can't be 0 (see get_index_field_values() + function). lex->orig_sql_command can be not equal to SQLCOM_END + only in case of executing of SHOW commands. + */ if (lex->orig_sql_command != SQLCOM_END) { - if (!idx_field_vals->db_value || - !my_strcasecmp(system_charset_info, - information_schema_name.str, + if (!my_strcasecmp(system_charset_info, information_schema_name.str, idx_field_vals->db_value)) { *with_i_schema= 1; @@ -1831,6 +1840,10 @@ int make_db_list(THD *thd, List<char> *files, return files->push_back(thd->strdup(idx_field_vals->db_value)); } + /* + Create list of existing databases. It is used in case + of select from information schema table + */ if (files->push_back(thd->strdup(information_schema_name.str))) return 1; *with_i_schema= 1; |