diff options
Diffstat (limited to 'storage/spider/spd_trx.h')
-rw-r--r-- | storage/spider/spd_trx.h | 268 |
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 +); + |