Loading mysql-test/r/check.result +9 −0 Original line number Diff line number Diff line Loading @@ -5,3 +5,12 @@ insert into t1 values (200000); Table Op Msg_type Msg_text test.t1 check status OK drop table t1; Create table t1(f1 int); Create table t2(f1 int); Create view v1 as Select * from t1; Check Table v1,t2; Table Op Msg_type Msg_text test.v1 check status OK test.t2 check status OK drop view v1; drop table t1, t2; mysql-test/t/check.test +12 −0 Original line number Diff line number Diff line Loading @@ -22,3 +22,15 @@ connection con1; reap; drop table t1; # # Bug #9897 Views: 'Check Table' crashes MySQL, with a view and a table # in the statement # connection default; Create table t1(f1 int); Create table t2(f1 int); Create view v1 as Select * from t1; Check Table v1,t2; drop view v1; drop table t1, t2; sql/sql_table.cc +7 −0 Original line number Diff line number Diff line Loading @@ -2344,6 +2344,13 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables, } close_thread_tables(thd); table->table=0; // For query cache /* thd->lex->derived_tables may be set to non zero value if we open a view. It is necessary to clear thd->lex->derived_tables flag to prevent processing of derived tables during next open_and_lock_tables if next table is a real table. */ thd->lex->derived_tables= 0; if (protocol->write()) goto err; } Loading Loading
mysql-test/r/check.result +9 −0 Original line number Diff line number Diff line Loading @@ -5,3 +5,12 @@ insert into t1 values (200000); Table Op Msg_type Msg_text test.t1 check status OK drop table t1; Create table t1(f1 int); Create table t2(f1 int); Create view v1 as Select * from t1; Check Table v1,t2; Table Op Msg_type Msg_text test.v1 check status OK test.t2 check status OK drop view v1; drop table t1, t2;
mysql-test/t/check.test +12 −0 Original line number Diff line number Diff line Loading @@ -22,3 +22,15 @@ connection con1; reap; drop table t1; # # Bug #9897 Views: 'Check Table' crashes MySQL, with a view and a table # in the statement # connection default; Create table t1(f1 int); Create table t2(f1 int); Create view v1 as Select * from t1; Check Table v1,t2; drop view v1; drop table t1, t2;
sql/sql_table.cc +7 −0 Original line number Diff line number Diff line Loading @@ -2344,6 +2344,13 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables, } close_thread_tables(thd); table->table=0; // For query cache /* thd->lex->derived_tables may be set to non zero value if we open a view. It is necessary to clear thd->lex->derived_tables flag to prevent processing of derived tables during next open_and_lock_tables if next table is a real table. */ thd->lex->derived_tables= 0; if (protocol->write()) goto err; } Loading