diff options
author | unknown <gluh@eagle.intranet.mysql.r18.ru> | 2005-06-16 13:27:22 +0500 |
---|---|---|
committer | unknown <gluh@eagle.intranet.mysql.r18.ru> | 2005-06-16 13:27:22 +0500 |
commit | 5574de167c3f033a6904fb7e0ac47ed684780cdb (patch) | |
tree | 845fd61b55313c17f2ca04b0ee50372274467be7 /sql/sql_show.cc | |
parent | 8dd1be2d971ba0433392d0c6cfbf658fa26107c2 (diff) | |
download | mariadb-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.cc | 37 |
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)); |