extra/mariadb to 10.3.14-1

This commit is contained in:
Kevin Mihelich 2019-04-05 12:37:31 +00:00
parent a46fed121e
commit 52100663ef
4 changed files with 3 additions and 157 deletions

View file

@ -1,21 +0,0 @@
From 82da98556cf58f0fbb43c82e9c6ae1a887b6cf3d Mon Sep 17 00:00:00 2001
From: Oleksandr Byelkin <sanja@mariadb.com>
Date: Mon, 25 Feb 2019 15:57:08 +0100
Subject: [PATCH 2/2] MDEV-18605: Loss of column aliases by using view and
group
Preserv column name with copy fields even if it is function and Co.
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 439853c2f66..0bc27f18d47 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -23914,7 +23914,9 @@ setup_copy_fields(THD *thd, TMP_TABLE_PARAM *param,
real_pos->type() == Item::COND_ITEM) &&
!real_pos->with_sum_func)
{ // Save for send fields
+ LEX_CSTRING real_name= pos->name;
pos= real_pos;
+ pos->name= real_name;
/* TODO:
In most cases this result will be sent to the user.
This should be changed to use copy_int or copy_real depending

View file

@ -1,121 +0,0 @@
commit e73060b6c9b3655cadcd34c66fc7811d214c1673
Author: Jan Lindström <jan.lindstrom@mariadb.com>
Date: Tue Mar 12 15:44:10 2019 +0200
MDEV-18577: Indexes problem on import dump SQL
Problem was that we skipped background persistent statistics calculation
on applier nodes if thread is marked as high priority (a.k.a BF).
However, on applier nodes all DDL which is replicate will be executed
as high priority i.e BF.
Fixed by allowing background persistent statistics calculation on
applier nodes even when thread is marked as BF. This could lead
BF lock waits but for queries on that node needs that statistics.
diff --git a/include/mysql/service_wsrep.h b/include/mysql/service_wsrep.h
index 267c8cb4e90..ee28856ac73 100644
--- a/include/mysql/service_wsrep.h
+++ b/include/mysql/service_wsrep.h
@@ -112,6 +112,7 @@ extern struct wsrep_service_st {
int (*wsrep_trx_order_before_func)(MYSQL_THD, MYSQL_THD);
void (*wsrep_unlock_rollback_func)();
void (*wsrep_set_data_home_dir_func)(const char *data_dir);
+ my_bool (*wsrep_thd_is_applier_func)(MYSQL_THD);
} *wsrep_service;
#ifdef MYSQL_DYNAMIC_PLUGIN
@@ -155,6 +156,7 @@ extern struct wsrep_service_st {
#define wsrep_trx_order_before(T1,T2) wsrep_service->wsrep_trx_order_before_func(T1,T2)
#define wsrep_unlock_rollback() wsrep_service->wsrep_unlock_rollback_func()
#define wsrep_set_data_home_dir(A) wsrep_service->wsrep_set_data_home_dir_func(A)
+#define wsrep_thd_is_applier(T) wsrep_service->wsrep_thd_is_applier(T)
#define wsrep_debug get_wsrep_debug()
#define wsrep_log_conflicts get_wsrep_log_conflicts()
@@ -214,7 +216,7 @@ void wsrep_thd_set_conflict_state(THD *thd, enum wsrep_conflict_state state);
bool wsrep_thd_ignore_table(THD *thd);
void wsrep_unlock_rollback();
void wsrep_set_data_home_dir(const char *data_dir);
-
+my_bool wsrep_thd_is_applier(MYSQL_THD thd);
#endif
#ifdef __cplusplus
diff --git a/sql/sql_plugin_services.ic b/sql/sql_plugin_services.ic
index 7fb5524016a..3d6cf0a0723 100644
--- a/sql/sql_plugin_services.ic
+++ b/sql/sql_plugin_services.ic
@@ -181,7 +181,8 @@ static struct wsrep_service_st wsrep_handler = {
wsrep_trx_is_aborting,
wsrep_trx_order_before,
wsrep_unlock_rollback,
- wsrep_set_data_home_dir
+ wsrep_set_data_home_dir,
+ wsrep_thd_is_applier
};
static struct thd_specifics_service_st thd_specifics_handler=
diff --git a/sql/wsrep_dummy.cc b/sql/wsrep_dummy.cc
index 795e2d19252..7297dbfe0fd 100644
--- a/sql/wsrep_dummy.cc
+++ b/sql/wsrep_dummy.cc
@@ -141,3 +141,6 @@ void wsrep_unlock_rollback()
void wsrep_set_data_home_dir(const char *)
{ }
+
+my_bool wsrep_thd_is_applier(MYSQL_THD thd)
+{ return false; }
diff --git a/sql/wsrep_thd.cc b/sql/wsrep_thd.cc
index a3d1961ade2..dab9f91b381 100644
--- a/sql/wsrep_thd.cc
+++ b/sql/wsrep_thd.cc
@@ -698,3 +698,13 @@ void wsrep_thd_auto_increment_variables(THD* thd,
*increment= thd->variables.auto_increment_increment;
}
}
+
+my_bool wsrep_thd_is_applier(MYSQL_THD thd)
+{
+ my_bool is_applier= false;
+
+ if (thd && thd->wsrep_applier)
+ is_applier= true;
+
+ return (is_applier);
+}
diff --git a/storage/innobase/dict/dict0stats_bg.cc b/storage/innobase/dict/dict0stats_bg.cc
index 55bcafddc70..7d30555748c 100644
--- a/storage/innobase/dict/dict0stats_bg.cc
+++ b/storage/innobase/dict/dict0stats_bg.cc
@@ -164,10 +164,26 @@ void dict_stats_update_if_needed_func(dict_table_t* table)
&& dict_stats_auto_recalc_is_enabled(table)) {
#ifdef WITH_WSREP
- if (thd && wsrep_on(thd) && wsrep_thd_is_BF(thd, 0)) {
+ /* Do not add table to background
+ statistic calculation if this thread is not a
+ applier (as all DDL, which is replicated (i.e
+ is binlogged in master node), will be executed
+ with high priority (a.k.a BF) in slave nodes)
+ and is BF. This could again lead BF lock
+ waits in applier node but it is better than
+ no persistent index/table statistics at
+ applier nodes. TODO: allow BF threads
+ wait for these InnoDB internal SQL-parser
+ generated row locks and allow BF thread
+ lock waits to be enqueued at head of waiting
+ queue. */
+ if (thd
+ && !wsrep_thd_is_applier(thd)
+ && wsrep_on(thd)
+ && wsrep_thd_is_BF(thd, 0)) {
WSREP_DEBUG("Avoiding background statistics"
- " calculation for table %s",
- table->name.m_name);
+ " calculation for table %s.",
+ table->name.m_name);
return;
}
#endif /* WITH_WSREP */

View file

@ -8,8 +8,8 @@
pkgbase=mariadb
pkgname=('mariadb-libs' 'mariadb-clients' 'mariadb' 'mytop')
pkgdesc='Fast SQL database server, derived from MySQL'
pkgver=10.3.13
pkgrel=4
pkgver=10.3.14
pkgrel=1
arch=('x86_64')
license=('GPL')
url='https://mariadb.org/'
@ -21,8 +21,6 @@ source=("https://mirrors.n-ix.net/mariadb/mariadb-$pkgver/source/mariadb-$pkgver
'0002-systemd-sysusers-tmpfiles.patch'
'0004-do-not-break-main-configuration-with-instantiated-one.patch'
'0005-fix-galera_recovery-with-fs.protected_regular-enabled.patch'
'0007-MDEV-18605-Loss-of-column-aliases-by-using-view-and-.patch'
'0008-MDEV-18577-Indexes-problem-on-import-dump-SQL.patch'
'atomic.patch')
sha256sums=('b2aa857ef5b84f85a7ea60a1eac7b34c0ca5151c71a0d44ce2d7fb028d71459a'
'SKIP'
@ -30,8 +28,6 @@ sha256sums=('b2aa857ef5b84f85a7ea60a1eac7b34c0ca5151c71a0d44ce2d7fb028d71459a'
'1cd009b473d5965c7cbe6d48fff272030a2ccdd9c7e67b4f837d03252786a09a'
'd12806e4f90cc0fc081205dd4c0a5e0e7c455844f04276811b61b57fd24f5545'
'66e0acac7436fd8925710ef5cc66ba1a8f63a385ce374f01ae83096cc33d97a0'
'98f0bd85e1729133d236831e934a3dd0c9bc6deebbff6aebe8a4bda17e457ac4'
'9862b64ea29d3d94434e6b8f422df97e7528b331b793d7a50f22f176d4886325'
'7769fd8eb2bb3a6644a2200d01918ff887be25638d79dbec25897fe0d87badc4')
prepare() {
@ -57,14 +53,6 @@ prepare() {
# https://github.com/MariaDB/server/pull/1137
patch -Np1 < ../0005-fix-galera_recovery-with-fs.protected_regular-enabled.patch
# MDEV-18605: Loss of column aliases by using view and group
# https://jira.mariadb.org/browse/MDEV-18605
patch -Np1 < ../0007-MDEV-18605-Loss-of-column-aliases-by-using-view-and-.patch
# MDEV-18577: Indexes problem on import dump SQL
# https://jira.mariadb.org/browse/MDEV-18577
patch -Np1 < ../0008-MDEV-18577-Indexes-problem-on-import-dump-SQL.patch
if [[ $CARCH == arm || $CARCH == armv6h ]]; then
patch -p0 -i ../atomic.patch
fi

View file

@ -8,7 +8,7 @@ post_install() {
post_upgrade() {
# show for feature release: 10.1 -> 10.2 -> 10.3 -> ...
if [ $(vercmp "${1%.*}" "${2%.*}") -ne 0 ]; then
if [ $(vercmp "${1%.*-*}" "${2%.*-*}") -ne 0 ]; then
echo ":: MariaDB was updated to a new feature release. To update the data run:"
echo " systemctl restart mariadb.service && mysql_upgrade -u root -p"
fi