summaryrefslogtreecommitdiffstats
path: root/storage/spider/spd_trx.h
diff options
context:
space:
mode:
Diffstat (limited to 'storage/spider/spd_trx.h')
-rw-r--r--storage/spider/spd_trx.h268
1 files changed, 268 insertions, 0 deletions
diff --git a/storage/spider/spd_trx.h b/storage/spider/spd_trx.h
new file mode 100644
index 00000000..2055a497
--- /dev/null
+++ b/storage/spider/spd_trx.h
@@ -0,0 +1,268 @@
+/* Copyright (C) 2008-2019 Kentoku Shiba
+ Copyright (C) 2019 MariaDB corp
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */
+
+int spider_free_trx_conn(
+ SPIDER_TRX *trx,
+ bool trx_free
+);
+
+int spider_free_trx_another_conn(
+ SPIDER_TRX *trx,
+ bool lock
+);
+
+int spider_trx_another_lock_tables(
+ SPIDER_TRX *trx
+);
+
+int spider_trx_another_flush_tables(
+ SPIDER_TRX *trx
+);
+
+int spider_trx_all_flush_tables(
+ SPIDER_TRX *trx
+);
+
+int spider_trx_all_unlock_tables(
+ SPIDER_TRX *trx
+);
+
+int spider_trx_all_start_trx(
+ SPIDER_TRX *trx
+);
+
+int spider_trx_all_flush_logs(
+ SPIDER_TRX *trx
+);
+
+int spider_free_trx_alloc(
+ SPIDER_TRX *trx
+);
+
+void spider_free_trx_alter_table_alloc(
+ SPIDER_TRX *trx,
+ SPIDER_ALTER_TABLE *alter_table
+);
+
+int spider_free_trx_alter_table(
+ SPIDER_TRX *trx
+);
+
+int spider_create_trx_alter_table(
+ SPIDER_TRX *trx,
+ SPIDER_SHARE *share,
+ bool now_create
+);
+
+bool spider_cmp_trx_alter_table(
+ SPIDER_ALTER_TABLE *cmp1,
+ SPIDER_ALTER_TABLE *cmp2
+);
+
+SPIDER_TRX *spider_get_trx(
+ THD *thd,
+ bool regist_allocated_thds,
+ int *error_num
+);
+
+int spider_free_trx(
+ SPIDER_TRX *trx,
+ bool need_lock,
+ bool reset_ha_data= true
+);
+
+int spider_check_and_set_trx_isolation(
+ SPIDER_CONN *conn,
+ int *need_mon
+);
+
+int spider_check_and_set_autocommit(
+ THD *thd,
+ SPIDER_CONN *conn,
+ int *need_mon
+);
+
+int spider_check_and_set_sql_log_off(
+ THD *thd,
+ SPIDER_CONN *conn,
+ int *need_mon
+);
+
+int spider_check_and_set_wait_timeout(
+ THD *thd,
+ SPIDER_CONN *conn,
+ int *need_mon
+);
+
+int spider_check_and_set_sql_mode(
+ THD *thd,
+ SPIDER_CONN *conn,
+ int *need_mon
+);
+
+int spider_check_and_set_time_zone(
+ THD *thd,
+ SPIDER_CONN *conn,
+ int *need_mon
+);
+
+int spider_start_internal_consistent_snapshot(
+ SPIDER_TRX *trx,
+ SPIDER_CONN *conn,
+ int *need_mon
+);
+
+int spider_internal_start_trx(
+ ha_spider *spider
+);
+
+int spider_internal_start_trx_for_connection(
+ ha_spider *spider,
+ SPIDER_CONN *conn,
+ int link_idx
+);
+
+int spider_internal_xa_commit(
+ THD* thd,
+ SPIDER_TRX *trx,
+ XID* xid,
+ TABLE *table_xa,
+ TABLE *table_xa_member
+);
+
+int spider_internal_xa_rollback(
+ THD* thd,
+ SPIDER_TRX *trx
+);
+
+int spider_internal_xa_prepare(
+ THD* thd,
+ SPIDER_TRX *trx,
+ TABLE *table_xa,
+ TABLE *table_xa_member,
+ bool internal_xa
+);
+
+int spider_internal_xa_recover(
+ THD* thd,
+ XID* xid_list,
+ uint len
+);
+
+int spider_initinal_xa_recover(
+ XID* xid_list,
+ uint len
+);
+
+int spider_internal_xa_commit_by_xid(
+ THD* thd,
+ SPIDER_TRX *trx,
+ XID* xid
+);
+
+int spider_internal_xa_rollback_by_xid(
+ THD* thd,
+ SPIDER_TRX *trx,
+ XID* xid
+);
+
+int spider_start_consistent_snapshot(
+ handlerton *hton,
+ THD* thd
+);
+
+int spider_commit(
+ handlerton *hton,
+ THD *thd,
+ bool all
+);
+
+int spider_rollback(
+ handlerton *hton,
+ THD *thd,
+ bool all
+);
+
+int spider_xa_prepare(
+ handlerton *hton,
+ THD* thd,
+ bool all
+);
+
+int spider_xa_recover(
+ handlerton *hton,
+ XID* xid_list,
+ uint len
+);
+
+int spider_xa_commit_by_xid(
+ handlerton *hton,
+ XID* xid
+);
+
+int spider_xa_rollback_by_xid(
+ handlerton *hton,
+ XID* xid
+);
+
+void spider_copy_table_free_trx_conn(
+ SPIDER_TRX *trx
+);
+
+int spider_end_trx(
+ SPIDER_TRX *trx,
+ SPIDER_CONN *conn
+);
+
+int spider_check_trx_and_get_conn(
+ THD *thd,
+ ha_spider *spider,
+ bool use_conn_kind
+);
+
+THD *spider_create_tmp_thd();
+
+void spider_free_tmp_thd(
+ THD *thd
+);
+
+int spider_create_trx_ha(
+ SPIDER_TRX *trx,
+ ha_spider *spider,
+ SPIDER_TRX_HA *trx_ha
+);
+
+SPIDER_TRX_HA *spider_check_trx_ha(
+ SPIDER_TRX *trx,
+ ha_spider *spider
+);
+
+void spider_free_trx_ha(
+ SPIDER_TRX *trx
+);
+
+void spider_reuse_trx_ha(
+ SPIDER_TRX *trx
+);
+
+void spider_trx_set_link_idx_for_all(
+ ha_spider *spider
+);
+
+int spider_trx_check_link_idx_failed(
+ ha_spider *spider
+);
+