Commit ba079bad authored by unknown's avatar unknown

Fix for bug#14476 `information_schema`.`TABLES`.`TABLE_TYPE` with empty value

  store TABLES.TABLE_TYPE in case of error during table opening


mysql-test/r/information_schema.result:
  Fix for bug#14476 `information_schema`.`TABLES`.`TABLE_TYPE` with empty value
    test case
mysql-test/t/information_schema.test:
  Fix for bug#14476 `information_schema`.`TABLES`.`TABLE_TYPE` with empty value
    test case
parent 3c8a8de4
...@@ -1048,3 +1048,11 @@ blob 65535 65535 ...@@ -1048,3 +1048,11 @@ blob 65535 65535
text 65535 65535 text 65535 65535
text 65535 32767 text 65535 32767
drop table t1; drop table t1;
create table t1 (f1 int(11));
create view v1 as select * from t1;
drop table t1;
select table_type from information_schema.tables
where table_name="v1";
table_type
VIEW
drop view v1;
...@@ -738,3 +738,13 @@ create table t1(a blob, b text charset utf8, c text charset ucs2); ...@@ -738,3 +738,13 @@ create table t1(a blob, b text charset utf8, c text charset ucs2);
select data_type, character_octet_length, character_maximum_length select data_type, character_octet_length, character_maximum_length
from information_schema.columns where table_name='t1'; from information_schema.columns where table_name='t1';
drop table t1; drop table t1;
#
# Bug#14476 `information_schema`.`TABLES`.`TABLE_TYPE` with empty value
#
create table t1 (f1 int(11));
create view v1 as select * from t1;
drop table t1;
select table_type from information_schema.tables
where table_name="v1";
drop view v1;
...@@ -2315,6 +2315,12 @@ static int get_schema_tables_record(THD *thd, struct st_table_list *tables, ...@@ -2315,6 +2315,12 @@ static int get_schema_tables_record(THD *thd, struct st_table_list *tables,
there was errors during opening tables there was errors during opening tables
*/ */
const char *error= thd->net.last_error; const char *error= thd->net.last_error;
if (tables->view)
table->field[3]->store(STRING_WITH_LEN("VIEW"), cs);
else if (tables->schema_table)
table->field[3]->store(STRING_WITH_LEN("SYSTEM VIEW"), cs);
else
table->field[3]->store(STRING_WITH_LEN("BASE TABLE"), cs);
table->field[20]->store(error, strlen(error), cs); table->field[20]->store(error, strlen(error), cs);
thd->clear_error(); thd->clear_error();
} }
......
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