summaryrefslogtreecommitdiff
path: root/storage/spider/spd_conn.h
diff options
context:
space:
mode:
Diffstat (limited to 'storage/spider/spd_conn.h')
-rw-r--r--storage/spider/spd_conn.h313
1 files changed, 313 insertions, 0 deletions
diff --git a/storage/spider/spd_conn.h b/storage/spider/spd_conn.h
new file mode 100644
index 00000000000..9dc8f3495fd
--- /dev/null
+++ b/storage/spider/spd_conn.h
@@ -0,0 +1,313 @@
+/* Copyright (C) 2008-2013 Kentoku Shiba
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#define SPIDER_LOCK_MODE_NO_LOCK 0
+#define SPIDER_LOCK_MODE_SHARED 1
+#define SPIDER_LOCK_MODE_EXCLUSIVE 2
+
+#define SPIDER_BG_SIMPLE_NO_ACTION 0
+#define SPIDER_BG_SIMPLE_CONNECT 1
+#define SPIDER_BG_SIMPLE_DISCONNECT 2
+
+uchar *spider_conn_get_key(
+ SPIDER_CONN *conn,
+ size_t *length,
+ my_bool not_used __attribute__ ((unused))
+);
+
+int spider_reset_conn_setted_parameter(
+ SPIDER_CONN *conn,
+ THD *thd
+);
+
+int spider_free_conn_alloc(
+ SPIDER_CONN *conn
+);
+
+void spider_free_conn_from_trx(
+ SPIDER_TRX *trx,
+ SPIDER_CONN *conn,
+ bool another,
+ bool trx_free,
+ int *roop_count
+);
+
+SPIDER_CONN *spider_create_conn(
+ SPIDER_SHARE *share,
+ ha_spider *spider,
+ int link_id,
+ int base_link_id,
+ uint conn_kind,
+ int *error_num
+);
+
+SPIDER_CONN *spider_get_conn(
+ SPIDER_SHARE *share,
+ int link_idx,
+ char *conn_key,
+ SPIDER_TRX *trx,
+ ha_spider *spider,
+ bool another,
+ bool thd_chg,
+ uint conn_kind,
+ int *error_num
+);
+
+int spider_free_conn(
+ SPIDER_CONN *conn
+);
+
+void spider_conn_queue_connect(
+ SPIDER_SHARE *share,
+ SPIDER_CONN *conn,
+ int link_idx
+);
+
+void spider_conn_queue_connect_rewrite(
+ SPIDER_SHARE *share,
+ SPIDER_CONN *conn,
+ int link_idx
+);
+
+void spider_conn_queue_ping(
+ ha_spider *spider,
+ SPIDER_CONN *conn,
+ int link_idx
+);
+
+void spider_conn_queue_trx_isolation(
+ SPIDER_CONN *conn,
+ int trx_isolation
+);
+
+void spider_conn_queue_semi_trx_isolation(
+ SPIDER_CONN *conn,
+ int trx_isolation
+);
+
+void spider_conn_queue_autocommit(
+ SPIDER_CONN *conn,
+ bool autocommit
+);
+
+void spider_conn_queue_sql_log_off(
+ SPIDER_CONN *conn,
+ bool sql_log_off
+);
+
+void spider_conn_queue_time_zone(
+ SPIDER_CONN *conn,
+ Time_zone *time_zone
+);
+
+void spider_conn_queue_start_transaction(
+ SPIDER_CONN *conn
+);
+
+void spider_conn_queue_xa_start(
+ SPIDER_CONN *conn,
+ XID *xid
+);
+
+void spider_conn_clear_queue(
+ SPIDER_CONN *conn
+);
+
+void spider_conn_clear_queue_at_commit(
+ SPIDER_CONN *conn
+);
+
+void spider_conn_set_timeout(
+ SPIDER_CONN *conn,
+ uint net_read_timeout,
+ uint net_write_timeout
+);
+
+void spider_conn_set_timeout_from_share(
+ SPIDER_CONN *conn,
+ int link_idx,
+ THD *thd,
+ SPIDER_SHARE *share
+);
+
+void spider_conn_set_timeout_from_direct_sql(
+ SPIDER_CONN *conn,
+ THD *thd,
+ SPIDER_DIRECT_SQL *direct_sql
+);
+
+void spider_tree_insert(
+ SPIDER_CONN *top,
+ SPIDER_CONN *conn
+);
+
+SPIDER_CONN *spider_tree_first(
+ SPIDER_CONN *top
+);
+
+SPIDER_CONN *spider_tree_last(
+ SPIDER_CONN *top
+);
+
+SPIDER_CONN *spider_tree_next(
+ SPIDER_CONN *current
+);
+
+SPIDER_CONN *spider_tree_delete(
+ SPIDER_CONN *conn,
+ SPIDER_CONN *top
+);
+
+#ifndef WITHOUT_SPIDER_BG_SEARCH
+int spider_set_conn_bg_param(
+ ha_spider *spider
+);
+
+int spider_create_conn_thread(
+ SPIDER_CONN *conn
+);
+
+void spider_free_conn_thread(
+ SPIDER_CONN *conn
+);
+
+void spider_bg_conn_wait(
+ SPIDER_CONN *conn
+);
+
+void spider_bg_all_conn_wait(
+ ha_spider *spider
+);
+
+int spider_bg_all_conn_pre_next(
+ ha_spider *spider,
+ int link_idx
+);
+
+void spider_bg_conn_break(
+ SPIDER_CONN *conn,
+ ha_spider *spider
+);
+
+void spider_bg_all_conn_break(
+ ha_spider *spider
+);
+
+bool spider_bg_conn_get_job(
+ SPIDER_CONN *conn
+);
+
+int spider_bg_conn_search(
+ ha_spider *spider,
+ int link_idx,
+ int first_link_idx,
+ bool first,
+ bool pre_next,
+ bool discard_result
+);
+
+void spider_bg_conn_simple_action(
+ SPIDER_CONN *conn,
+ uint simple_action
+);
+
+void *spider_bg_conn_action(
+ void *arg
+);
+
+int spider_create_sts_thread(
+ SPIDER_SHARE *share
+);
+
+void spider_free_sts_thread(
+ SPIDER_SHARE *share
+);
+
+void *spider_bg_sts_action(
+ void *arg
+);
+
+int spider_create_crd_thread(
+ SPIDER_SHARE *share
+);
+
+void spider_free_crd_thread(
+ SPIDER_SHARE *share
+);
+
+void *spider_bg_crd_action(
+ void *arg
+);
+
+int spider_create_mon_threads(
+ SPIDER_TRX *trx,
+ SPIDER_SHARE *share
+);
+
+void spider_free_mon_threads(
+ SPIDER_SHARE *share
+);
+
+void *spider_bg_mon_action(
+ void *arg
+);
+#endif
+
+int spider_conn_first_link_idx(
+ THD *thd,
+ long *link_statuses,
+ long *access_balances,
+ uint *conn_link_idx,
+ int link_count,
+ int link_status
+);
+
+int spider_conn_next_link_idx(
+ THD *thd,
+ long *link_statuses,
+ long *access_balances,
+ uint *conn_link_idx,
+ int link_idx,
+ int link_count,
+ int link_status
+);
+
+int spider_conn_link_idx_next(
+ long *link_statuses,
+ uint *conn_link_idx,
+ int link_idx,
+ int link_count,
+ int link_status
+);
+
+int spider_conn_lock_mode(
+ ha_spider *spider
+);
+
+bool spider_conn_check_recovery_link(
+ SPIDER_SHARE *share
+);
+
+bool spider_conn_use_handler(
+ ha_spider *spider,
+ int lock_mode,
+ int link_idx
+);
+
+bool spider_conn_need_open_handler(
+ ha_spider *spider,
+ uint idx,
+ int link_idx
+);