2019-04-12 16:37:57 +02:00
|
|
|
/* Copyright (C) 2008-2019 Kentoku Shiba
|
|
|
|
Copyright (C) 2019 MariaDB corp
|
2013-05-12 22:08:51 +02:00
|
|
|
|
|
|
|
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
|
2019-05-11 21:19:05 +02:00
|
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */
|
2013-05-12 22:08:51 +02:00
|
|
|
|
|
|
|
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,
|
2019-05-19 15:39:15 +02:00
|
|
|
bool need_lock,
|
|
|
|
bool reset_ha_data= true
|
2013-05-12 22:08:51 +02:00
|
|
|
);
|
|
|
|
|
|
|
|
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
|
|
|
|
);
|
|
|
|
|
2019-04-12 16:37:57 +02:00
|
|
|
int spider_check_and_set_wait_timeout(
|
|
|
|
THD *thd,
|
|
|
|
SPIDER_CONN *conn,
|
|
|
|
int *need_mon
|
|
|
|
);
|
|
|
|
|
2019-06-28 20:35:48 +02:00
|
|
|
int spider_check_and_set_sql_mode(
|
|
|
|
THD *thd,
|
|
|
|
SPIDER_CONN *conn,
|
|
|
|
int *need_mon
|
|
|
|
);
|
|
|
|
|
2013-05-12 22:08:51 +02:00
|
|
|
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(
|
2020-03-02 18:50:40 +01:00
|
|
|
ha_spider *spider
|
|
|
|
);
|
|
|
|
|
|
|
|
int spider_internal_start_trx_for_connection(
|
2013-05-12 22:08:51 +02:00
|
|
|
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
|
|
|
|
);
|
|
|
|
|
2014-03-24 20:42:40 +01:00
|
|
|
void spider_copy_table_free_trx_conn(
|
|
|
|
SPIDER_TRX *trx
|
|
|
|
);
|
|
|
|
|
2013-05-12 22:08:51 +02:00
|
|
|
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
|
|
|
|
);
|
|
|
|
|