summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/information_schema.result12
-rw-r--r--sql/sql_show.cc8
-rw-r--r--sql/table.h3
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
{