Commit 0014bdc7 authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-8115 mysql_upgrade crashes the server with REPAIR VIEW

on REPAIR don't do table-specific stuff for views
(because even if the view has a temp table opened for it,
it's not opened all the way down the engine. In particular,
Aria crashes in maria_status() because MARIA_HA* info - that is
table->table->file->file - is NULL)
parent 8350ea05
...@@ -207,3 +207,10 @@ check table t1; ...@@ -207,3 +207,10 @@ check table t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 check status OK test.t1 check status OK
drop table t1; drop table t1;
create table t1 (a blob);
create view v1 as select * from t1;
repair view v1;
Table Op Msg_type Msg_text
test.v1 repair status OK
drop view v1;
drop table t1;
...@@ -208,3 +208,12 @@ repair table t1 use_frm; ...@@ -208,3 +208,12 @@ repair table t1 use_frm;
select count(*) from t1; select count(*) from t1;
check table t1; check table t1;
drop table t1; drop table t1;
#
# MDEV-8115 mysql_upgrade crashes the server with REPAIR VIEW
#
create table t1 (a blob);
create view v1 as select * from t1;
repair view v1;
drop view v1;
drop table t1;
...@@ -901,7 +901,7 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables, ...@@ -901,7 +901,7 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
break; break;
} }
} }
if (table->table) if (table->table && !table->view)
{ {
if (table->table->s->tmp_table) if (table->table->s->tmp_table)
{ {
......
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