diff options
-rw-r--r-- | mysql-test/r/information_schema.result | 12 | ||||
-rw-r--r-- | sql/sql_show.cc | 8 | ||||
-rw-r--r-- | sql/table.h | 3 |
3 files changed, 13 insertions, 10 deletions
diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result index e6a929d7e3e..687c653b4f7 100644 --- a/mysql-test/r/information_schema.result +++ b/mysql-test/r/information_schema.result @@ -577,8 +577,8 @@ select TABLE_NAME,TABLE_TYPE,ENGINE from information_schema.tables where table_schema='information_schema' limit 2; TABLE_NAME TABLE_TYPE ENGINE -SCHEMATA TEMPORARY MEMORY -TABLES TEMPORARY MEMORY +SCHEMATA SYSTEM VIEW MEMORY +TABLES SYSTEM VIEW MEMORY show tables from information_schema like "T%"; Tables_in_information_schema (T%) TABLES @@ -590,10 +590,10 @@ ERROR HY000: Can't create database 'information_schema'; database exists use information_schema; show full tables like "T%"; Tables_in_information_schema (T%) Table_type -TABLES TEMPORARY -TABLE_PRIVILEGES TEMPORARY -TABLE_CONSTRAINTS TEMPORARY -TRIGGERS TEMPORARY +TABLES SYSTEM VIEW +TABLE_PRIVILEGES SYSTEM VIEW +TABLE_CONSTRAINTS SYSTEM VIEW +TRIGGERS SYSTEM VIEW create table t1(a int); ERROR 42S02: Unknown table 't1' in information_schema use test; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 56272b4fdaf..c51da657b0f 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -2034,7 +2034,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond) { if (with_i_schema) { - table->field[3]->store("TEMPORARY", 9, system_charset_info); + table->field[3]->store("SYSTEM VIEW", 11, system_charset_info); } else { @@ -2193,7 +2193,9 @@ static int get_schema_tables_record(THD *thd, struct st_table_list *tables, handler *file= show_table->file; file->info(HA_STATUS_VARIABLE | HA_STATUS_TIME | HA_STATUS_NO_LOCK); - if (share->tmp_table == TMP_TABLE) + if (share->tmp_table == SYSTEM_TMP_TABLE) + table->field[3]->store("SYSTEM VIEW", 11, cs); + else if (share->tmp_table) table->field[3]->store("TEMPORARY", 9, cs); else table->field[3]->store("BASE TABLE", 10, cs); @@ -3532,7 +3534,7 @@ int mysql_schema_table(THD *thd, LEX *lex, TABLE_LIST *table_list) { DBUG_RETURN(1); } - table->s->tmp_table= TMP_TABLE; + table->s->tmp_table= SYSTEM_TMP_TABLE; table->grant.privilege= SELECT_ACL; /* This test is necessary to make diff --git a/sql/table.h b/sql/table.h index 13d44766804..2cebbcd93cd 100644 --- a/sql/table.h +++ b/sql/table.h @@ -49,7 +49,8 @@ typedef struct st_grant_info ulong want_privilege; } GRANT_INFO; -enum tmp_table_type {NO_TMP_TABLE=0, TMP_TABLE=1, TRANSACTIONAL_TMP_TABLE=2}; +enum tmp_table_type {NO_TMP_TABLE=0, TMP_TABLE=1, TRANSACTIONAL_TMP_TABLE=2, + SYSTEM_TMP_TABLE=3}; enum frm_type_enum { |