diff --git a/extra/mariadb/PKGBUILD b/extra/mariadb/PKGBUILD index 8e15cdda1..49590ad1e 100644 --- a/extra/mariadb/PKGBUILD +++ b/extra/mariadb/PKGBUILD @@ -8,7 +8,7 @@ pkgbase=mariadb pkgname=('libmariadbclient' 'mariadb-clients' 'mytop' 'mariadb') pkgver=10.0.18 _pkgver=${pkgver/.a/a} -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') license=('GPL') url='http://mariadb.org/' @@ -17,15 +17,17 @@ makedepends=('cmake' 'openssl' 'zlib' 'libaio' 'libxml2' 'openssl' 'pcre' source=(https://downloads.mariadb.org/interstitial/mariadb-$pkgver/source/mariadb-$pkgver.tar.gz mariadb.service mariadb-post.sh - mariadb-tmpfile.conf) + mariadb-tmpfile.conf + mariadb-10.0.18-MDEV-8115.patch) md5sums=('eab4f9303883d33558c0059af9e30aa4' 'd488fffa9f62f9949c4aa1bb6e6db692' 'b79e65a5aa536e6b5bc60988eb0b78a2' - '2fa6e456964d4ff5e6d4f9ff0126aed6') + '2fa6e456964d4ff5e6d4f9ff0126aed6' + '4be445c305df3cca61aa9a40a1886964') prepare() { - sed -i 's/_SVID_SOURCE/_DEFAULT_SOURCE/' \ - $pkgbase-$pkgver/storage/tokudb/ft-index/cmake_modules/TokuSetupCompiler.cmake + cd $pkgbase-$pkgver + patch -p1 -i ../mariadb-10.0.18-MDEV-8115.patch } build() { diff --git a/extra/mariadb/mariadb-10.0.18-MDEV-8115.patch b/extra/mariadb/mariadb-10.0.18-MDEV-8115.patch new file mode 100644 index 000000000..6ada096c7 --- /dev/null +++ b/extra/mariadb/mariadb-10.0.18-MDEV-8115.patch @@ -0,0 +1,61 @@ +From 0014bdc7eef141dcd66930e853242b3be4960831 Mon Sep 17 00:00:00 2001 +From: Sergei Golubchik +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) + {