summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDenis Protivensky <denis.protivensky@galeracluster.com>2022-12-05 17:03:32 +0300
committerJan Lindström <jan.lindstrom@mariadb.com>2023-01-24 11:54:25 +0200
commit39f46745995939e17678d3c2f030f625d5bc41c2 (patch)
treebc6aebd1c14f606a7657c4e8a787751fb08bc918 /include
parenta10003bd682ecb593fc614429661f5c025e83da8 (diff)
downloadmariadb-git-39f46745995939e17678d3c2f030f625d5bc41c2.tar.gz
MDEV-24623 Replicate bulk insert as table-level exclusive key
- introduce table key construction function in wsrep service interface - don't add row keys when replicating bulk insert - don't start bulk insert on applier or when transaction is not active - don't start bulk insert on system versioned tables - implement actual bulk insert table-level key replication Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
Diffstat (limited to 'include')
-rw-r--r--include/mysql/service_wsrep.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/mysql/service_wsrep.h b/include/mysql/service_wsrep.h
index 42b758c03f3..8541b348ae4 100644
--- a/include/mysql/service_wsrep.h
+++ b/include/mysql/service_wsrep.h
@@ -69,6 +69,9 @@ extern struct wsrep_service_st {
void (*wsrep_thd_self_abort_func)(MYSQL_THD thd);
int (*wsrep_thd_append_key_func)(MYSQL_THD thd, const struct wsrep_key* key,
int n_keys, enum Wsrep_service_key_type);
+ int (*wsrep_thd_append_table_key_func)(MYSQL_THD thd, const char* db,
+ const char* table, enum Wsrep_service_key_type);
+ my_bool (*wsrep_thd_is_local_transaction)(const MYSQL_THD thd);
const char* (*wsrep_thd_client_state_str_func)(const MYSQL_THD thd);
const char* (*wsrep_thd_client_mode_str_func)(const MYSQL_THD thd);
const char* (*wsrep_thd_transaction_state_str_func)(const MYSQL_THD thd);
@@ -121,6 +124,8 @@ extern struct wsrep_service_st {
#define wsrep_thd_is_local(T) wsrep_service->wsrep_thd_is_local_func(T)
#define wsrep_thd_self_abort(T) wsrep_service->wsrep_thd_self_abort_func(T)
#define wsrep_thd_append_key(T,W,N,K) wsrep_service->wsrep_thd_append_key_func(T,W,N,K)
+#define wsrep_thd_append_table_key(T,D,B,K) wsrep_service->wsrep_thd_append_table_key_func(T,D,B,K)
+#define wsrep_thd_is_local_transaction(T) wsrep_service->wsrep_thd_is_local_transaction_func(T)
#define wsrep_thd_client_state_str(T) wsrep_service->wsrep_thd_client_state_str_func(T)
#define wsrep_thd_client_mode_str(T) wsrep_service->wsrep_thd_client_mode_str_func(T)
#define wsrep_thd_transaction_state_str(T) wsrep_service->wsrep_thd_transaction_state_str_func(T)
@@ -226,6 +231,13 @@ extern "C" int wsrep_thd_append_key(MYSQL_THD thd,
int n_keys,
enum Wsrep_service_key_type);
+extern "C" int wsrep_thd_append_table_key(MYSQL_THD thd,
+ const char* db,
+ const char* table,
+ enum Wsrep_service_key_type);
+
+extern "C" my_bool wsrep_thd_is_local_transaction(const MYSQL_THD thd);
+
extern const char* wsrep_sr_table_name_full;
extern "C" const char* wsrep_get_sr_table_name();