Commit 6050d91e authored by unknown's avatar unknown

Fix for bug#8998: information_schema: Table SCHEMATA should report default collations

   DEFAULT_COLLTION_NAME field is added to SCHEMATA table


mysql-test/r/information_schema.result:
  Fix for bug#8998: information_schema: Table SCHEMATA should report default collations
sql/sql_show.cc:
  Fix for bug#8998: information_schema: Table SCHEMATA should report default collations
parent 188c9bb2
......@@ -4,9 +4,9 @@ skip_show_database OFF
grant select, update, execute on test.* to mysqltest_2@localhost;
grant select, update 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
NULL mysql latin1 NULL
NULL test latin1 NULL
CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
NULL mysql latin1 latin1_swedish_ci NULL
NULL test latin1 latin1_swedish_ci NULL
select schema_name from information_schema.schemata;
schema_name
information_schema
......
......@@ -2000,11 +2000,12 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
bool store_schema_shemata(THD* thd, TABLE *table, const char *db_name,
const char* cs_name)
CHARSET_INFO *cs)
{
restore_record(table, s->default_values);
table->field[1]->store(db_name, strlen(db_name), system_charset_info);
table->field[2]->store(cs_name, strlen(cs_name), system_charset_info);
table->field[2]->store(cs->csname, strlen(cs->csname), system_charset_info);
table->field[3]->store(cs->name, strlen(cs->name), system_charset_info);
return schema_table_store_record(thd, table);
}
......@@ -2035,7 +2036,7 @@ int fill_schema_shemata(THD *thd, TABLE_LIST *tables, COND *cond)
if (with_i_schema) // information schema name is always first in list
{
if (store_schema_shemata(thd, table, file_name,
system_charset_info->csname))
system_charset_info))
DBUG_RETURN(1);
with_i_schema= 0;
continue;
......@@ -2060,7 +2061,7 @@ int fill_schema_shemata(THD *thd, TABLE_LIST *tables, COND *cond)
strmov(path+length, MY_DB_OPT_FILE);
load_db_opt(thd, path, &create);
if (store_schema_shemata(thd, table, file_name,
create.default_table_charset->csname))
create.default_table_charset))
DBUG_RETURN(1);
}
}
......@@ -3482,6 +3483,7 @@ ST_FIELD_INFO schema_fields_info[]=
{"CATALOG_NAME", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0},
{"SCHEMA_NAME", NAME_LEN, MYSQL_TYPE_STRING, 0, 0, "Database"},
{"DEFAULT_CHARACTER_SET_NAME", 64, MYSQL_TYPE_STRING, 0, 0, 0},
{"DEFAULT_COLLATION_NAME", 64, MYSQL_TYPE_STRING, 0, 0, 0},
{"SQL_PATH", FN_REFLEN, MYSQL_TYPE_STRING, 0, 1, 0},
{0, 0, MYSQL_TYPE_STRING, 0, 0, 0}
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment