Commit 3c23f4dc authored by brian@zim.(none)'s avatar brian@zim.(none)

Merge baker@bk-internal.mysql.com:/home/bk/mysql-5.1-new

into  zim.(none):/home/brian/mysql/cluster-5.1
parents 7b8fa1e3 fe7ecfd5
...@@ -64,6 +64,7 @@ sqlsources = derror.cc field.cc field_conv.cc strfunc.cc filesort.cc \ ...@@ -64,6 +64,7 @@ sqlsources = derror.cc field.cc field_conv.cc strfunc.cc filesort.cc \
spatial.cc gstream.cc sql_help.cc tztime.cc sql_cursor.cc \ spatial.cc gstream.cc sql_help.cc tztime.cc sql_cursor.cc \
sp_head.cc sp_pcontext.cc sp.cc sp_cache.cc sp_rcontext.cc \ sp_head.cc sp_pcontext.cc sp.cc sp_cache.cc sp_rcontext.cc \
parse_file.cc sql_view.cc sql_trigger.cc my_decimal.cc \ parse_file.cc sql_view.cc sql_trigger.cc my_decimal.cc \
item_xmlfunc.cc \
rpl_filter.cc sql_partition.cc handlerton.cc sql_plugin.cc rpl_filter.cc sql_partition.cc handlerton.cc sql_plugin.cc
libmysqld_int_a_SOURCES= $(libmysqld_sources) $(libmysqlsources) $(sqlsources) libmysqld_int_a_SOURCES= $(libmysqld_sources) $(libmysqlsources) $(sqlsources)
......
...@@ -41,6 +41,7 @@ COLLATIONS ...@@ -41,6 +41,7 @@ COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS COLUMNS
COLUMN_PRIVILEGES COLUMN_PRIVILEGES
ENGINES
KEY_COLUMN_USAGE KEY_COLUMN_USAGE
PLUGINS PLUGINS
ROUTINES ROUTINES
...@@ -1058,3 +1059,6 @@ where table_name="v1"; ...@@ -1058,3 +1059,6 @@ where table_name="v1";
table_type table_type
VIEW VIEW
drop view v1; drop view v1;
select * from information_schema.engines WHERE ENGINE="MyISAM";
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
MyISAM ENABLED Default engine as of MySQL 3.23 with great performance NO NO NO
...@@ -6,6 +6,7 @@ COLLATIONS ...@@ -6,6 +6,7 @@ COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS COLUMNS
COLUMN_PRIVILEGES COLUMN_PRIVILEGES
ENGINES
KEY_COLUMN_USAGE KEY_COLUMN_USAGE
PLUGINS PLUGINS
ROUTINES ROUTINES
......
...@@ -748,3 +748,9 @@ drop table t1; ...@@ -748,3 +748,9 @@ drop table t1;
select table_type from information_schema.tables select table_type from information_schema.tables
where table_name="v1"; where table_name="v1";
drop view v1; drop view v1;
#
# Show engines
#
select * from information_schema.engines WHERE ENGINE="MyISAM";
...@@ -96,7 +96,7 @@ handlerton partition_hton = { ...@@ -96,7 +96,7 @@ handlerton partition_hton = {
NULL, /* Start Consistent Snapshot */ NULL, /* Start Consistent Snapshot */
NULL, /* Flush logs */ NULL, /* Flush logs */
NULL, /* Show status */ NULL, /* Show status */
HTON_NOT_USER_SELECTABLE HTON_NOT_USER_SELECTABLE | HTON_HIDDEN
}; };
static handler *partition_create_handler(TABLE_SHARE *share) static handler *partition_create_handler(TABLE_SHARE *share)
......
...@@ -2229,6 +2229,7 @@ int prepare_schema_table(THD *thd, LEX *lex, Table_ident *table_ident, ...@@ -2229,6 +2229,7 @@ int prepare_schema_table(THD *thd, LEX *lex, Table_ident *table_ident,
case SCH_STATUS: case SCH_STATUS:
case SCH_PROCEDURES: case SCH_PROCEDURES:
case SCH_CHARSETS: case SCH_CHARSETS:
case SCH_ENGINES:
case SCH_COLLATIONS: case SCH_COLLATIONS:
case SCH_COLLATION_CHARACTER_SET_APPLICABILITY: case SCH_COLLATION_CHARACTER_SET_APPLICABILITY:
case SCH_USER_PRIVILEGES: case SCH_USER_PRIVILEGES:
......
...@@ -2917,6 +2917,46 @@ int fill_schema_charsets(THD *thd, TABLE_LIST *tables, COND *cond) ...@@ -2917,6 +2917,46 @@ int fill_schema_charsets(THD *thd, TABLE_LIST *tables, COND *cond)
} }
int fill_schema_engines(THD *thd, TABLE_LIST *tables, COND *cond)
{
const char *wild= thd->lex->wild ? thd->lex->wild->ptr() : NullS;
TABLE *table= tables->table;
CHARSET_INFO *scs= system_charset_info;
handlerton **types;
DBUG_ENTER("fill_schema_engines");
for (types= sys_table_types; *types; types++)
{
if ((*types)->flags & HTON_HIDDEN)
continue;
if (!(wild && wild[0] &&
wild_case_compare(scs, (*types)->name,wild)))
{
const char *tmp;
restore_record(table, s->default_values);
table->field[0]->store((*types)->name, strlen((*types)->name), scs);
tmp= (*types)->state ? "DISABLED" : "ENABLED";
table->field[1]->store( tmp, strlen(tmp), scs);
table->field[2]->store((*types)->comment, strlen((*types)->comment), scs);
tmp= (*types)->commit ? "YES" : "NO";
table->field[3]->store( tmp, strlen(tmp), scs);
tmp= (*types)->prepare ? "YES" : "NO";
table->field[4]->store( tmp, strlen(tmp), scs);
tmp= (*types)->savepoint_set ? "YES" : "NO";
table->field[5]->store( tmp, strlen(tmp), scs);
if (schema_table_store_record(thd, table))
DBUG_RETURN(1);
}
}
DBUG_RETURN(0);
}
int fill_schema_collation(THD *thd, TABLE_LIST *tables, COND *cond) int fill_schema_collation(THD *thd, TABLE_LIST *tables, COND *cond)
{ {
CHARSET_INFO **cs; CHARSET_INFO **cs;
...@@ -3971,6 +4011,7 @@ int make_schema_select(THD *thd, SELECT_LEX *sel, ...@@ -3971,6 +4011,7 @@ int make_schema_select(THD *thd, SELECT_LEX *sel,
ST_SCHEMA_TABLE *schema_table= get_schema_table(schema_table_idx); ST_SCHEMA_TABLE *schema_table= get_schema_table(schema_table_idx);
LEX_STRING db, table; LEX_STRING db, table;
DBUG_ENTER("mysql_schema_select"); DBUG_ENTER("mysql_schema_select");
DBUG_PRINT("enter", ("mysql_schema_select: %s", schema_table->table_name));
/* /*
We have to make non const db_name & table_name We have to make non const db_name & table_name
because of lower_case_table_names because of lower_case_table_names
...@@ -4124,6 +4165,18 @@ ST_FIELD_INFO collation_fields_info[]= ...@@ -4124,6 +4165,18 @@ ST_FIELD_INFO collation_fields_info[]=
}; };
ST_FIELD_INFO engines_fields_info[]=
{
{"ENGINE", 64, MYSQL_TYPE_STRING, 0, 0, "Engine"},
{"SUPPORT", 8, MYSQL_TYPE_STRING, 0, 0, "Support"},
{"COMMENT", 80, MYSQL_TYPE_STRING, 0, 0, "Comment"},
{"TRANSACTIONS", 3, MYSQL_TYPE_STRING, 0, 0, "Transactions"},
{"XA", 3, MYSQL_TYPE_STRING, 0, 0, "XA"},
{"SAVEPOINTS", 3 ,MYSQL_TYPE_STRING, 0, 0, "Savepoints"},
{0, 0, MYSQL_TYPE_STRING, 0, 0, 0}
};
ST_FIELD_INFO coll_charset_app_fields_info[]= ST_FIELD_INFO coll_charset_app_fields_info[]=
{ {
{"COLLATION_NAME", 64, MYSQL_TYPE_STRING, 0, 0, 0}, {"COLLATION_NAME", 64, MYSQL_TYPE_STRING, 0, 0, 0},
...@@ -4339,6 +4392,9 @@ ST_FIELD_INFO plugin_fields_info[]= ...@@ -4339,6 +4392,9 @@ ST_FIELD_INFO plugin_fields_info[]=
/* /*
Description of ST_FIELD_INFO in table.h Description of ST_FIELD_INFO in table.h
Make sure that the order of schema_tables and enum_schema_tables are the same.
*/ */
ST_SCHEMA_TABLE schema_tables[]= ST_SCHEMA_TABLE schema_tables[]=
...@@ -4353,6 +4409,8 @@ ST_SCHEMA_TABLE schema_tables[]= ...@@ -4353,6 +4409,8 @@ ST_SCHEMA_TABLE schema_tables[]=
get_all_tables, make_columns_old_format, get_schema_column_record, 1, 2, 0}, get_all_tables, make_columns_old_format, get_schema_column_record, 1, 2, 0},
{"COLUMN_PRIVILEGES", column_privileges_fields_info, create_schema_table, {"COLUMN_PRIVILEGES", column_privileges_fields_info, create_schema_table,
fill_schema_column_privileges, 0, 0, -1, -1, 0}, fill_schema_column_privileges, 0, 0, -1, -1, 0},
{"ENGINES", engines_fields_info, create_schema_table,
fill_schema_engines, make_old_format, 0, -1, -1, 0},
{"KEY_COLUMN_USAGE", key_column_usage_fields_info, create_schema_table, {"KEY_COLUMN_USAGE", key_column_usage_fields_info, create_schema_table,
get_all_tables, 0, get_schema_key_column_usage_record, 4, 5, 0}, get_all_tables, 0, get_schema_key_column_usage_record, 4, 5, 0},
{"OPEN_TABLES", open_tables_fields_info, create_schema_table, {"OPEN_TABLES", open_tables_fields_info, create_schema_table,
......
...@@ -7114,6 +7114,9 @@ show_param: ...@@ -7114,6 +7114,9 @@ show_param:
{ {
LEX *lex=Lex; LEX *lex=Lex;
lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES; lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
lex->orig_sql_command= SQLCOM_SHOW_AUTHORS;
if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES))
YYABORT;
} }
| AUTHORS_SYM | AUTHORS_SYM
{ {
......
...@@ -317,6 +317,9 @@ typedef struct st_foreign_key_info ...@@ -317,6 +317,9 @@ typedef struct st_foreign_key_info
List<LEX_STRING> referenced_fields; List<LEX_STRING> referenced_fields;
} FOREIGN_KEY_INFO; } FOREIGN_KEY_INFO;
/*
Make sure that the order of schema_tables and enum_schema_tables are the same.
*/
enum enum_schema_tables enum enum_schema_tables
{ {
...@@ -325,6 +328,7 @@ enum enum_schema_tables ...@@ -325,6 +328,7 @@ enum enum_schema_tables
SCH_COLLATION_CHARACTER_SET_APPLICABILITY, SCH_COLLATION_CHARACTER_SET_APPLICABILITY,
SCH_COLUMNS, SCH_COLUMNS,
SCH_COLUMN_PRIVILEGES, SCH_COLUMN_PRIVILEGES,
SCH_ENGINES,
SCH_KEY_COLUMN_USAGE, SCH_KEY_COLUMN_USAGE,
SCH_OPEN_TABLES, SCH_OPEN_TABLES,
SCH_PLUGINS, SCH_PLUGINS,
......
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