summaryrefslogtreecommitdiff
path: root/sql/sql_show.cc
diff options
context:
space:
mode:
authorunknown <gluh@eagle.intranet.mysql.r18.ru>2005-06-16 13:27:22 +0500
committerunknown <gluh@eagle.intranet.mysql.r18.ru>2005-06-16 13:27:22 +0500
commit5574de167c3f033a6904fb7e0ac47ed684780cdb (patch)
tree845fd61b55313c17f2ca04b0ee50372274467be7 /sql/sql_show.cc
parent8dd1be2d971ba0433392d0c6cfbf658fa26107c2 (diff)
downloadmariadb-git-5574de167c3f033a6904fb7e0ac47ed684780cdb.tar.gz
Fix for bug#9434 SHOW CREATE DATABASE `information_schema`;
added ability to do SHOW CREATE DATABASE `information_schema`
Diffstat (limited to 'sql/sql_show.cc')
-rw-r--r--sql/sql_show.cc37
1 files changed, 22 insertions, 15 deletions
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index ac47c132db2..aaa34dc4cb7 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -448,25 +448,32 @@ bool mysqld_show_create_db(THD *thd, char *dbname,
DBUG_RETURN(TRUE);
}
#endif
-
- (void) sprintf(path,"%s/%s",mysql_data_home, dbname);
- length=unpack_dirname(path,path); // Convert if not unix
- found_libchar= 0;
- if (length && path[length-1] == FN_LIBCHAR)
+ if (!my_strcasecmp(system_charset_info, dbname,
+ information_schema_name.str))
{
- found_libchar= 1;
- path[length-1]=0; // remove ending '\'
+ dbname= information_schema_name.str;
+ create.default_table_charset= system_charset_info;
}
- if (access(path,F_OK))
+ else
{
- my_error(ER_BAD_DB_ERROR, MYF(0), dbname);
- DBUG_RETURN(TRUE);
+ (void) sprintf(path,"%s/%s",mysql_data_home, dbname);
+ length=unpack_dirname(path,path); // Convert if not unix
+ found_libchar= 0;
+ if (length && path[length-1] == FN_LIBCHAR)
+ {
+ found_libchar= 1;
+ path[length-1]=0; // remove ending '\'
+ }
+ if (access(path,F_OK))
+ {
+ my_error(ER_BAD_DB_ERROR, MYF(0), dbname);
+ DBUG_RETURN(TRUE);
+ }
+ if (found_libchar)
+ path[length-1]= FN_LIBCHAR;
+ strmov(path+length, MY_DB_OPT_FILE);
+ load_db_opt(thd, path, &create);
}
- if (found_libchar)
- path[length-1]= FN_LIBCHAR;
- strmov(path+length, MY_DB_OPT_FILE);
- load_db_opt(thd, path, &create);
-
List<Item> field_list;
field_list.push_back(new Item_empty_string("Database",NAME_LEN));
field_list.push_back(new Item_empty_string("Create Database",1024));