mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
61 lines
1.9 KiB
Diff
61 lines
1.9 KiB
Diff
From 0014bdc7eef141dcd66930e853242b3be4960831 Mon Sep 17 00:00:00 2001
|
|
From: Sergei Golubchik <serg@mariadb.org>
|
|
Date: Thu, 7 May 2015 22:18:34 +0200
|
|
Subject: [PATCH] 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)
|
|
---
|
|
mysql-test/r/repair.result | 7 +++++++
|
|
mysql-test/t/repair.test | 9 +++++++++
|
|
sql/sql_admin.cc | 2 +-
|
|
3 files changed, 17 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/mysql-test/r/repair.result b/mysql-test/r/repair.result
|
|
index 52ae9c3..51c3374 100644
|
|
--- a/mysql-test/r/repair.result
|
|
+++ b/mysql-test/r/repair.result
|
|
@@ -207,3 +207,10 @@ check table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 check status OK
|
|
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;
|
|
diff --git a/mysql-test/t/repair.test b/mysql-test/t/repair.test
|
|
index 337b73f..f625965 100644
|
|
--- a/mysql-test/t/repair.test
|
|
+++ b/mysql-test/t/repair.test
|
|
@@ -208,3 +208,12 @@ repair table t1 use_frm;
|
|
select count(*) from t1;
|
|
check 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;
|
|
diff --git a/sql/sql_admin.cc b/sql/sql_admin.cc
|
|
index 44057b6..9827c67 100644
|
|
--- a/sql/sql_admin.cc
|
|
+++ b/sql/sql_admin.cc
|
|
@@ -901,7 +901,7 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
|
|
break;
|
|
}
|
|
}
|
|
- if (table->table)
|
|
+ if (table->table && !table->view)
|
|
{
|
|
if (table->table->s->tmp_table)
|
|
{
|