summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2018-09-03 10:27:36 +0200
committerSergei Golubchik <serg@mariadb.org>2018-09-04 09:19:50 +0200
commita6246cab1693b91a04bdb2ff66710fc62ab1b6e7 (patch)
tree43d652558b7d229e4f6323370e8b1d9471011200
parentc27275474040ba7f91868dcb1ab79306418268d2 (diff)
downloadmariadb-git-a6246cab1693b91a04bdb2ff66710fc62ab1b6e7.tar.gz
fix failures of innodb_plugin tests in --embedded
Post-fix for 7e8ed15b95b Also, apply the same innodb fix to xtradb.
-rw-r--r--include/mysql/service_wsrep.h3
-rw-r--r--include/service_versions.h2
-rw-r--r--sql/sql_plugin_services.ic3
-rw-r--r--sql/wsrep_dummy.cc3
-rw-r--r--sql/wsrep_mysqld.h1
-rw-r--r--sql/wsrep_sst.cc1
-rw-r--r--storage/xtradb/handler/ha_innodb.cc5
7 files changed, 14 insertions, 4 deletions
diff --git a/include/mysql/service_wsrep.h b/include/mysql/service_wsrep.h
index bc5b2c67cdc..b51f154422f 100644
--- a/include/mysql/service_wsrep.h
+++ b/include/mysql/service_wsrep.h
@@ -110,6 +110,7 @@ extern struct wsrep_service_st {
int (*wsrep_trx_is_aborting_func)(MYSQL_THD thd);
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);
} *wsrep_service;
#ifdef MYSQL_DYNAMIC_PLUGIN
@@ -151,6 +152,7 @@ extern struct wsrep_service_st {
#define wsrep_trx_is_aborting(T) wsrep_service->wsrep_trx_is_aborting_func(T)
#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_debug get_wsrep_debug()
#define wsrep_log_conflicts get_wsrep_log_conflicts()
@@ -208,6 +210,7 @@ void wsrep_thd_awake(THD *thd, my_bool signal);
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);
#endif
diff --git a/include/service_versions.h b/include/service_versions.h
index da7a2101f76..3bbf2a9a625 100644
--- a/include/service_versions.h
+++ b/include/service_versions.h
@@ -41,4 +41,4 @@
#define VERSION_thd_specifics 0x0100
#define VERSION_thd_timezone 0x0100
#define VERSION_thd_wait 0x0100
-#define VERSION_wsrep 0x0201
+#define VERSION_wsrep 0x0202
diff --git a/sql/sql_plugin_services.ic b/sql/sql_plugin_services.ic
index 572ceacbd7e..95301a5fbe8 100644
--- a/sql/sql_plugin_services.ic
+++ b/sql/sql_plugin_services.ic
@@ -179,7 +179,8 @@ static struct wsrep_service_st wsrep_handler = {
wsrep_thd_ws_handle,
wsrep_trx_is_aborting,
wsrep_trx_order_before,
- wsrep_unlock_rollback
+ wsrep_unlock_rollback,
+ wsrep_set_data_home_dir
};
static struct thd_specifics_service_st thd_specifics_handler=
diff --git a/sql/wsrep_dummy.cc b/sql/wsrep_dummy.cc
index 0aa7f9b0aad..5837ab4bed5 100644
--- a/sql/wsrep_dummy.cc
+++ b/sql/wsrep_dummy.cc
@@ -130,3 +130,6 @@ int wsrep_trx_is_aborting(THD *)
void wsrep_unlock_rollback()
{ }
+
+void wsrep_set_data_home_dir(const char *)
+{ }
diff --git a/sql/wsrep_mysqld.h b/sql/wsrep_mysqld.h
index 9fc8aa02df4..272e4ac4984 100644
--- a/sql/wsrep_mysqld.h
+++ b/sql/wsrep_mysqld.h
@@ -160,7 +160,6 @@ extern "C" time_t wsrep_thd_query_start(THD *thd);
extern "C" query_id_t wsrep_thd_query_id(THD *thd);
extern "C" query_id_t wsrep_thd_wsrep_last_query_id(THD *thd);
extern "C" void wsrep_thd_set_wsrep_last_query_id(THD *thd, query_id_t id);
-extern "C" void wsrep_set_data_home_dir(const char *data_dir);
extern void wsrep_close_client_connections(my_bool wait_to_end);
extern int wsrep_wait_committing_connections_close(int wait_time);
diff --git a/sql/wsrep_sst.cc b/sql/wsrep_sst.cc
index 2af2bfa1822..281eac1ce0e 100644
--- a/sql/wsrep_sst.cc
+++ b/sql/wsrep_sst.cc
@@ -70,7 +70,6 @@ bool wsrep_sst_method_update (sys_var *self, THD* thd, enum_var_type type)
static const char* data_home_dir = NULL;
-extern "C"
void wsrep_set_data_home_dir(const char *data_dir)
{
data_home_dir= (data_dir && *data_dir) ? data_dir : NULL;
diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc
index 3cd7cb6977b..60545b3b1e4 100644
--- a/storage/xtradb/handler/ha_innodb.cc
+++ b/storage/xtradb/handler/ha_innodb.cc
@@ -4072,6 +4072,11 @@ innobase_init(
srv_data_home = (innobase_data_home_dir ? innobase_data_home_dir :
default_path);
+#ifdef WITH_WSREP
+ /* If we use the wsrep API, then we need to tell the server
+ the path to the data files (for passing it to the SST scripts): */
+ wsrep_set_data_home_dir(innobase_data_home_dir);
+#endif /* WITH_WSREP */
/* Set default InnoDB data file size to 12 MB and let it be
auto-extending. Thus users can use InnoDB in >= 4.0 without having