summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNayuta Yanagisawa <nayuta.yanagisawa@hey.com>2021-08-02 14:54:49 +0000
committerNayuta Yanagisawa <nayuta.yanagisawa@hey.com>2021-08-02 14:54:49 +0000
commitb4dea969eea056ed8ec999023754d6a5e91a0ce8 (patch)
tree7327912938564d9e521a3265f63b86b214d32096
parent565a130eff320d9dde4969f6c57019240202dd31 (diff)
downloadmariadb-git-bb-10.7-mdev-26288.tar.gz
clang-format -i *.hbb-10.7-mdev-26288
-rw-r--r--storage/spider/ha_spider.h1297
-rw-r--r--storage/spider/spd_conn.h571
-rw-r--r--storage/spider/spd_copy_tables.h62
-rw-r--r--storage/spider/spd_db_conn.h1345
-rw-r--r--storage/spider/spd_db_handlersocket.h1277
-rw-r--r--storage/spider/spd_db_include.h2081
-rw-r--r--storage/spider/spd_db_mysql.h2230
-rw-r--r--storage/spider/spd_db_oracle.h2059
-rw-r--r--storage/spider/spd_direct_sql.h60
-rw-r--r--storage/spider/spd_err.h88
-rw-r--r--storage/spider/spd_group_by_handler.h17
-rw-r--r--storage/spider/spd_include.h2224
-rw-r--r--storage/spider/spd_init_query.h1666
-rw-r--r--storage/spider/spd_malloc.h112
-rw-r--r--storage/spider/spd_param.h494
-rw-r--r--storage/spider/spd_ping_table.h139
-rw-r--r--storage/spider/spd_sys_table.h796
-rw-r--r--storage/spider/spd_table.h857
-rw-r--r--storage/spider/spd_trx.h352
-rw-r--r--storage/spider/spd_udf.h70
20 files changed, 6135 insertions, 11662 deletions
diff --git a/storage/spider/ha_spider.h b/storage/spider/ha_spider.h
index 5bc58397f28..f81639d64b0 100644
--- a/storage/spider/ha_spider.h
+++ b/storage/spider/ha_spider.h
@@ -12,7 +12,8 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
#ifdef USE_PRAGMA_INTERFACE
#pragma interface
@@ -23,21 +24,18 @@
#define SPIDER_LONGLONG_LEN 20
#define SPIDER_MAX_KEY_LENGTH 16384
-#define SPIDER_SET_CONNS_PARAM(param_name, param_val, conns, link_statuses, conn_link_idx, link_count, link_status) \
- for ( \
- roop_count = spider_conn_link_idx_next(link_statuses, \
- conn_link_idx, -1, link_count, link_status); \
- roop_count < link_count; \
- roop_count = spider_conn_link_idx_next(link_statuses, \
- conn_link_idx, roop_count, link_count, link_status) \
- ) { \
- if (conns[roop_count]) \
- conns[roop_count]->param_name = param_val; \
+#define SPIDER_SET_CONNS_PARAM(param_name, param_val, conns, link_statuses, \
+ conn_link_idx, link_count, link_status) \
+ for (roop_count = spider_conn_link_idx_next(link_statuses, conn_link_idx, \
+ -1, link_count, link_status); \
+ roop_count < link_count; roop_count = spider_conn_link_idx_next( \
+ link_statuses, conn_link_idx, roop_count, \
+ link_count, link_status)) { \
+ if (conns[roop_count]) conns[roop_count]->param_name = param_val; \
}
class ha_spider;
-struct st_spider_ft_info
-{
+struct st_spider_ft_info {
struct _ft_vft *please;
st_spider_ft_info *next;
ha_spider *file;
@@ -49,62 +47,61 @@ struct st_spider_ft_info
String *key;
};
-class ha_spider final : public handler
-{
-public:
- SPIDER_SHARE *share;
- ulonglong spider_thread_id;
- ulonglong trx_conn_adjustment;
+class ha_spider final : public handler {
+ public:
+ SPIDER_SHARE *share;
+ ulonglong spider_thread_id;
+ ulonglong trx_conn_adjustment;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- ulonglong trx_hs_r_conn_adjustment;
- ulonglong trx_hs_w_conn_adjustment;
-#endif
- uint mem_calc_id;
- const char *mem_calc_func_name;
- const char *mem_calc_file_name;
- ulong mem_calc_line_no;
- uint sql_kinds;
- uint *sql_kind;
- ulonglong *connection_ids;
- uint conn_kinds;
- uint *conn_kind;
- char *conn_keys_first_ptr;
- char **conn_keys;
- SPIDER_CONN **conns;
+ ulonglong trx_hs_r_conn_adjustment;
+ ulonglong trx_hs_w_conn_adjustment;
+#endif
+ uint mem_calc_id;
+ const char *mem_calc_func_name;
+ const char *mem_calc_file_name;
+ ulong mem_calc_line_no;
+ uint sql_kinds;
+ uint *sql_kind;
+ ulonglong *connection_ids;
+ uint conn_kinds;
+ uint *conn_kind;
+ char *conn_keys_first_ptr;
+ char **conn_keys;
+ SPIDER_CONN **conns;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- char **hs_r_conn_keys;
- SPIDER_CONN **hs_r_conns;
- ulonglong *hs_r_conn_ages;
- char **hs_w_conn_keys;
- SPIDER_CONN **hs_w_conns;
- ulonglong *hs_w_conn_ages;
+ char **hs_r_conn_keys;
+ SPIDER_CONN **hs_r_conns;
+ ulonglong *hs_r_conn_ages;
+ char **hs_w_conn_keys;
+ SPIDER_CONN **hs_w_conns;
+ ulonglong *hs_w_conn_ages;
#endif
/* for active-standby mode */
- uint *conn_link_idx;
- uchar *conn_can_fo;
- void **quick_targets;
- int *need_mons;
- query_id_t search_link_query_id;
- int search_link_idx;
- int result_link_idx;
+ uint *conn_link_idx;
+ uchar *conn_can_fo;
+ void **quick_targets;
+ int *need_mons;
+ query_id_t search_link_query_id;
+ int search_link_idx;
+ int result_link_idx;
SPIDER_RESULT_LIST result_list;
- spider_string *blob_buff;
- SPIDER_POSITION *pushed_pos;
- SPIDER_POSITION pushed_pos_buf;
+ spider_string *blob_buff;
+ SPIDER_POSITION *pushed_pos;
+ SPIDER_POSITION pushed_pos_buf;
#ifdef WITH_PARTITION_STORAGE_ENGINE
- bool pt_handler_share_owner = FALSE;
+ bool pt_handler_share_owner = FALSE;
SPIDER_PARTITION_HANDLER_SHARE *partition_handler_share;
#endif
- bool wide_handler_owner = FALSE;
+ bool wide_handler_owner = FALSE;
SPIDER_WIDE_HANDLER *wide_handler = NULL;
#ifdef HA_CAN_BULK_ACCESS
- int pre_direct_init_result;
- bool is_bulk_access_clone;
- bool synced_from_clone_source;
- bool bulk_access_started;
- bool bulk_access_executing;
- bool bulk_access_pre_called;
+ int pre_direct_init_result;
+ bool is_bulk_access_clone;
+ bool synced_from_clone_source;
+ bool bulk_access_started;
+ bool bulk_access_executing;
+ bool bulk_access_pre_called;
SPIDER_BULK_ACCESS_LINK *bulk_access_link_first;
SPIDER_BULK_ACCESS_LINK *bulk_access_link_current;
SPIDER_BULK_ACCESS_LINK *bulk_access_link_exec_tgt;
@@ -113,121 +110,121 @@ public:
MEM_ROOT ha_mem_root;
*/
#endif
- bool is_clone;
- ha_spider *pt_clone_source_handler;
- ha_spider *pt_clone_last_searcher;
- bool use_index_merge;
+ bool is_clone;
+ ha_spider *pt_clone_source_handler;
+ ha_spider *pt_clone_last_searcher;
+ bool use_index_merge;
- bool init_index_handler;
- bool init_rnd_handler;
+ bool init_index_handler;
+ bool init_rnd_handler;
- bool da_status;
- bool use_spatial_index;
+ bool da_status;
+ bool use_spatial_index;
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- uint idx_for_direct_join;
- bool use_fields;
- spider_fields *fields;
+ uint idx_for_direct_join;
+ bool use_fields;
+ spider_fields *fields;
SPIDER_LINK_IDX_CHAIN *link_idx_chain;
SPIDER_LINK_IDX_CHAIN *result_link_idx_chain;
#endif
/* for mrr */
- bool mrr_with_cnt;
- uint multi_range_cnt;
- uint multi_range_hit_point;
+ bool mrr_with_cnt;
+ uint multi_range_cnt;
+ uint multi_range_hit_point;
#ifdef HA_MRR_USE_DEFAULT_IMPL
- int multi_range_num;
- bool have_second_range;
- KEY_MULTI_RANGE mrr_second_range;
- spider_string *mrr_key_buff;
+ int multi_range_num;
+ bool have_second_range;
+ KEY_MULTI_RANGE mrr_second_range;
+ spider_string *mrr_key_buff;
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100000
- range_id_t *multi_range_keys;
+ range_id_t *multi_range_keys;
#else
- char **multi_range_keys;
+ char **multi_range_keys;
#endif
#else
- KEY_MULTI_RANGE *multi_range_ranges;
+ KEY_MULTI_RANGE *multi_range_ranges;
#endif
- char *append_tblnm_alias;
- uint append_tblnm_alias_length;
+ char *append_tblnm_alias;
+ uint append_tblnm_alias_length;
- ha_spider *next;
+ ha_spider *next;
- bool dml_inited;
- bool rnd_scan_and_first;
- bool use_pre_call;
- bool use_pre_action;
- bool pre_bitmap_checked;
- bool bulk_insert;
+ bool dml_inited;
+ bool rnd_scan_and_first;
+ bool use_pre_call;
+ bool use_pre_action;
+ bool pre_bitmap_checked;
+ bool bulk_insert;
#ifdef HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
- bool info_auto_called;
+ bool info_auto_called;
#endif
#ifdef HANDLER_HAS_CAN_USE_FOR_AUTO_INC_INIT
- bool auto_inc_temporary;
-#endif
- int bulk_size;
- int direct_dup_insert;
- int store_error_num;
- uint dup_key_idx;
- int select_column_mode;
- bool pk_update;
- bool force_auto_increment;
- int bka_mode;
- int error_mode;
- ulonglong store_last_insert_id;
+ bool auto_inc_temporary;
+#endif
+ int bulk_size;
+ int direct_dup_insert;
+ int store_error_num;
+ uint dup_key_idx;
+ int select_column_mode;
+ bool pk_update;
+ bool force_auto_increment;
+ int bka_mode;
+ int error_mode;
+ ulonglong store_last_insert_id;
- ulonglong *db_request_id;
- uchar *db_request_phase;
- uchar *m_handler_opened;
- uint *m_handler_id;
- char **m_handler_cid;
+ ulonglong *db_request_id;
+ uchar *db_request_phase;
+ uchar *m_handler_opened;
+ uint *m_handler_id;
+ char **m_handler_cid;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- uchar *r_handler_opened;
- uint *r_handler_id;
- uint *r_handler_index;
- uchar *w_handler_opened;
- uint *w_handler_id;
- uint *w_handler_index;
+ uchar *r_handler_opened;
+ uint *r_handler_id;
+ uint *r_handler_index;
+ uchar *w_handler_opened;
+ uint *w_handler_id;
+ uint *w_handler_index;
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- uchar *do_hs_direct_update;
- uint32 **hs_r_ret_fields;
- uint32 **hs_w_ret_fields;
- size_t *hs_r_ret_fields_num;
- size_t *hs_w_ret_fields_num;
- uchar *tmp_column_bitmap;
+ uchar *do_hs_direct_update;
+ uint32 **hs_r_ret_fields;
+ uint32 **hs_w_ret_fields;
+ size_t *hs_r_ret_fields_num;
+ size_t *hs_w_ret_fields_num;
+ uchar *tmp_column_bitmap;
#endif
#endif
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- bool do_direct_update;
+ bool do_direct_update;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- bool maybe_do_hs_direct_update;
+ bool maybe_do_hs_direct_update;
#endif
- uint direct_update_kinds;
+ uint direct_update_kinds;
#endif
spider_index_rnd_init prev_index_rnd_init;
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- SPIDER_ITEM_HLD *direct_aggregate_item_first;
- SPIDER_ITEM_HLD *direct_aggregate_item_current;
+ SPIDER_ITEM_HLD *direct_aggregate_item_first;
+ SPIDER_ITEM_HLD *direct_aggregate_item_current;
#endif
- ha_rows table_rows;
+ ha_rows table_rows;
#ifdef HA_HAS_CHECKSUM_EXTENDED
- ha_checksum checksum_val;
- bool checksum_null;
- uint action_flags;
+ ha_checksum checksum_val;
+ bool checksum_null;
+ uint action_flags;
#endif
/* for fulltext search */
- bool ft_init_and_first;
- uint ft_init_idx;
- uint ft_count;
- bool ft_init_without_index_init;
- st_spider_ft_info *ft_first;
- st_spider_ft_info *ft_current;
+ bool ft_init_and_first;
+ uint ft_init_idx;
+ uint ft_count;
+ bool ft_init_without_index_init;
+ st_spider_ft_info *ft_first;
+ st_spider_ft_info *ft_current;
/* for dbton */
- spider_db_handler **dbton_handler;
+ spider_db_handler **dbton_handler;
/* for direct limit offset */
longlong direct_select_offset;
@@ -235,264 +232,117 @@ public:
longlong direct_select_limit;
ha_spider();
- ha_spider(
- handlerton *hton,
- TABLE_SHARE *table_arg
- );
+ ha_spider(handlerton *hton, TABLE_SHARE *table_arg);
virtual ~ha_spider();
- handler *clone(
- const char *name,
- MEM_ROOT *mem_root
- );
+ handler *clone(const char *name, MEM_ROOT *mem_root);
const char **bas_ext() const;
- int open(
- const char* name,
- int mode,
- uint test_if_locked
- );
+ int open(const char *name, int mode, uint test_if_locked);
int close();
- int check_access_kind_for_connection(
- THD *thd,
- bool write_request
- );
- void check_access_kind(
- THD *thd
- );
+ int check_access_kind_for_connection(THD *thd, bool write_request);
+ void check_access_kind(THD *thd);
#ifdef HA_CAN_BULK_ACCESS
- int additional_lock(
- THD *thd,
- enum thr_lock_type lock_type
- );
-#endif
- THR_LOCK_DATA **store_lock(
- THD *thd,
- THR_LOCK_DATA **to,
- enum thr_lock_type lock_type
- );
- int external_lock(
- THD *thd,
- int lock_type
- );
- int start_stmt(
- THD *thd,
- thr_lock_type lock_type
- );
+ int additional_lock(THD *thd, enum thr_lock_type lock_type);
+#endif
+ THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
+ enum thr_lock_type lock_type);
+ int external_lock(THD *thd, int lock_type);
+ int start_stmt(THD *thd, thr_lock_type lock_type);
int reset();
- int extra(
- enum ha_extra_function operation
- );
- int index_init(
- uint idx,
- bool sorted
- );
+ int extra(enum ha_extra_function operation);
+ int index_init(uint idx, bool sorted);
#ifdef HA_CAN_BULK_ACCESS
- int pre_index_init(
- uint idx,
- bool sorted
- );
+ int pre_index_init(uint idx, bool sorted);
#endif
int index_end();
#ifdef HA_CAN_BULK_ACCESS
int pre_index_end();
#endif
- int index_read_map(
- uchar *buf,
- const uchar *key,
- key_part_map keypart_map,
- enum ha_rkey_function find_flag
- );
- int index_read_last_map(
- uchar *buf,
- const uchar *key,
- key_part_map keypart_map
- );
- int index_next(
- uchar *buf
- );
- int index_prev(
- uchar *buf
- );
- int index_first(
- uchar *buf
- );
- int index_last(
- uchar *buf
- );
- int index_next_same(
- uchar *buf,
- const uchar *key,
- uint keylen
- );
- int read_range_first(
- const key_range *start_key,
- const key_range *end_key,
- bool eq_range,
- bool sorted
- );
+ int index_read_map(uchar *buf, const uchar *key, key_part_map keypart_map,
+ enum ha_rkey_function find_flag);
+ int index_read_last_map(uchar *buf, const uchar *key,
+ key_part_map keypart_map);
+ int index_next(uchar *buf);
+ int index_prev(uchar *buf);
+ int index_first(uchar *buf);
+ int index_last(uchar *buf);
+ int index_next_same(uchar *buf, const uchar *key, uint keylen);
+ int read_range_first(const key_range *start_key, const key_range *end_key,
+ bool eq_range, bool sorted);
int read_range_next();
void reset_no_where_cond();
bool check_no_where_cond();
#ifdef HA_MRR_USE_DEFAULT_IMPL
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100000
- ha_rows multi_range_read_info_const(
- uint keyno,
- RANGE_SEQ_IF *seq,
- void *seq_init_param,
- uint n_ranges,
- uint *bufsz,
- uint *flags,
- Cost_estimate *cost
- );
- ha_rows multi_range_read_info(
- uint keyno,
- uint n_ranges,
- uint keys,
- uint key_parts,
- uint *bufsz,
- uint *flags,
- Cost_estimate *cost
- );
+ ha_rows multi_range_read_info_const(uint keyno, RANGE_SEQ_IF *seq,
+ void *seq_init_param, uint n_ranges,
+ uint *bufsz, uint *flags,
+ Cost_estimate *cost);
+ ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
+ uint key_parts, uint *bufsz, uint *flags,
+ Cost_estimate *cost);
#else
- ha_rows multi_range_read_info_const(
- uint keyno,
- RANGE_SEQ_IF *seq,
- void *seq_init_param,
- uint n_ranges,
- uint *bufsz,
- uint *flags,
- COST_VECT *cost
- );
- ha_rows multi_range_read_info(
- uint keyno,
- uint n_ranges,
- uint keys,
- uint key_parts,
- uint *bufsz,
- uint *flags,
- COST_VECT *cost
- );
-#endif
- int multi_range_read_init(
- RANGE_SEQ_IF *seq,
- void *seq_init_param,
- uint n_ranges,
- uint mode,
- HANDLER_BUFFER *buf
- );
+ ha_rows multi_range_read_info_const(uint keyno, RANGE_SEQ_IF *seq,
+ void *seq_init_param, uint n_ranges,
+ uint *bufsz, uint *flags,
+ COST_VECT *cost);
+ ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
+ uint key_parts, uint *bufsz, uint *flags,
+ COST_VECT *cost);
+#endif
+ int multi_range_read_init(RANGE_SEQ_IF *seq, void *seq_init_param,
+ uint n_ranges, uint mode, HANDLER_BUFFER *buf);
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100000
- int multi_range_read_next(
- range_id_t *range_info
- );
- int multi_range_read_next_first(
- range_id_t *range_info
- );
- int multi_range_read_next_next(
- range_id_t *range_info
- );
+ int multi_range_read_next(range_id_t *range_info);
+ int multi_range_read_next_first(range_id_t *range_info);
+ int multi_range_read_next_next(range_id_t *range_info);
#else
- int multi_range_read_next(
- char **range_info
- );
- int multi_range_read_next_first(
- char **range_info
- );
- int multi_range_read_next_next(
- char **range_info
- );
+ int multi_range_read_next(char **range_info);
+ int multi_range_read_next_first(char **range_info);
+ int multi_range_read_next_next(char **range_info);
#endif
#else
- int read_multi_range_first(
- KEY_MULTI_RANGE **found_range_p,
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted,
- HANDLER_BUFFER *buffer
- );
- int read_multi_range_next(
- KEY_MULTI_RANGE **found_range_p
- );
-#endif
- int rnd_init(
- bool scan
- );
+ int read_multi_range_first(KEY_MULTI_RANGE **found_range_p,
+ KEY_MULTI_RANGE *ranges, uint range_count,
+ bool sorted, HANDLER_BUFFER *buffer);
+ int read_multi_range_next(KEY_MULTI_RANGE **found_range_p);
+#endif
+ int rnd_init(bool scan);
#ifdef HA_CAN_BULK_ACCESS
- int pre_rnd_init(
- bool scan
- );
+ int pre_rnd_init(bool scan);
#endif
int rnd_end();
#ifdef HA_CAN_BULK_ACCESS
int pre_rnd_end();
#endif
- int rnd_next(
- uchar *buf
- );
- void position(
- const uchar *record
- );
- int rnd_pos(
- uchar *buf,
- uchar *pos
- );
- int cmp_ref(
- const uchar *ref1,
- const uchar *ref2
- );
+ int rnd_next(uchar *buf);
+ void position(const uchar *record);
+ int rnd_pos(uchar *buf, uchar *pos);
+ int cmp_ref(const uchar *ref1, const uchar *ref2);
int ft_init();
void ft_end();
- FT_INFO *ft_init_ext(
- uint flags,
- uint inx,
- String *key
- );
- int ft_read(
- uchar *buf
- );
- int pre_index_read_map(
- const uchar *key,
- key_part_map keypart_map,
- enum ha_rkey_function find_flag,
- bool use_parallel
- );
+ FT_INFO *ft_init_ext(uint flags, uint inx, String *key);
+ int ft_read(uchar *buf);
+ int pre_index_read_map(const uchar *key, key_part_map keypart_map,
+ enum ha_rkey_function find_flag, bool use_parallel);
int pre_index_first(bool use_parallel);
int pre_index_last(bool use_parallel);
- int pre_index_read_last_map(
- const uchar *key,
- key_part_map keypart_map,
- bool use_parallel
- );
+ int pre_index_read_last_map(const uchar *key, key_part_map keypart_map,
+ bool use_parallel);
#ifdef HA_MRR_USE_DEFAULT_IMPL
- int pre_multi_range_read_next(
- bool use_parallel
- );
+ int pre_multi_range_read_next(bool use_parallel);
#else
- int pre_read_multi_range_first(
- KEY_MULTI_RANGE **found_range_p,
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted,
- HANDLER_BUFFER *buffer,
- bool use_parallel
- );
-#endif
- int pre_read_range_first(
- const key_range *start_key,
- const key_range *end_key,
- bool eq_range,
- bool sorted,
- bool use_parallel
- );
+ int pre_read_multi_range_first(KEY_MULTI_RANGE **found_range_p,
+ KEY_MULTI_RANGE *ranges, uint range_count,
+ bool sorted, HANDLER_BUFFER *buffer,
+ bool use_parallel);
+#endif
+ int pre_read_range_first(const key_range *start_key, const key_range *end_key,
+ bool eq_range, bool sorted, bool use_parallel);
int pre_ft_read(bool use_parallel);
int pre_rnd_next(bool use_parallel);
- int info(
- uint flag
- );
- ha_rows records_in_range(
- uint inx,
- const key_range *start_key,
- const key_range *end_key,
- page_range *pages
- );
+ int info(uint flag);
+ ha_rows records_in_range(uint inx, const key_range *start_key,
+ const key_range *end_key, page_range *pages);
int check_crd();
int pre_records();
ha_rows records();
@@ -503,14 +353,8 @@ public:
const char *table_type() const;
ulonglong table_flags() const;
ulong table_flags_for_partition();
- const char *index_type(
- uint key_number
- );
- ulong index_flags(
- uint idx,
- uint part,
- bool all_parts
- ) const;
+ const char *index_type(uint key_number);
+ ulong index_flags(uint idx, uint part, bool all_parts) const;
uint max_supported_record_length() const;
uint max_supported_keys() const;
uint max_supported_key_parts() const;
@@ -524,107 +368,58 @@ public:
bool can_use_for_auto_inc_init();
#endif
int update_auto_increment();
- void get_auto_increment(
- ulonglong offset,
- ulonglong increment,
- ulonglong nb_desired_values,
- ulonglong *first_value,
- ulonglong *nb_reserved_values
- );
- int reset_auto_increment(
- ulonglong value
- );
+ void get_auto_increment(ulonglong offset, ulonglong increment,
+ ulonglong nb_desired_values, ulonglong *first_value,
+ ulonglong *nb_reserved_values);
+ int reset_auto_increment(ulonglong value);
void release_auto_increment();
#ifdef SPIDER_HANDLER_START_BULK_INSERT_HAS_FLAGS
- void start_bulk_insert(
- ha_rows rows,
- uint flags
- );
+ void start_bulk_insert(ha_rows rows, uint flags);
#else
- void start_bulk_insert(
- ha_rows rows
- );
+ void start_bulk_insert(ha_rows rows);
#endif
int end_bulk_insert();
- int write_row(
- const uchar *buf
- );
+ int write_row(const uchar *buf);
#ifdef HA_CAN_BULK_ACCESS
- int pre_write_row(
- uchar *buf
- );
+ int pre_write_row(uchar *buf);
#endif
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- void direct_update_init(
- THD *thd,
- bool hs_request
- );
+ void direct_update_init(THD *thd, bool hs_request);
#endif
bool start_bulk_update();
- int exec_bulk_update(
- ha_rows *dup_key_found
- );
+ int exec_bulk_update(ha_rows *dup_key_found);
int end_bulk_update();
#ifdef SPIDER_UPDATE_ROW_HAS_CONST_NEW_DATA
- int bulk_update_row(
- const uchar *old_data,
- const uchar *new_data,
- ha_rows *dup_key_found
- );
- int update_row(
- const uchar *old_data,
- const uchar *new_data
- );
+ int bulk_update_row(const uchar *old_data, const uchar *new_data,
+ ha_rows *dup_key_found);
+ int update_row(const uchar *old_data, const uchar *new_data);
#else
- int bulk_update_row(
- const uchar *old_data,
- uchar *new_data,
- ha_rows *dup_key_found
- );
- int update_row(
- const uchar *old_data,
- uchar *new_data
- );
+ int bulk_update_row(const uchar *old_data, uchar *new_data,
+ ha_rows *dup_key_found);
+ int update_row(const uchar *old_data, uchar *new_data);
#endif
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- bool check_direct_update_sql_part(
- st_select_lex *select_lex,
- longlong select_limit,
- longlong offset_limit
- );
+ bool check_direct_update_sql_part(st_select_lex *select_lex,
+ longlong select_limit,
+ longlong offset_limit);
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
#ifdef SPIDER_MDEV_16246
- inline int direct_update_rows_init(
- List<Item> *update_fields
- ) {
+ inline int direct_update_rows_init(List<Item> *update_fields) {
return direct_update_rows_init(update_fields, 2, NULL, 0, FALSE, NULL);
}
- int direct_update_rows_init(
- List<Item> *update_fields,
- uint mode,
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted,
- uchar *new_data
- );
+ int direct_update_rows_init(List<Item> *update_fields, uint mode,
+ KEY_MULTI_RANGE *ranges, uint range_count,
+ bool sorted, uchar *new_data);
#else
- inline int direct_update_rows_init()
- {
+ inline int direct_update_rows_init() {
return direct_update_rows_init(2, NULL, 0, FALSE, NULL);
}
- int direct_update_rows_init(
- uint mode,
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted,
- uchar *new_data
- );
+ int direct_update_rows_init(uint mode, KEY_MULTI_RANGE *ranges,
+ uint range_count, bool sorted, uchar *new_data);
#endif
#else
#ifdef SPIDER_MDEV_16246
- int direct_update_rows_init(
- List<Item> *update_fields
- );
+ int direct_update_rows_init(List<Item> *update_fields);
#else
int direct_update_rows_init();
#endif
@@ -632,79 +427,50 @@ public:
#ifdef HA_CAN_BULK_ACCESS
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
#ifdef SPIDER_MDEV_16246
- inline int pre_direct_update_rows_init(
- List<Item> *update_fields
- ) {
+ inline int pre_direct_update_rows_init(List<Item> *update_fields) {
return pre_direct_update_rows_init(update_fields, 2, NULL, 0, FALSE, NULL);
}
- int pre_direct_update_rows_init(
- List<Item> *update_fields,
- uint mode,
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted,
- uchar *new_data
- );
+ int pre_direct_update_rows_init(List<Item> *update_fields, uint mode,
+ KEY_MULTI_RANGE *ranges, uint range_count,
+ bool sorted, uchar *new_data);
#else
- inline int pre_direct_update_rows_init()
- {
+ inline int pre_direct_update_rows_init() {
return pre_direct_update_rows_init(2, NULL, 0, FALSE, NULL);
}
- int pre_direct_update_rows_init(
- uint mode,
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted,
- uchar *new_data
- );
+ int pre_direct_update_rows_init(uint mode, KEY_MULTI_RANGE *ranges,
+ uint range_count, bool sorted,
+ uchar *new_data);
#endif
#else
#ifdef SPIDER_MDEV_16246
- int pre_direct_update_rows_init(
- List<Item> *update_fields
- );
+ int pre_direct_update_rows_init(List<Item> *update_fields);
#else
int pre_direct_update_rows_init();
#endif
#endif
#endif
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
- inline int direct_update_rows(ha_rows *update_rows, ha_rows *found_rows)
- {
+ inline int direct_update_rows(ha_rows *update_rows, ha_rows *found_rows) {
return direct_update_rows(NULL, 0, FALSE, NULL, update_rows, found_rows);
}
- int direct_update_rows(
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted,
- uchar *new_data,
- ha_rows *update_rows,
- ha_rows *found_row
- );
+ int direct_update_rows(KEY_MULTI_RANGE *ranges, uint range_count, bool sorted,
+ uchar *new_data, ha_rows *update_rows,
+ ha_rows *found_row);
#else
- int direct_update_rows(
- ha_rows *update_rows,
- ha_rows *found_row
- );
+ int direct_update_rows(ha_rows *update_rows, ha_rows *found_row);
#endif
#ifdef HA_CAN_BULK_ACCESS
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
- inline int pre_direct_update_rows()
- {
+ inline int pre_direct_update_rows() {
ha_rows update_rows;
ha_rows found_rows;
return pre_direct_update_rows(NULL, 0, FALSE, NULL, &update_rows,
- &found_rows);
+ &found_rows);
}
- int pre_direct_update_rows(
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted,
- uchar *new_data,
- ha_rows *update_rows,
- ha_rows *found_row
- );
+ int pre_direct_update_rows(KEY_MULTI_RANGE *ranges, uint range_count,
+ bool sorted, uchar *new_data, ha_rows *update_rows,
+ ha_rows *found_row);
#else
int pre_direct_update_rows();
#endif
@@ -712,75 +478,49 @@ public:
#endif
bool start_bulk_delete();
int end_bulk_delete();
- int delete_row(
- const uchar *buf
- );
+ int delete_row(const uchar *buf);
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- bool check_direct_delete_sql_part(
- st_select_lex *select_lex,
- longlong select_limit,
- longlong offset_limit
- );
+ bool check_direct_delete_sql_part(st_select_lex *select_lex,
+ longlong select_limit,
+ longlong offset_limit);
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
- inline int direct_delete_rows_init()
- {
+ inline int direct_delete_rows_init() {
return direct_delete_rows_init(2, NULL, 0, FALSE);
}
- int direct_delete_rows_init(
- uint mode,
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted
- );
+ int direct_delete_rows_init(uint mode, KEY_MULTI_RANGE *ranges,
+ uint range_count, bool sorted);
#else
int direct_delete_rows_init();
#endif
#ifdef HA_CAN_BULK_ACCESS
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
- inline int pre_direct_delete_rows_init()
- {
+ inline int pre_direct_delete_rows_init() {
return pre_direct_delete_rows_init(2, NULL, 0, FALSE);
}
- int pre_direct_delete_rows_init(
- uint mode,
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted
- );
+ int pre_direct_delete_rows_init(uint mode, KEY_MULTI_RANGE *ranges,
+ uint range_count, bool sorted);
#else
int pre_direct_delete_rows_init();
#endif
#endif
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
- inline int direct_delete_rows(ha_rows *delete_rows)
- {
+ inline int direct_delete_rows(ha_rows *delete_rows) {
return direct_delete_rows(NULL, 0, FALSE, delete_rows);
}
- int direct_delete_rows(
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted,
- ha_rows *delete_rows
- );
+ int direct_delete_rows(KEY_MULTI_RANGE *ranges, uint range_count, bool sorted,
+ ha_rows *delete_rows);
#else
- int direct_delete_rows(
- ha_rows *delete_rows
- );
+ int direct_delete_rows(ha_rows *delete_rows);
#endif
#ifdef HA_CAN_BULK_ACCESS
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
- inline int pre_direct_delete_rows()
- {
+ inline int pre_direct_delete_rows() {
ha_rows delete_rows;
return pre_direct_delete_rows(NULL, 0, FALSE, &delete_rows);
}
- int pre_direct_delete_rows(
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted,
- ha_rows *delete_rows
- );
+ int pre_direct_delete_rows(KEY_MULTI_RANGE *ranges, uint range_count,
+ bool sorted, ha_rows *delete_rows);
#else
int pre_direct_delete_rows();
#endif
@@ -789,85 +529,36 @@ public:
int delete_all_rows();
int truncate();
double scan_time();
- double read_time(
- uint index,
- uint ranges,
- ha_rows rows
- );
+ double read_time(uint index, uint ranges, ha_rows rows);
#ifdef HA_CAN_BULK_ACCESS
void bulk_req_exec();
#endif
const key_map *keys_to_use_for_scanning();
ha_rows estimate_rows_upper_bound();
- void print_error(
- int error,
- myf errflag
- );
- bool get_error_message(
- int error,
- String *buf
- );
- int create(
- const char *name,
- TABLE *form,
- HA_CREATE_INFO *info
- );
- void update_create_info(
- HA_CREATE_INFO* create_info
- );
- int rename_table(
- const char *from,
- const char *to
- );
- int delete_table(
- const char *name
- );
+ void print_error(int error, myf errflag);
+ bool get_error_message(int error, String *buf);
+ int create(const char *name, TABLE *form, HA_CREATE_INFO *info);
+ void update_create_info(HA_CREATE_INFO *create_info);
+ int rename_table(const char *from, const char *to);
+ int delete_table(const char *name);
bool is_crashed() const;
#ifdef SPIDER_HANDLER_AUTO_REPAIR_HAS_ERROR
bool auto_repair(int error) const;
#else
bool auto_repair() const;
#endif
- int disable_indexes(
- uint mode
- );
- int enable_indexes(
- uint mode
- );
- int check(
- THD* thd,
- HA_CHECK_OPT* check_opt
- );
- int repair(
- THD* thd,
- HA_CHECK_OPT* check_opt
- );
- bool check_and_repair(
- THD *thd
- );
- int analyze(
- THD* thd,
- HA_CHECK_OPT* check_opt
- );
- int optimize(
- THD* thd,
- HA_CHECK_OPT* check_opt
- );
- bool is_fatal_error(
- int error_num,
- uint flags
- );
- Field *field_exchange(
- Field *field
- );
- const COND *cond_push(
- const COND* cond
- );
+ int disable_indexes(uint mode);
+ int enable_indexes(uint mode);
+ int check(THD *thd, HA_CHECK_OPT *check_opt);
+ int repair(THD *thd, HA_CHECK_OPT *check_opt);
+ bool check_and_repair(THD *thd);
+ int analyze(THD *thd, HA_CHECK_OPT *check_opt);
+ int optimize(THD *thd, HA_CHECK_OPT *check_opt);
+ bool is_fatal_error(int error_num, uint flags);
+ Field *field_exchange(Field *field);
+ const COND *cond_push(const COND *cond);
void cond_pop();
- int info_push(
- uint info_type,
- void *info
- );
+ int info_push(uint info_type, void *info);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
void return_record_by_parent();
#endif
@@ -880,128 +571,67 @@ public:
#ifdef WITH_PARTITION_STORAGE_ENGINE
void check_select_column(bool rnd);
#endif
- bool check_and_start_bulk_update(
- spider_bulk_upd_start bulk_upd_start
- );
- int check_and_end_bulk_update(
- spider_bulk_upd_start bulk_upd_start
- );
+ bool check_and_start_bulk_update(spider_bulk_upd_start bulk_upd_start);
+ int check_and_end_bulk_update(spider_bulk_upd_start bulk_upd_start);
uint check_partitioned();
void check_direct_order_limit();
void check_distinct_key_query();
- bool is_sole_projection_field(
- uint16 field_index
- );
+ bool is_sole_projection_field(uint16 field_index);
int check_ha_range_eof();
int drop_tmp_tables();
- bool handler_opened(
- int link_idx,
- uint tgt_conn_kind
- );
- void set_handler_opened(
- int link_idx
- );
- void clear_handler_opened(
- int link_idx,
- uint tgt_conn_kind
- );
- int close_opened_handler(
- int link_idx,
- bool release_conn
- );
+ bool handler_opened(int link_idx, uint tgt_conn_kind);
+ void set_handler_opened(int link_idx);
+ void clear_handler_opened(int link_idx, uint tgt_conn_kind);
+ int close_opened_handler(int link_idx, bool release_conn);
int index_handler_init();
int rnd_handler_init();
void set_error_mode();
void backup_error_status();
- int check_error_mode(
- int error_num
- );
- int check_error_mode_eof(
- int error_num
- );
- int index_read_map_internal(
- uchar *buf,
- const uchar *key,
- key_part_map keypart_map,
- enum ha_rkey_function find_flag
- );
- int index_read_last_map_internal(
- uchar *buf,
- const uchar *key,
- key_part_map keypart_map
- );
+ int check_error_mode(int error_num);
+ int check_error_mode_eof(int error_num);
+ int index_read_map_internal(uchar *buf, const uchar *key,
+ key_part_map keypart_map,
+ enum ha_rkey_function find_flag);
+ int index_read_last_map_internal(uchar *buf, const uchar *key,
+ key_part_map keypart_map);
int index_first_internal(uchar *buf);
int index_last_internal(uchar *buf);
- int read_range_first_internal(
- uchar *buf,
- const key_range *start_key,
- const key_range *end_key,
- bool eq_range,
- bool sorted
- );
+ int read_range_first_internal(uchar *buf, const key_range *start_key,
+ const key_range *end_key, bool eq_range,
+ bool sorted);
#ifdef HA_MRR_USE_DEFAULT_IMPL
#else
- int read_multi_range_first_internal(
- uchar *buf,
- KEY_MULTI_RANGE **found_range_p,
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- bool sorted,
- HANDLER_BUFFER *buffer
- );
+ int read_multi_range_first_internal(uchar *buf,
+ KEY_MULTI_RANGE **found_range_p,
+ KEY_MULTI_RANGE *ranges, uint range_count,
+ bool sorted, HANDLER_BUFFER *buffer);
#endif
int ft_read_internal(uchar *buf);
int rnd_next_internal(uchar *buf);
- void check_pre_call(
- bool use_parallel
- );
+ void check_pre_call(bool use_parallel);
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
void check_insert_dup_update_pushdown();
#endif
#ifdef HA_CAN_BULK_ACCESS
SPIDER_BULK_ACCESS_LINK *create_bulk_access_link();
- void delete_bulk_access_link(
- SPIDER_BULK_ACCESS_LINK *bulk_access_link
- );
- int sync_from_clone_source(
- ha_spider *spider
- );
-#endif
- void sync_from_clone_source_base(
- ha_spider *spider
- );
+ void delete_bulk_access_link(SPIDER_BULK_ACCESS_LINK *bulk_access_link);
+ int sync_from_clone_source(ha_spider *spider);
+#endif
+ void sync_from_clone_source_base(ha_spider *spider);
void set_first_link_idx();
void reset_first_link_idx();
- int reset_sql_sql(
- ulong sql_type
- );
+ int reset_sql_sql(ulong sql_type);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- int reset_hs_sql(
- ulong sql_type
- );
- int reset_hs_keys(
- ulong sql_type
- );
- int reset_hs_upds(
- ulong sql_type
- );
- int reset_hs_strs(
- ulong sql_type
- );
- int reset_hs_strs_pos(
- ulong sql_type
- );
- int push_back_hs_upds(
- SPIDER_HS_STRING_REF &info
- );
-#endif
- int append_tmp_table_and_sql_for_bka(
- const key_range *start_key
- );
+ int reset_hs_sql(ulong sql_type);
+ int reset_hs_keys(ulong sql_type);
+ int reset_hs_upds(ulong sql_type);
+ int reset_hs_strs(ulong sql_type);
+ int reset_hs_strs_pos(ulong sql_type);
+ int push_back_hs_upds(SPIDER_HS_STRING_REF &info);
+#endif
+ int append_tmp_table_and_sql_for_bka(const key_range *start_key);
int reuse_tmp_table_and_sql_for_bka();
- int append_union_table_and_sql_for_bka(
- const key_range *start_key
- );
+ int append_union_table_and_sql_for_bka(const key_range *start_key);
int reuse_union_table_and_sql_for_bka();
int append_insert_sql_part();
int append_update_sql_part();
@@ -1018,203 +648,82 @@ public:
#endif
#endif
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- int append_dup_update_pushdown_sql_part(
- const char *alias,
- uint alias_length
- );
- int append_update_columns_sql_part(
- const char *alias,
- uint alias_length
- );
+ int append_dup_update_pushdown_sql_part(const char *alias, uint alias_length);
+ int append_update_columns_sql_part(const char *alias, uint alias_length);
int check_update_columns_sql_part();
#endif
int append_delete_sql_part();
- int append_select_sql_part(
- ulong sql_type
- );
- int append_table_select_sql_part(
- ulong sql_type
- );
- int append_key_select_sql_part(
- ulong sql_type,
- uint idx
- );
- int append_minimum_select_sql_part(
- ulong sql_type
- );
- int append_from_sql_part(
- ulong sql_type
- );
- int append_hint_after_table_sql_part(
- ulong sql_type
- );
- void set_where_pos_sql(
- ulong sql_type
- );
- void set_where_to_pos_sql(
- ulong sql_type
- );
- int check_item_type_sql(
- Item *item
- );
- int append_values_connector_sql_part(
- ulong sql_type
- );
- int append_values_terminator_sql_part(
- ulong sql_type
- );
- int append_union_table_connector_sql_part(
- ulong sql_type
- );
- int append_union_table_terminator_sql_part(
- ulong sql_type
- );
- int append_key_column_values_sql_part(
- const key_range *start_key,
- ulong sql_type
- );
- int append_key_column_values_with_name_sql_part(
- const key_range *start_key,
- ulong sql_type
- );
- int append_key_where_sql_part(
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type
- );
+ int append_select_sql_part(ulong sql_type);
+ int append_table_select_sql_part(ulong sql_type);
+ int append_key_select_sql_part(ulong sql_type, uint idx);
+ int append_minimum_select_sql_part(ulong sql_type);
+ int append_from_sql_part(ulong sql_type);
+ int append_hint_after_table_sql_part(ulong sql_type);
+ void set_where_pos_sql(ulong sql_type);
+ void set_where_to_pos_sql(ulong sql_type);
+ int check_item_type_sql(Item *item);
+ int append_values_connector_sql_part(ulong sql_type);
+ int append_values_terminator_sql_part(ulong sql_type);
+ int append_union_table_connector_sql_part(ulong sql_type);
+ int append_union_table_terminator_sql_part(ulong sql_type);
+ int append_key_column_values_sql_part(const key_range *start_key,
+ ulong sql_type);
+ int append_key_column_values_with_name_sql_part(const key_range *start_key,
+ ulong sql_type);
+ int append_key_where_sql_part(const key_range *start_key,
+ const key_range *end_key, ulong sql_type);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- int append_key_where_hs_part(
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type
- );
-#endif
- int append_match_where_sql_part(
- ulong sql_type
- );
- int append_condition_sql_part(
- const char *alias,
- uint alias_length,
- ulong sql_type,
- bool test_flg
- );
+ int append_key_where_hs_part(const key_range *start_key,
+ const key_range *end_key, ulong sql_type);
+#endif
+ int append_match_where_sql_part(ulong sql_type);
+ int append_condition_sql_part(const char *alias, uint alias_length,
+ ulong sql_type, bool test_flg);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- int append_sum_select_sql_part(
- ulong sql_type,
- const char *alias,
- uint alias_length
- );
-#endif
- int append_match_select_sql_part(
- ulong sql_type,
- const char *alias,
- uint alias_length
- );
- void set_order_pos_sql(
- ulong sql_type
- );
- void set_order_to_pos_sql(
- ulong sql_type
- );
+ int append_sum_select_sql_part(ulong sql_type, const char *alias,
+ uint alias_length);
+#endif
+ int append_match_select_sql_part(ulong sql_type, const char *alias,
+ uint alias_length);
+ void set_order_pos_sql(ulong sql_type);
+ void set_order_to_pos_sql(ulong sql_type);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- int append_group_by_sql_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
-#endif
- int append_key_order_for_merge_with_alias_sql_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
+ int append_group_by_sql_part(const char *alias, uint alias_length,
+ ulong sql_type);
+#endif
+ int append_key_order_for_merge_with_alias_sql_part(const char *alias,
+ uint alias_length,
+ ulong sql_type);
int append_key_order_for_direct_order_limit_with_alias_sql_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_key_order_with_alias_sql_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_limit_sql_part(
- longlong offset,
- longlong limit,
- ulong sql_type
- );
+ const char *alias, uint alias_length, ulong sql_type);
+ int append_key_order_with_alias_sql_part(const char *alias, uint alias_length,
+ ulong sql_type);
+ int append_limit_sql_part(longlong offset, longlong limit, ulong sql_type);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- int append_limit_hs_part(
- longlong offset,
- longlong limit,
- ulong sql_type
- );
-#endif
- int reappend_limit_sql_part(
- longlong offset,
- longlong limit,
- ulong sql_type
- );
- int append_insert_terminator_sql_part(
- ulong sql_type
- );
- int append_insert_values_sql_part(
- ulong sql_type
- );
+ int append_limit_hs_part(longlong offset, longlong limit, ulong sql_type);
+#endif
+ int reappend_limit_sql_part(longlong offset, longlong limit, ulong sql_type);
+ int append_insert_terminator_sql_part(ulong sql_type);
+ int append_insert_values_sql_part(ulong sql_type);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- int append_insert_values_hs_part(
- ulong sql_type
- );
-#endif
- int append_into_sql_part(
- ulong sql_type
- );
- void set_insert_to_pos_sql(
- ulong sql_type
- );
- bool is_bulk_insert_exec_period(
- bool bulk_end
- );
- int append_select_lock_sql_part(
- ulong sql_type
- );
- int append_union_all_start_sql_part(
- ulong sql_type
- );
- int append_union_all_sql_part(
- ulong sql_type
- );
- int append_union_all_end_sql_part(
- ulong sql_type
- );
- int append_multi_range_cnt_sql_part(
- ulong sql_type,
- uint multi_range_cnt,
- bool with_comma
- );
- int append_multi_range_cnt_with_name_sql_part(
- ulong sql_type,
- uint multi_range_cnt
- );
- int append_delete_all_rows_sql_part(
- ulong sql_type
- );
- int append_update_sql(
- const TABLE *table,
- my_ptrdiff_t ptr_diff,
- bool bulk
- );
- int append_delete_sql(
- const TABLE *table,
- my_ptrdiff_t ptr_diff,
- bool bulk
- );
- bool sql_is_filled_up(
- ulong sql_type
- );
- bool sql_is_empty(
- ulong sql_type
- );
+ int append_insert_values_hs_part(ulong sql_type);
+#endif
+ int append_into_sql_part(ulong sql_type);
+ void set_insert_to_pos_sql(ulong sql_type);
+ bool is_bulk_insert_exec_period(bool bulk_end);
+ int append_select_lock_sql_part(ulong sql_type);
+ int append_union_all_start_sql_part(ulong sql_type);
+ int append_union_all_sql_part(ulong sql_type);
+ int append_union_all_end_sql_part(ulong sql_type);
+ int append_multi_range_cnt_sql_part(ulong sql_type, uint multi_range_cnt,
+ bool with_comma);
+ int append_multi_range_cnt_with_name_sql_part(ulong sql_type,
+ uint multi_range_cnt);
+ int append_delete_all_rows_sql_part(ulong sql_type);
+ int append_update_sql(const TABLE *table, my_ptrdiff_t ptr_diff, bool bulk);
+ int append_delete_sql(const TABLE *table, my_ptrdiff_t ptr_diff, bool bulk);
+ bool sql_is_filled_up(ulong sql_type);
+ bool sql_is_empty(ulong sql_type);
bool support_multi_split_read_sql();
bool support_bulk_update_sql();
int bulk_tmp_table_insert();
@@ -1225,15 +734,9 @@ public:
int mk_bulk_tmp_table_and_bulk_start();
void rm_bulk_tmp_table();
bool bulk_tmp_table_created();
- int print_item_type(
- Item *item,
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- bool support_use_handler_sql(
- int use_handler
- );
+ int print_item_type(Item *item, spider_string *str, const char *alias,
+ uint alias_length);
+ bool support_use_handler_sql(int use_handler);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
bool support_bulk_access_hs() const;
#endif
@@ -1243,12 +746,8 @@ public:
int lock_tables();
int dml_init();
#ifdef HA_CAN_BULK_ACCESS
- int bulk_access_begin(
- void *info
- );
- int bulk_access_current(
- void *info
- );
+ int bulk_access_begin(void *info);
+ int bulk_access_current(void *info);
void bulk_access_end();
#endif
};
diff --git a/storage/spider/spd_conn.h b/storage/spider/spd_conn.h
index 92da278eecc..ac043fa9a72 100644
--- a/storage/spider/spd_conn.h
+++ b/storage/spider/spd_conn.h
@@ -12,411 +12,206 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
-#define SPIDER_LOCK_MODE_NO_LOCK 0
-#define SPIDER_LOCK_MODE_SHARED 1
-#define SPIDER_LOCK_MODE_EXCLUSIVE 2
+#define SPIDER_LOCK_MODE_NO_LOCK 0
+#define SPIDER_LOCK_MODE_SHARED 1
+#define SPIDER_LOCK_MODE_EXCLUSIVE 2
-#define SPIDER_SIMPLE_NO_ACTION 0
-#define SPIDER_SIMPLE_CONNECT 1
-#define SPIDER_SIMPLE_DISCONNECT 2
-#define SPIDER_SIMPLE_RECORDS 3
+#define SPIDER_SIMPLE_NO_ACTION 0
+#define SPIDER_SIMPLE_CONNECT 1
+#define SPIDER_SIMPLE_DISCONNECT 2
+#define SPIDER_SIMPLE_RECORDS 3
#ifdef HA_HAS_CHECKSUM_EXTENDED
-#define SPIDER_SIMPLE_CHECKSUM_TABLE 4
+#define SPIDER_SIMPLE_CHECKSUM_TABLE 4
#endif
-#define SPIDER_LOP_CHK_QUEUED (1 << 0)
-#define SPIDER_LOP_CHK_MERAGED (1 << 1)
-#define SPIDER_LOP_CHK_IGNORED (1 << 2)
+#define SPIDER_LOP_CHK_QUEUED (1 << 0)
+#define SPIDER_LOP_CHK_MERAGED (1 << 1)
+#define SPIDER_LOP_CHK_IGNORED (1 << 2)
-typedef struct st_spider_conn_loop_check
-{
- uint flag;
+typedef struct st_spider_conn_loop_check {
+ uint flag;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type hash_value_to;
my_hash_value_type hash_value_full;
#endif
- LEX_CSTRING from_name;
- LEX_CSTRING cur_name;
- LEX_CSTRING to_name;
- LEX_CSTRING full_name;
- LEX_CSTRING from_value;
- LEX_CSTRING merged_value;
+ LEX_CSTRING from_name;
+ LEX_CSTRING cur_name;
+ LEX_CSTRING to_name;
+ LEX_CSTRING full_name;
+ LEX_CSTRING from_value;
+ LEX_CSTRING merged_value;
st_spider_conn_loop_check *next;
} SPIDER_CONN_LOOP_CHECK;
-uchar *spider_conn_get_key(
- SPIDER_CONN *conn,
- size_t *length,
- my_bool not_used __attribute__ ((unused))
-);
-
-uchar *spider_ipport_conn_get_key(
- SPIDER_IP_PORT_CONN *ip_port,
- size_t *length,
- my_bool not_used __attribute__ ((unused))
-);
-
-int spider_conn_init(
- SPIDER_CONN *conn
-);
-
-void spider_conn_done(
- SPIDER_CONN *conn
-);
-
-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
-);
-
-int spider_check_and_get_casual_read_conn(
- THD *thd,
- ha_spider *spider,
- int link_idx
-);
-
-int spider_check_and_init_casual_read(
- THD *thd,
- ha_spider *spider,
- int link_idx
-);
-
-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_ping_rewrite(
- 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_wait_timeout(
- SPIDER_CONN *conn,
- int wait_timeout
-);
-
-void spider_conn_queue_sql_mode(
- SPIDER_CONN *conn,
- sql_mode_t sql_mode
-);
-
-void spider_conn_queue_time_zone(
- SPIDER_CONN *conn,
- Time_zone *time_zone
-);
-
-void spider_conn_queue_UTC_time_zone(
- SPIDER_CONN *conn
-);
-
-int spider_conn_queue_and_merge_loop_check(
- SPIDER_CONN *conn,
- SPIDER_CONN_LOOP_CHECK *lcptr
-);
-
-int spider_conn_reset_queue_loop_check(
- SPIDER_CONN *conn
-);
-
-int spider_conn_queue_loop_check(
- SPIDER_CONN *conn,
- ha_spider *spider,
- int link_idx
-);
-
-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
-);
+uchar *spider_conn_get_key(SPIDER_CONN *conn, size_t *length,
+ my_bool not_used __attribute__((unused)));
+
+uchar *spider_ipport_conn_get_key(SPIDER_IP_PORT_CONN *ip_port, size_t *length,
+ my_bool not_used __attribute__((unused)));
+
+int spider_conn_init(SPIDER_CONN *conn);
+
+void spider_conn_done(SPIDER_CONN *conn);
+
+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);
+
+int spider_check_and_get_casual_read_conn(THD *thd, ha_spider *spider,
+ int link_idx);
+
+int spider_check_and_init_casual_read(THD *thd, ha_spider *spider,
+ int link_idx);
+
+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_ping_rewrite(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_wait_timeout(SPIDER_CONN *conn, int wait_timeout);
+
+void spider_conn_queue_sql_mode(SPIDER_CONN *conn, sql_mode_t sql_mode);
+
+void spider_conn_queue_time_zone(SPIDER_CONN *conn, Time_zone *time_zone);
+
+void spider_conn_queue_UTC_time_zone(SPIDER_CONN *conn);
+
+int spider_conn_queue_and_merge_loop_check(SPIDER_CONN *conn,
+ SPIDER_CONN_LOOP_CHECK *lcptr);
+
+int spider_conn_reset_queue_loop_check(SPIDER_CONN *conn);
+
+int spider_conn_queue_loop_check(SPIDER_CONN *conn, ha_spider *spider,
+ int link_idx);
+
+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,
- bool caller_wait,
- void *target,
- uint link_idx,
- int *error_num
-);
-
-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
-);
+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,
+ bool caller_wait, void *target, uint link_idx,
+ int *error_num);
+
+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_get_link_status(
- long *link_statuses,
- uint *conn_link_idx,
- int link_idx
-);
-
-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
-);
+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_get_link_status(long *link_statuses, uint *conn_link_idx,
+ int link_idx);
+
+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);
SPIDER_IP_PORT_CONN *spider_create_ipport_conn(SPIDER_CONN *conn);
-SPIDER_CONN* spider_get_conn_from_idle_connection
-(
- SPIDER_SHARE *share,
- int link_idx,
- char *conn_key,
- ha_spider *spider,
- uint conn_kind,
- int base_link_idx,
- int *error_num
- );
+SPIDER_CONN *spider_get_conn_from_idle_connection(
+ SPIDER_SHARE *share, int link_idx, char *conn_key, ha_spider *spider,
+ uint conn_kind, int base_link_idx, int *error_num);
void spider_free_ipport_conn(void *info);
diff --git a/storage/spider/spd_copy_tables.h b/storage/spider/spd_copy_tables.h
index 8c06e115dea..e3304704f05 100644
--- a/storage/spider/spd_copy_tables.h
+++ b/storage/spider/spd_copy_tables.h
@@ -11,45 +11,29 @@
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_udf_set_copy_tables_param_default(
- SPIDER_COPY_TABLES *copy_tables
-);
-
-int spider_udf_parse_copy_tables_param(
- SPIDER_COPY_TABLES *copy_tables,
- char *param,
- int param_length
-);
-
-int spider_udf_get_copy_tgt_tables(
- THD *thd,
- SPIDER_COPY_TABLES *copy_tables,
- MEM_ROOT *mem_root,
- bool need_lock
-);
-
-int spider_udf_get_copy_tgt_conns(
- SPIDER_COPY_TABLES *copy_tables
-);
-
-void spider_udf_free_copy_tables_alloc(
- SPIDER_COPY_TABLES *copy_tables
-);
-
-int spider_udf_copy_tables_create_table_list(
- SPIDER_COPY_TABLES *copy_tables,
- char *spider_table_name,
- uint spider_table_name_length,
- char *src_link_idx_list,
- uint src_link_idx_list_length,
- char *dst_link_idx_list,
- uint dst_link_idx_list_length
-);
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
+
+int spider_udf_set_copy_tables_param_default(SPIDER_COPY_TABLES *copy_tables);
+
+int spider_udf_parse_copy_tables_param(SPIDER_COPY_TABLES *copy_tables,
+ char *param, int param_length);
+
+int spider_udf_get_copy_tgt_tables(THD *thd, SPIDER_COPY_TABLES *copy_tables,
+ MEM_ROOT *mem_root, bool need_lock);
+
+int spider_udf_get_copy_tgt_conns(SPIDER_COPY_TABLES *copy_tables);
+
+void spider_udf_free_copy_tables_alloc(SPIDER_COPY_TABLES *copy_tables);
+
+int spider_udf_copy_tables_create_table_list(SPIDER_COPY_TABLES *copy_tables,
+ char *spider_table_name,
+ uint spider_table_name_length,
+ char *src_link_idx_list,
+ uint src_link_idx_list_length,
+ char *dst_link_idx_list,
+ uint dst_link_idx_list_length);
#ifndef WITHOUT_SPIDER_BG_SEARCH
-int spider_udf_bg_copy_exec_sql(
- SPIDER_COPY_TABLE_CONN *table_conn
-);
+int spider_udf_bg_copy_exec_sql(SPIDER_COPY_TABLE_CONN *table_conn);
#endif
diff --git a/storage/spider/spd_db_conn.h b/storage/spider/spd_db_conn.h
index c66f39d9f70..447c10b279d 100644
--- a/storage/spider/spd_db_conn.h
+++ b/storage/spider/spd_db_conn.h
@@ -12,7 +12,8 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
#define SPIDER_DB_WRAPPER_STR "mariadb"
#define SPIDER_DB_WRAPPER_LEN (sizeof(SPIDER_DB_WRAPPER_STR) - 1)
@@ -25,16 +26,16 @@
#define SPIDER_DB_SEQUENCE_NAME_STR ""
#define SPIDER_DB_SEQUENCE_NAME_LEN (sizeof(SPIDER_DB_SEQUENCE_NAME_STR) - 1)
-#define SPIDER_DB_TABLE_LOCK_READ_LOCAL 0
-#define SPIDER_DB_TABLE_LOCK_READ 1
+#define SPIDER_DB_TABLE_LOCK_READ_LOCAL 0
+#define SPIDER_DB_TABLE_LOCK_READ 1
#define SPIDER_DB_TABLE_LOCK_LOW_PRIORITY_WRITE 2
-#define SPIDER_DB_TABLE_LOCK_WRITE 3
+#define SPIDER_DB_TABLE_LOCK_WRITE 3
-#define SPIDER_DB_INSERT_REPLACE (1 << 0)
-#define SPIDER_DB_INSERT_IGNORE (1 << 1)
-#define SPIDER_DB_INSERT_LOW_PRIORITY (1 << 2)
+#define SPIDER_DB_INSERT_REPLACE (1 << 0)
+#define SPIDER_DB_INSERT_IGNORE (1 << 1)
+#define SPIDER_DB_INSERT_LOW_PRIORITY (1 << 2)
#define SPIDER_DB_INSERT_HIGH_PRIORITY (1 << 3)
-#define SPIDER_DB_INSERT_DELAYED (1 << 4)
+#define SPIDER_DB_INSERT_DELAYED (1 << 4)
#define SPIDER_SQL_OPEN_PAREN_STR "("
#define SPIDER_SQL_OPEN_PAREN_LEN (sizeof(SPIDER_SQL_OPEN_PAREN_STR) - 1)
@@ -62,7 +63,8 @@
#define SPIDER_SQL_ID_STR "id"
#define SPIDER_SQL_ID_LEN (sizeof(SPIDER_SQL_ID_STR) - 1)
#define SPIDER_SQL_TMP_BKA_ENGINE_STR "memory"
-#define SPIDER_SQL_TMP_BKA_ENGINE_LEN (sizeof(SPIDER_SQL_TMP_BKA_ENGINE_STR) - 1)
+#define SPIDER_SQL_TMP_BKA_ENGINE_LEN \
+ (sizeof(SPIDER_SQL_TMP_BKA_ENGINE_STR) - 1)
#define SPIDER_SQL_INSERT_STR "insert "
#define SPIDER_SQL_INSERT_LEN (sizeof(SPIDER_SQL_INSERT_STR) - 1)
@@ -106,13 +108,17 @@
#define SPIDER_SQL_FOR_UPDATE_LEN (sizeof(SPIDER_SQL_FOR_UPDATE_STR) - 1)
#define SPIDER_SQL_SQL_ALTER_TABLE_STR "alter table "
-#define SPIDER_SQL_SQL_ALTER_TABLE_LEN (sizeof(SPIDER_SQL_SQL_ALTER_TABLE_STR) - 1)
+#define SPIDER_SQL_SQL_ALTER_TABLE_LEN \
+ (sizeof(SPIDER_SQL_SQL_ALTER_TABLE_STR) - 1)
#define SPIDER_SQL_SQL_DISABLE_KEYS_STR " disable keys"
-#define SPIDER_SQL_SQL_DISABLE_KEYS_LEN (sizeof(SPIDER_SQL_SQL_DISABLE_KEYS_STR) - 1)
+#define SPIDER_SQL_SQL_DISABLE_KEYS_LEN \
+ (sizeof(SPIDER_SQL_SQL_DISABLE_KEYS_STR) - 1)
#define SPIDER_SQL_SQL_ENABLE_KEYS_STR " enable keys"
-#define SPIDER_SQL_SQL_ENABLE_KEYS_LEN (sizeof(SPIDER_SQL_SQL_ENABLE_KEYS_STR) - 1)
+#define SPIDER_SQL_SQL_ENABLE_KEYS_LEN \
+ (sizeof(SPIDER_SQL_SQL_ENABLE_KEYS_STR) - 1)
#define SPIDER_SQL_SQL_CHECK_TABLE_STR "check table "
-#define SPIDER_SQL_SQL_CHECK_TABLE_LEN (sizeof(SPIDER_SQL_SQL_CHECK_TABLE_STR) - 1)
+#define SPIDER_SQL_SQL_CHECK_TABLE_LEN \
+ (sizeof(SPIDER_SQL_SQL_CHECK_TABLE_STR) - 1)
#define SPIDER_SQL_SQL_ANALYZE_STR "analyze "
#define SPIDER_SQL_SQL_ANALYZE_LEN (sizeof(SPIDER_SQL_SQL_ANALYZE_STR) - 1)
#define SPIDER_SQL_SQL_OPTIMIZE_STR "optimize "
@@ -134,7 +140,8 @@
#define SPIDER_SQL_SQL_USE_FRM_STR " use_frm"
#define SPIDER_SQL_SQL_USE_FRM_LEN (sizeof(SPIDER_SQL_SQL_USE_FRM_STR) - 1)
#define SPIDER_SQL_TRUNCATE_TABLE_STR "truncate table "
-#define SPIDER_SQL_TRUNCATE_TABLE_LEN (sizeof(SPIDER_SQL_TRUNCATE_TABLE_STR) - 1)
+#define SPIDER_SQL_TRUNCATE_TABLE_LEN \
+ (sizeof(SPIDER_SQL_TRUNCATE_TABLE_STR) - 1)
#define SPIDER_SQL_EXPLAIN_SELECT_STR "explain select 1 "
#define SPIDER_SQL_EXPLAIN_SELECT_LEN sizeof(SPIDER_SQL_EXPLAIN_SELECT_STR) - 1
#define SPIDER_SQL_FLUSH_LOGS_STR "flush logs"
@@ -144,7 +151,8 @@
#define SPIDER_SQL_WITH_READ_LOCK_STR " with read lock"
#define SPIDER_SQL_WITH_READ_LOCK_LEN sizeof(SPIDER_SQL_WITH_READ_LOCK_STR) - 1
#define SPIDER_SQL_DUPLICATE_KEY_UPDATE_STR " on duplicate key update "
-#define SPIDER_SQL_DUPLICATE_KEY_UPDATE_LEN (sizeof(SPIDER_SQL_DUPLICATE_KEY_UPDATE_STR) - 1)
+#define SPIDER_SQL_DUPLICATE_KEY_UPDATE_LEN \
+ (sizeof(SPIDER_SQL_DUPLICATE_KEY_UPDATE_STR) - 1)
#define SPIDER_SQL_HANDLER_STR "handler "
#define SPIDER_SQL_HANDLER_LEN (sizeof(SPIDER_SQL_HANDLER_STR) - 1)
#define SPIDER_SQL_OPEN_STR " open "
@@ -164,9 +172,11 @@
#define SPIDER_SQL_AS_STR "as "
#define SPIDER_SQL_AS_LEN (sizeof(SPIDER_SQL_AS_STR) - 1)
#define SPIDER_SQL_WITH_QUERY_EXPANSION_STR " with query expansion"
-#define SPIDER_SQL_WITH_QUERY_EXPANSION_LEN (sizeof(SPIDER_SQL_WITH_QUERY_EXPANSION_STR) - 1)
+#define SPIDER_SQL_WITH_QUERY_EXPANSION_LEN \
+ (sizeof(SPIDER_SQL_WITH_QUERY_EXPANSION_STR) - 1)
#define SPIDER_SQL_IN_BOOLEAN_MODE_STR " in boolean mode"
-#define SPIDER_SQL_IN_BOOLEAN_MODE_LEN (sizeof(SPIDER_SQL_IN_BOOLEAN_MODE_STR) - 1)
+#define SPIDER_SQL_IN_BOOLEAN_MODE_LEN \
+ (sizeof(SPIDER_SQL_IN_BOOLEAN_MODE_STR) - 1)
#define SPIDER_SQL_MATCH_STR "match("
#define SPIDER_SQL_MATCH_LEN (sizeof(SPIDER_SQL_MATCH_STR) - 1)
#define SPIDER_SQL_AGAINST_STR ")against("
@@ -188,7 +198,8 @@
#define SPIDER_SQL_SQL_NO_CACHE_STR "sql_no_cache "
#define SPIDER_SQL_SQL_NO_CACHE_LEN (sizeof(SPIDER_SQL_SQL_NO_CACHE_STR) - 1)
#define SPIDER_SQL_SQL_QUICK_MODE_STR "quick "
-#define SPIDER_SQL_SQL_QUICK_MODE_LEN (sizeof(SPIDER_SQL_SQL_QUICK_MODE_STR) - 1)
+#define SPIDER_SQL_SQL_QUICK_MODE_LEN \
+ (sizeof(SPIDER_SQL_SQL_QUICK_MODE_STR) - 1)
#define SPIDER_SQL_SET_STR " set "
#define SPIDER_SQL_SET_LEN (sizeof(SPIDER_SQL_SET_STR) - 1)
#define SPIDER_SQL_UNDERSCORE_STR "_"
@@ -227,8 +238,11 @@
#define SPIDER_SQL_SHOW_RECORDS_LEN sizeof(SPIDER_SQL_SHOW_RECORDS_STR) - 1
#define SPIDER_SQL_SHOW_INDEX_STR "show index from "
#define SPIDER_SQL_SHOW_INDEX_LEN sizeof(SPIDER_SQL_SHOW_INDEX_STR) - 1
-#define SPIDER_SQL_SELECT_STATISTICS_STR "select `column_name`,`cardinality` from `information_schema`.`statistics` where `table_schema` = "
-#define SPIDER_SQL_SELECT_STATISTICS_LEN sizeof(SPIDER_SQL_SELECT_STATISTICS_STR) - 1
+#define SPIDER_SQL_SELECT_STATISTICS_STR \
+ "select `column_name`,`cardinality` from `information_schema`.`statistics` " \
+ "where `table_schema` = "
+#define SPIDER_SQL_SELECT_STATISTICS_LEN \
+ sizeof(SPIDER_SQL_SELECT_STATISTICS_STR) - 1
#define SPIDER_SQL_MAX_STR "max"
#define SPIDER_SQL_MAX_LEN sizeof(SPIDER_SQL_MAX_STR) - 1
@@ -267,956 +281,455 @@
#define SPIDER_SQL_INT_LEN 20
#define SPIDER_SQL_HANDLER_CID_LEN 6
#define SPIDER_SQL_HANDLER_CID_FORMAT "t%05u"
-#define SPIDER_UDF_PING_TABLE_PING_ONLY (1 << 0)
-#define SPIDER_UDF_PING_TABLE_USE_WHERE (1 << 1)
+#define SPIDER_UDF_PING_TABLE_PING_ONLY (1 << 0)
+#define SPIDER_UDF_PING_TABLE_USE_WHERE (1 << 1)
#define SPIDER_UDF_PING_TABLE_USE_ALL_MONITORING_NODES (1 << 2)
-int spider_db_connect(
- const SPIDER_SHARE *share,
- SPIDER_CONN *conn,
- int link_idx
-);
-
-int spider_db_ping_internal(
- SPIDER_SHARE *share,
- SPIDER_CONN *conn,
- int all_link_idx,
- int *need_mon
-);
-
-int spider_db_ping(
- ha_spider *spider,
- SPIDER_CONN *conn,
- int link_idx
-);
-
-void spider_db_disconnect(
- SPIDER_CONN *conn
-);
-
-int spider_db_conn_queue_action(
- SPIDER_CONN *conn
-);
-
-int spider_db_before_query(
- SPIDER_CONN *conn,
- int *need_mon
-);
-
-int spider_db_query(
- SPIDER_CONN *conn,
- const char *query,
- uint length,
- int quick_mode,
- int *need_mon
-);
-
-int spider_db_errorno(
- SPIDER_CONN *conn
-);
-
-int spider_db_set_trx_isolation(
- SPIDER_CONN *conn,
- int trx_isolation,
- int *need_mon
-);
-
-int spider_db_set_names_internal(
- SPIDER_TRX *trx,
- SPIDER_SHARE *share,
- SPIDER_CONN *conn,
- int all_link_idx,
- int *need_mon
-);
-
-int spider_db_set_names(
- ha_spider *spider,
- SPIDER_CONN *conn,
- int link_idx
-);
-
-int spider_db_query_with_set_names(
- ulong sql_type,
- ha_spider *spider,
- SPIDER_CONN *conn,
- int link_idx
-);
-
-int spider_db_query_for_bulk_update(
- ha_spider *spider,
- SPIDER_CONN *conn,
- int link_idx,
- ha_rows *dup_key_found
-);
-
-size_t spider_db_real_escape_string(
- SPIDER_CONN *conn,
- char *to,
- const char *from,
- size_t from_length
-);
-
-int spider_db_consistent_snapshot(
- SPIDER_CONN *conn,
- int *need_mon
-);
-
-int spider_db_start_transaction(
- SPIDER_CONN *conn,
- int *need_mon
-);
-
-int spider_db_commit(
- SPIDER_CONN *conn
-);
-
-int spider_db_rollback(
- SPIDER_CONN *conn
-);
-
-int spider_db_append_hex_string(
- spider_string *str,
- uchar *hex_ptr,
- int hex_ptr_length
-);
-
-void spider_db_append_xid_str(
- spider_string *tmp_str,
- XID *xid
-);
-
-int spider_db_xa_end(
- SPIDER_CONN *conn,
- XID *xid
-);
-
-int spider_db_xa_prepare(
- SPIDER_CONN *conn,
- XID *xid
-);
-
-int spider_db_xa_commit(
- SPIDER_CONN *conn,
- XID *xid
-);
-
-int spider_db_xa_rollback(
- SPIDER_CONN *conn,
- XID *xid
-);
-
-int spider_db_lock_tables(
- ha_spider *spider,
- int link_idx
-);
-
-int spider_db_unlock_tables(
- ha_spider *spider,
- int link_idx
-);
-
-int spider_db_append_name_with_quote_str(
- spider_string *str,
- const char *name,
- uint dbton_id
-);
-
-int spider_db_append_name_with_quote_str(
- spider_string *str,
- LEX_CSTRING &name,
- uint dbton_id
-);
-
-int spider_db_append_name_with_quote_str_internal(
- spider_string *str,
- const char *name,
- int length,
- uint dbton_id
-);
-
-int spider_db_append_name_with_quote_str_internal(
- spider_string *str,
- const char *name,
- int length,
- CHARSET_INFO *cs,
- uint dbton_id
-);
-
-int spider_db_append_select(
- ha_spider *spider
-);
-
-int spider_db_append_select_columns(
- ha_spider *spider
-);
-
-int spider_db_append_null_value(
- spider_string *str,
- KEY_PART_INFO *key_part,
- const uchar **ptr
-);
-
-int spider_db_append_key_columns(
- const key_range *start_key,
- ha_spider *spider,
- spider_string *str
-);
-
-int spider_db_append_key_hint(
- spider_string *str,
- char *hint_str
-);
+int spider_db_connect(const SPIDER_SHARE *share, SPIDER_CONN *conn,
+ int link_idx);
+
+int spider_db_ping_internal(SPIDER_SHARE *share, SPIDER_CONN *conn,
+ int all_link_idx, int *need_mon);
+
+int spider_db_ping(ha_spider *spider, SPIDER_CONN *conn, int link_idx);
+
+void spider_db_disconnect(SPIDER_CONN *conn);
+
+int spider_db_conn_queue_action(SPIDER_CONN *conn);
+
+int spider_db_before_query(SPIDER_CONN *conn, int *need_mon);
+
+int spider_db_query(SPIDER_CONN *conn, const char *query, uint length,
+ int quick_mode, int *need_mon);
+
+int spider_db_errorno(SPIDER_CONN *conn);
+
+int spider_db_set_trx_isolation(SPIDER_CONN *conn, int trx_isolation,
+ int *need_mon);
+
+int spider_db_set_names_internal(SPIDER_TRX *trx, SPIDER_SHARE *share,
+ SPIDER_CONN *conn, int all_link_idx,
+ int *need_mon);
+
+int spider_db_set_names(ha_spider *spider, SPIDER_CONN *conn, int link_idx);
+
+int spider_db_query_with_set_names(ulong sql_type, ha_spider *spider,
+ SPIDER_CONN *conn, int link_idx);
+
+int spider_db_query_for_bulk_update(ha_spider *spider, SPIDER_CONN *conn,
+ int link_idx, ha_rows *dup_key_found);
+
+size_t spider_db_real_escape_string(SPIDER_CONN *conn, char *to,
+ const char *from, size_t from_length);
+
+int spider_db_consistent_snapshot(SPIDER_CONN *conn, int *need_mon);
+
+int spider_db_start_transaction(SPIDER_CONN *conn, int *need_mon);
+
+int spider_db_commit(SPIDER_CONN *conn);
+
+int spider_db_rollback(SPIDER_CONN *conn);
+
+int spider_db_append_hex_string(spider_string *str, uchar *hex_ptr,
+ int hex_ptr_length);
+
+void spider_db_append_xid_str(spider_string *tmp_str, XID *xid);
+
+int spider_db_xa_end(SPIDER_CONN *conn, XID *xid);
+
+int spider_db_xa_prepare(SPIDER_CONN *conn, XID *xid);
+
+int spider_db_xa_commit(SPIDER_CONN *conn, XID *xid);
+
+int spider_db_xa_rollback(SPIDER_CONN *conn, XID *xid);
+
+int spider_db_lock_tables(ha_spider *spider, int link_idx);
+
+int spider_db_unlock_tables(ha_spider *spider, int link_idx);
+
+int spider_db_append_name_with_quote_str(spider_string *str, const char *name,
+ uint dbton_id);
+
+int spider_db_append_name_with_quote_str(spider_string *str, LEX_CSTRING &name,
+ uint dbton_id);
+
+int spider_db_append_name_with_quote_str_internal(spider_string *str,
+ const char *name, int length,
+ uint dbton_id);
+
+int spider_db_append_name_with_quote_str_internal(spider_string *str,
+ const char *name, int length,
+ CHARSET_INFO *cs,
+ uint dbton_id);
+
+int spider_db_append_select(ha_spider *spider);
+
+int spider_db_append_select_columns(ha_spider *spider);
+
+int spider_db_append_null_value(spider_string *str, KEY_PART_INFO *key_part,
+ const uchar **ptr);
+
+int spider_db_append_key_columns(const key_range *start_key, ha_spider *spider,
+ spider_string *str);
+
+int spider_db_append_key_hint(spider_string *str, char *hint_str);
int spider_db_append_key_where_internal(
- spider_string *str,
- spider_string *str_part,
- spider_string *str_part2,
- const key_range *start_key,
- const key_range *end_key,
- ha_spider *spider,
- bool set_order,
- ulong sql_type,
- uint dbton_id
-);
-
-int spider_db_append_key_where(
- const key_range *start_key,
- const key_range *end_key,
- ha_spider *spider
-);
-
-int spider_db_append_charset_name_before_string(
- spider_string *str,
- CHARSET_INFO *cs
-);
+ spider_string *str, spider_string *str_part, spider_string *str_part2,
+ const key_range *start_key, const key_range *end_key, ha_spider *spider,
+ bool set_order, ulong sql_type, uint dbton_id);
+
+int spider_db_append_key_where(const key_range *start_key,
+ const key_range *end_key, ha_spider *spider);
+
+int spider_db_append_charset_name_before_string(spider_string *str,
+ CHARSET_INFO *cs);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
-int spider_db_refetch_for_item_sum_funcs(
- ha_spider *spider
-);
-
-int spider_db_fetch_for_item_sum_funcs(
- SPIDER_DB_ROW *row,
- ha_spider *spider
-);
-
-int spider_db_fetch_for_item_sum_func(
- SPIDER_DB_ROW *row,
- Item_sum *item_sum,
- ha_spider *spider
-);
+int spider_db_refetch_for_item_sum_funcs(ha_spider *spider);
+
+int spider_db_fetch_for_item_sum_funcs(SPIDER_DB_ROW *row, ha_spider *spider);
+
+int spider_db_fetch_for_item_sum_func(SPIDER_DB_ROW *row, Item_sum *item_sum,
+ ha_spider *spider);
#endif
-int spider_db_append_match_fetch(
- ha_spider *spider,
- st_spider_ft_info *ft_first,
- st_spider_ft_info *ft_current,
- SPIDER_DB_ROW *row
-);
-
-int spider_db_append_match_where(
- ha_spider *spider
-);
-
-int spider_db_append_hint_after_table(
- ha_spider *spider,
- spider_string *str,
- spider_string *hint
-);
-
-int spider_db_append_show_records(
- SPIDER_SHARE *share
-);
-
-void spider_db_free_show_records(
- SPIDER_SHARE *share
-);
-
-int spider_db_append_show_index(
- SPIDER_SHARE *share
-);
-
-void spider_db_free_show_index(
- SPIDER_SHARE *share
-);
-
-void spider_db_append_handler_next(
- ha_spider *spider
-);
-
-void spider_db_get_row_from_tmp_tbl_rec(
- SPIDER_RESULT *current,
- SPIDER_DB_ROW **row
-);
-
-int spider_db_get_row_from_tmp_tbl(
- SPIDER_RESULT *current,
- SPIDER_DB_ROW **row
-);
-
-int spider_db_get_row_from_tmp_tbl_pos(
- SPIDER_POSITION *pos,
- SPIDER_DB_ROW **row
-);
-
-int spider_db_fetch_row(
- SPIDER_SHARE *share,
- Field *field,
- SPIDER_DB_ROW *row,
- my_ptrdiff_t ptr_diff
-);
-
-int spider_db_fetch_table(
- ha_spider *spider,
- uchar *buf,
- TABLE *table,
- SPIDER_RESULT_LIST *result_list
-);
-
-int spider_db_fetch_key(
- ha_spider *spider,
- uchar *buf,
- TABLE *table,
- const KEY *key_info,
- SPIDER_RESULT_LIST *result_list
-);
-
-int spider_db_fetch_minimum_columns(
- ha_spider *spider,
- uchar *buf,
- TABLE *table,
- SPIDER_RESULT_LIST *result_list
-);
-
-void spider_db_free_one_result_for_start_next(
- ha_spider *spider
-);
-
-void spider_db_free_one_result(
- SPIDER_RESULT_LIST *result_list,
- SPIDER_RESULT *result
-);
-
-void spider_db_free_one_quick_result(
- SPIDER_RESULT *result
-);
-
-int spider_db_free_result(
- ha_spider *spider,
- bool final
-);
-
-int spider_db_store_result(
- ha_spider *spider,
- int link_idx,
- TABLE *table
-);
-
-int spider_db_store_result_for_reuse_cursor(
- ha_spider *spider,
- int link_idx,
- TABLE *table
-);
-
-void spider_db_discard_result(
- ha_spider *spider,
- int link_idx,
- SPIDER_CONN *conn
-);
-
-void spider_db_discard_multiple_result(
- ha_spider *spider,
- int link_idx,
- SPIDER_CONN *conn
-);
+int spider_db_append_match_fetch(ha_spider *spider, st_spider_ft_info *ft_first,
+ st_spider_ft_info *ft_current,
+ SPIDER_DB_ROW *row);
+
+int spider_db_append_match_where(ha_spider *spider);
+
+int spider_db_append_hint_after_table(ha_spider *spider, spider_string *str,
+ spider_string *hint);
+
+int spider_db_append_show_records(SPIDER_SHARE *share);
+
+void spider_db_free_show_records(SPIDER_SHARE *share);
+
+int spider_db_append_show_index(SPIDER_SHARE *share);
+
+void spider_db_free_show_index(SPIDER_SHARE *share);
+
+void spider_db_append_handler_next(ha_spider *spider);
+
+void spider_db_get_row_from_tmp_tbl_rec(SPIDER_RESULT *current,
+ SPIDER_DB_ROW **row);
+
+int spider_db_get_row_from_tmp_tbl(SPIDER_RESULT *current, SPIDER_DB_ROW **row);
+
+int spider_db_get_row_from_tmp_tbl_pos(SPIDER_POSITION *pos,
+ SPIDER_DB_ROW **row);
+
+int spider_db_fetch_row(SPIDER_SHARE *share, Field *field, SPIDER_DB_ROW *row,
+ my_ptrdiff_t ptr_diff);
+
+int spider_db_fetch_table(ha_spider *spider, uchar *buf, TABLE *table,
+ SPIDER_RESULT_LIST *result_list);
+
+int spider_db_fetch_key(ha_spider *spider, uchar *buf, TABLE *table,
+ const KEY *key_info, SPIDER_RESULT_LIST *result_list);
+
+int spider_db_fetch_minimum_columns(ha_spider *spider, uchar *buf, TABLE *table,
+ SPIDER_RESULT_LIST *result_list);
+
+void spider_db_free_one_result_for_start_next(ha_spider *spider);
+
+void spider_db_free_one_result(SPIDER_RESULT_LIST *result_list,
+ SPIDER_RESULT *result);
+
+void spider_db_free_one_quick_result(SPIDER_RESULT *result);
+
+int spider_db_free_result(ha_spider *spider, bool final);
+
+int spider_db_store_result(ha_spider *spider, int link_idx, TABLE *table);
+
+int spider_db_store_result_for_reuse_cursor(ha_spider *spider, int link_idx,
+ TABLE *table);
+
+void spider_db_discard_result(ha_spider *spider, int link_idx,
+ SPIDER_CONN *conn);
+
+void spider_db_discard_multiple_result(ha_spider *spider, int link_idx,
+ SPIDER_CONN *conn);
#ifdef HA_CAN_BULK_ACCESS
-int spider_db_bulk_store_result(
- ha_spider *spider,
- SPIDER_CONN *conn,
- int link_idx,
- bool discard_result
-);
+int spider_db_bulk_store_result(ha_spider *spider, SPIDER_CONN *conn,
+ int link_idx, bool discard_result);
#endif
-int spider_db_fetch(
- uchar *buf,
- ha_spider *spider,
- TABLE *table
-);
-
-int spider_db_seek_prev(
- uchar *buf,
- ha_spider *spider,
- TABLE *table
-);
-
-int spider_db_seek_next(
- uchar *buf,
- ha_spider *spider,
- int link_idx,
- TABLE *table
-);
-
-int spider_db_seek_last(
- uchar *buf,
- ha_spider *spider,
- int link_idx,
- TABLE *table
-);
-
-int spider_db_seek_first(
- uchar *buf,
- ha_spider *spider,
- TABLE *table
-);
-
-void spider_db_set_pos_to_first_row(
- SPIDER_RESULT_LIST *result_list
-);
-
-void spider_db_create_position(
- ha_spider *spider,
- SPIDER_POSITION *pos
-);
-
-int spider_db_seek_tmp(
- uchar *buf,
- SPIDER_POSITION *pos,
- ha_spider *spider,
- TABLE *table
-);
-
-int spider_db_seek_tmp_table(
- uchar *buf,
- SPIDER_POSITION *pos,
- ha_spider *spider,
- TABLE *table
-);
-
-int spider_db_seek_tmp_key(
- uchar *buf,
- SPIDER_POSITION *pos,
- ha_spider *spider,
- TABLE *table,
- const KEY *key_info
-);
-
-int spider_db_seek_tmp_minimum_columns(
- uchar *buf,
- SPIDER_POSITION *pos,
- ha_spider *spider,
- TABLE *table
-);
-
-int spider_db_show_table_status(
- ha_spider *spider,
- int link_idx,
- int sts_mode,
- uint flag
-);
-
-int spider_db_simple_action(
- uint simple_action,
- spider_db_handler *db_handler,
- int link_idx
-);
-
-int spider_db_simple_action(
- uint simple_action,
- ha_spider *spider,
- int link_idx,
- bool pre_call
-);
-
-void spider_db_set_cardinarity(
- ha_spider *spider,
- TABLE *table
-);
-
-int spider_db_show_index(
- ha_spider *spider,
- int link_idx,
- TABLE *table,
- int crd_mode
-);
-
-ha_rows spider_db_explain_select(
- const key_range *start_key,
- const key_range *end_key,
- ha_spider *spider,
- int link_idx
-);
-
-int spider_db_bulk_insert_init(
- ha_spider *spider,
- const TABLE *table
-);
-
-int spider_db_bulk_insert(
- ha_spider *spider,
- TABLE *table,
- ha_copy_info *copy_info,
- bool bulk_end
-);
+int spider_db_fetch(uchar *buf, ha_spider *spider, TABLE *table);
+
+int spider_db_seek_prev(uchar *buf, ha_spider *spider, TABLE *table);
+
+int spider_db_seek_next(uchar *buf, ha_spider *spider, int link_idx,
+ TABLE *table);
+
+int spider_db_seek_last(uchar *buf, ha_spider *spider, int link_idx,
+ TABLE *table);
+
+int spider_db_seek_first(uchar *buf, ha_spider *spider, TABLE *table);
+
+void spider_db_set_pos_to_first_row(SPIDER_RESULT_LIST *result_list);
+
+void spider_db_create_position(ha_spider *spider, SPIDER_POSITION *pos);
+
+int spider_db_seek_tmp(uchar *buf, SPIDER_POSITION *pos, ha_spider *spider,
+ TABLE *table);
+
+int spider_db_seek_tmp_table(uchar *buf, SPIDER_POSITION *pos,
+ ha_spider *spider, TABLE *table);
+
+int spider_db_seek_tmp_key(uchar *buf, SPIDER_POSITION *pos, ha_spider *spider,
+ TABLE *table, const KEY *key_info);
+
+int spider_db_seek_tmp_minimum_columns(uchar *buf, SPIDER_POSITION *pos,
+ ha_spider *spider, TABLE *table);
+
+int spider_db_show_table_status(ha_spider *spider, int link_idx, int sts_mode,
+ uint flag);
+
+int spider_db_simple_action(uint simple_action, spider_db_handler *db_handler,
+ int link_idx);
+
+int spider_db_simple_action(uint simple_action, ha_spider *spider, int link_idx,
+ bool pre_call);
+
+void spider_db_set_cardinarity(ha_spider *spider, TABLE *table);
+
+int spider_db_show_index(ha_spider *spider, int link_idx, TABLE *table,
+ int crd_mode);
+
+ha_rows spider_db_explain_select(const key_range *start_key,
+ const key_range *end_key, ha_spider *spider,
+ int link_idx);
+
+int spider_db_bulk_insert_init(ha_spider *spider, const TABLE *table);
+
+int spider_db_bulk_insert(ha_spider *spider, TABLE *table,
+ ha_copy_info *copy_info, bool bulk_end);
#ifdef HA_CAN_BULK_ACCESS
-int spider_db_bulk_bulk_insert(
- ha_spider *spider
-);
+int spider_db_bulk_bulk_insert(ha_spider *spider);
#endif
-int spider_db_update_auto_increment(
- ha_spider *spider,
- int link_idx
-);
-
-int spider_db_bulk_update_size_limit(
- ha_spider *spider,
- TABLE *table
-);
-
-int spider_db_bulk_update_end(
- ha_spider *spider,
- ha_rows *dup_key_found
-);
-
-int spider_db_bulk_update(
- ha_spider *spider,
- TABLE *table,
- my_ptrdiff_t ptr_diff
-);
-
-int spider_db_update(
- ha_spider *spider,
- TABLE *table,
- const uchar *old_data
-);
+int spider_db_update_auto_increment(ha_spider *spider, int link_idx);
+
+int spider_db_bulk_update_size_limit(ha_spider *spider, TABLE *table);
+
+int spider_db_bulk_update_end(ha_spider *spider, ha_rows *dup_key_found);
+
+int spider_db_bulk_update(ha_spider *spider, TABLE *table,
+ my_ptrdiff_t ptr_diff);
+
+int spider_db_update(ha_spider *spider, TABLE *table, const uchar *old_data);
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
-int spider_db_direct_update(
- ha_spider *spider,
- TABLE *table,
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- ha_rows *update_rows,
- ha_rows *found_rows
-);
+int spider_db_direct_update(ha_spider *spider, TABLE *table,
+ KEY_MULTI_RANGE *ranges, uint range_count,
+ ha_rows *update_rows, ha_rows *found_rows);
#else
-int spider_db_direct_update(
- ha_spider *spider,
- TABLE *table,
- ha_rows *update_rows,
- ha_rows *found_rows
-);
+int spider_db_direct_update(ha_spider *spider, TABLE *table,
+ ha_rows *update_rows, ha_rows *found_rows);
#endif
#endif
#ifdef HA_CAN_BULK_ACCESS
-int spider_db_bulk_direct_update(
- ha_spider *spider,
- ha_rows *update_rows
-);
+int spider_db_bulk_direct_update(ha_spider *spider, ha_rows *update_rows);
#endif
-int spider_db_bulk_delete(
- ha_spider *spider,
- TABLE *table,
- my_ptrdiff_t ptr_diff
-);
+int spider_db_bulk_delete(ha_spider *spider, TABLE *table,
+ my_ptrdiff_t ptr_diff);
-int spider_db_delete(
- ha_spider *spider,
- TABLE *table,
- const uchar *buf
-);
+int spider_db_delete(ha_spider *spider, TABLE *table, const uchar *buf);
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
-int spider_db_direct_delete(
- ha_spider *spider,
- TABLE *table,
- KEY_MULTI_RANGE *ranges,
- uint range_count,
- ha_rows *delete_rows
-);
+int spider_db_direct_delete(ha_spider *spider, TABLE *table,
+ KEY_MULTI_RANGE *ranges, uint range_count,
+ ha_rows *delete_rows);
#else
-int spider_db_direct_delete(
- ha_spider *spider,
- TABLE *table,
- ha_rows *delete_rows
-);
+int spider_db_direct_delete(ha_spider *spider, TABLE *table,
+ ha_rows *delete_rows);
#endif
#endif
-int spider_db_delete_all_rows(
- ha_spider *spider
-);
-
-int spider_db_disable_keys(
- ha_spider *spider
-);
-
-int spider_db_enable_keys(
- ha_spider *spider
-);
-
-int spider_db_check_table(
- ha_spider *spider,
- HA_CHECK_OPT* check_opt
-);
-
-int spider_db_repair_table(
- ha_spider *spider,
- HA_CHECK_OPT* check_opt
-);
-
-int spider_db_analyze_table(
- ha_spider *spider
-);
-
-int spider_db_optimize_table(
- ha_spider *spider
-);
-
-int spider_db_flush_tables(
- ha_spider *spider,
- bool lock
-);
-
-int spider_db_flush_logs(
- ha_spider *spider
-);
-
-Field *spider_db_find_field_in_item_list(
- Item **item_list,
- uint item_count,
- uint start_item,
- spider_string *str,
- const char *func_name,
- int func_name_length
-);
-
-int spider_db_print_item_type(
- Item *item,
- Field *field,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
-
-int spider_db_print_item_type_default(
- Item *item,
- ha_spider *spider,
- spider_string *str
-);
-
-int spider_db_open_item_cond(
- Item_cond *item_cond,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
-
-int spider_db_open_item_func(
- Item_func *item_func,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
+int spider_db_delete_all_rows(ha_spider *spider);
+
+int spider_db_disable_keys(ha_spider *spider);
+
+int spider_db_enable_keys(ha_spider *spider);
+
+int spider_db_check_table(ha_spider *spider, HA_CHECK_OPT *check_opt);
+
+int spider_db_repair_table(ha_spider *spider, HA_CHECK_OPT *check_opt);
+
+int spider_db_analyze_table(ha_spider *spider);
+
+int spider_db_optimize_table(ha_spider *spider);
+
+int spider_db_flush_tables(ha_spider *spider, bool lock);
+
+int spider_db_flush_logs(ha_spider *spider);
+
+Field *spider_db_find_field_in_item_list(Item **item_list, uint item_count,
+ uint start_item, spider_string *str,
+ const char *func_name,
+ int func_name_length);
+
+int spider_db_print_item_type(Item *item, Field *field, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, uint dbton_id, bool use_fields,
+ spider_fields *fields);
+
+int spider_db_print_item_type_default(Item *item, ha_spider *spider,
+ spider_string *str);
+
+int spider_db_open_item_cond(Item_cond *item_cond, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, uint dbton_id, bool use_fields,
+ spider_fields *fields);
+
+int spider_db_open_item_func(Item_func *item_func, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, uint dbton_id, bool use_fields,
+ spider_fields *fields);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
-int spider_db_open_item_sum_func(
- Item_sum *item_sum,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
+int spider_db_open_item_sum_func(Item_sum *item_sum, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, uint dbton_id,
+ bool use_fields, spider_fields *fields);
#endif
-int spider_db_open_item_ident(
- Item_ident *item_ident,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
-
-int spider_db_open_item_field(
- Item_field *item_field,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
-
-int spider_db_open_item_ref(
- Item_ref *item_ref,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
-
-int spider_db_open_item_row(
- Item_row *item_row,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
-
-int spider_db_open_item_string(
- Item *item,
- Field *field,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
-
-int spider_db_open_item_int(
- Item *item,
- Field *field,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
-
-int spider_db_open_item_cache(
- Item_cache *item_cache,
- Field *field,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
-
-int spider_db_open_item_insert_value(
- Item_insert_value *item_insert_value,
- Field *field,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
-
-int spider_db_append_condition(
- ha_spider *spider,
- const char *alias,
- uint alias_length,
- bool test_flg
-);
+int spider_db_open_item_ident(Item_ident *item_ident, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, uint dbton_id, bool use_fields,
+ spider_fields *fields);
+
+int spider_db_open_item_field(Item_field *item_field, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, uint dbton_id, bool use_fields,
+ spider_fields *fields);
+
+int spider_db_open_item_ref(Item_ref *item_ref, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, uint dbton_id, bool use_fields,
+ spider_fields *fields);
+
+int spider_db_open_item_row(Item_row *item_row, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, uint dbton_id, bool use_fields,
+ spider_fields *fields);
+
+int spider_db_open_item_string(Item *item, Field *field, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, uint dbton_id,
+ bool use_fields, spider_fields *fields);
+
+int spider_db_open_item_int(Item *item, Field *field, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, uint dbton_id, bool use_fields,
+ spider_fields *fields);
+
+int spider_db_open_item_cache(Item_cache *item_cache, Field *field,
+ ha_spider *spider, spider_string *str,
+ const char *alias, uint alias_length,
+ uint dbton_id, bool use_fields,
+ spider_fields *fields);
+
+int spider_db_open_item_insert_value(Item_insert_value *item_insert_value,
+ Field *field, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, uint dbton_id,
+ bool use_fields, spider_fields *fields);
+
+int spider_db_append_condition(ha_spider *spider, const char *alias,
+ uint alias_length, bool test_flg);
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
-int spider_db_append_update_columns(
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- uint dbton_id,
- bool use_fields,
- spider_fields *fields
-);
+int spider_db_append_update_columns(ha_spider *spider, spider_string *str,
+ const char *alias, uint alias_length,
+ uint dbton_id, bool use_fields,
+ spider_fields *fields);
#endif
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
-bool spider_db_check_select_colum_in_group(
- st_select_lex *select_lex,
- Field *field
-);
+bool spider_db_check_select_colum_in_group(st_select_lex *select_lex,
+ Field *field);
#endif
-uint spider_db_check_ft_idx(
- Item_func *item_func,
- ha_spider *spider
-);
-
-int spider_db_udf_fetch_row(
- SPIDER_TRX *trx,
- Field *field,
- SPIDER_DB_ROW *row,
- ulong *length
-);
-
-int spider_db_udf_fetch_table(
- SPIDER_TRX *trx,
- SPIDER_CONN *conn,
- TABLE *table,
- SPIDER_DB_RESULT *result,
- uint set_on,
- uint set_off
-);
-
-int spider_db_udf_direct_sql_connect(
- const SPIDER_DIRECT_SQL *direct_sql,
- SPIDER_CONN *conn
-);
-
-int spider_db_udf_direct_sql_ping(
- SPIDER_DIRECT_SQL *direct_sql
-);
-
-int spider_db_udf_direct_sql(
- SPIDER_DIRECT_SQL *direct_sql
-);
-
-int spider_db_udf_direct_sql_select_db(
- SPIDER_DIRECT_SQL *direct_sql,
- SPIDER_CONN *conn
-);
-
-int spider_db_udf_direct_sql_set_names(
- SPIDER_DIRECT_SQL *direct_sql,
- SPIDER_TRX *trx,
- SPIDER_CONN *conn
-);
-
-int spider_db_udf_check_and_set_set_names(
- SPIDER_TRX *trx
-);
-
-int spider_db_udf_append_set_names(
- SPIDER_TRX *trx
-);
-
-void spider_db_udf_free_set_names(
- SPIDER_TRX *trx
-);
-
-int spider_db_udf_ping_table(
- SPIDER_TABLE_MON_LIST *table_mon_list,
- SPIDER_SHARE *share,
- SPIDER_TRX *trx,
- SPIDER_CONN *conn,
- char *where_clause,
- uint where_clause_length,
- bool ping_only,
- bool use_where,
- longlong limit
-);
+uint spider_db_check_ft_idx(Item_func *item_func, ha_spider *spider);
+
+int spider_db_udf_fetch_row(SPIDER_TRX *trx, Field *field, SPIDER_DB_ROW *row,
+ ulong *length);
+
+int spider_db_udf_fetch_table(SPIDER_TRX *trx, SPIDER_CONN *conn, TABLE *table,
+ SPIDER_DB_RESULT *result, uint set_on,
+ uint set_off);
+
+int spider_db_udf_direct_sql_connect(const SPIDER_DIRECT_SQL *direct_sql,
+ SPIDER_CONN *conn);
+
+int spider_db_udf_direct_sql_ping(SPIDER_DIRECT_SQL *direct_sql);
+
+int spider_db_udf_direct_sql(SPIDER_DIRECT_SQL *direct_sql);
+
+int spider_db_udf_direct_sql_select_db(SPIDER_DIRECT_SQL *direct_sql,
+ SPIDER_CONN *conn);
+
+int spider_db_udf_direct_sql_set_names(SPIDER_DIRECT_SQL *direct_sql,
+ SPIDER_TRX *trx, SPIDER_CONN *conn);
+
+int spider_db_udf_check_and_set_set_names(SPIDER_TRX *trx);
+
+int spider_db_udf_append_set_names(SPIDER_TRX *trx);
+
+void spider_db_udf_free_set_names(SPIDER_TRX *trx);
+
+int spider_db_udf_ping_table(SPIDER_TABLE_MON_LIST *table_mon_list,
+ SPIDER_SHARE *share, SPIDER_TRX *trx,
+ SPIDER_CONN *conn, char *where_clause,
+ uint where_clause_length, bool ping_only,
+ bool use_where, longlong limit);
int spider_db_udf_ping_table_append_mon_next(
- spider_string *str,
- char *child_table_name,
- uint child_table_name_length,
- int link_id,
- char *where_clause,
- uint where_clause_length,
- longlong first_sid,
- int full_mon_count,
- int current_mon_count,
- int success_count,
- int fault_count,
- int flags,
- longlong limit
-);
-
-int spider_db_udf_ping_table_append_select(
- spider_string *str,
- SPIDER_SHARE *share,
- SPIDER_TRX *trx,
- spider_string *where_str,
- bool use_where,
- longlong limit,
- uint dbton_id
-);
+ spider_string *str, char *child_table_name, uint child_table_name_length,
+ int link_id, char *where_clause, uint where_clause_length,
+ longlong first_sid, int full_mon_count, int current_mon_count,
+ int success_count, int fault_count, int flags, longlong limit);
+
+int spider_db_udf_ping_table_append_select(spider_string *str,
+ SPIDER_SHARE *share, SPIDER_TRX *trx,
+ spider_string *where_str,
+ bool use_where, longlong limit,
+ uint dbton_id);
int spider_db_udf_ping_table_mon_next(
- THD *thd,
- SPIDER_TABLE_MON *table_mon,
- SPIDER_CONN *conn,
- SPIDER_MON_TABLE_RESULT *mon_table_result,
- char *child_table_name,
- uint child_table_name_length,
- int link_id,
- char *where_clause,
- uint where_clause_length,
- longlong first_sid,
- int full_mon_count,
- int current_mon_count,
- int success_count,
- int fault_count,
- int flags,
- longlong limit
-);
-
-int spider_db_udf_copy_tables(
- SPIDER_COPY_TABLES *copy_tables,
- ha_spider *spider,
- TABLE *table,
- longlong bulk_insert_rows
-);
-
-int spider_db_open_handler(
- ha_spider *spider,
- SPIDER_CONN *conn,
- int link_idx
-);
+ THD *thd, SPIDER_TABLE_MON *table_mon, SPIDER_CONN *conn,
+ SPIDER_MON_TABLE_RESULT *mon_table_result, char *child_table_name,
+ uint child_table_name_length, int link_id, char *where_clause,
+ uint where_clause_length, longlong first_sid, int full_mon_count,
+ int current_mon_count, int success_count, int fault_count, int flags,
+ longlong limit);
+
+int spider_db_udf_copy_tables(SPIDER_COPY_TABLES *copy_tables,
+ ha_spider *spider, TABLE *table,
+ longlong bulk_insert_rows);
+
+int spider_db_open_handler(ha_spider *spider, SPIDER_CONN *conn, int link_idx);
#ifdef HA_CAN_BULK_ACCESS
-int spider_db_bulk_open_handler(
- ha_spider *spider,
- SPIDER_CONN *conn,
- int link_idx
-);
+int spider_db_bulk_open_handler(ha_spider *spider, SPIDER_CONN *conn,
+ int link_idx);
#endif
-int spider_db_close_handler(
- ha_spider *spider,
- SPIDER_CONN *conn,
- int link_idx,
- uint tgt_conn_kind
-);
+int spider_db_close_handler(ha_spider *spider, SPIDER_CONN *conn, int link_idx,
+ uint tgt_conn_kind);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
-void spider_db_hs_request_buf_reset(
- SPIDER_CONN *conn
-);
+void spider_db_hs_request_buf_reset(SPIDER_CONN *conn);
#endif
-bool spider_db_conn_is_network_error(
- int error_num
-);
+bool spider_db_conn_is_network_error(int error_num);
diff --git a/storage/spider/spd_db_handlersocket.h b/storage/spider/spd_db_handlersocket.h
index f7a454b66af..1d7fc714441 100644
--- a/storage/spider/spd_db_handlersocket.h
+++ b/storage/spider/spd_db_handlersocket.h
@@ -11,211 +11,108 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
#define SPIDER_HS_CONN dena::hstcpcli_ptr
#define SPIDER_HS_CONN_CREATE dena::hstcpcli_i::create
#define SPIDER_HS_RESULT dena::hstresult
#define SPIDER_HS_SOCKARGS dena::socket_args
-class spider_db_handlersocket_util: public spider_db_util
-{
-public:
+class spider_db_handlersocket_util : public spider_db_util {
+ public:
spider_db_handlersocket_util();
~spider_db_handlersocket_util();
- int append_name(
- spider_string *str,
- const char *name,
- uint name_length
- );
- int append_name_with_charset(
- spider_string *str,
- const char *name,
- uint name_length,
- CHARSET_INFO *name_charset
- );
- int append_escaped_name(
- spider_string *str,
- const char *name,
- uint name_length
- );
- int append_escaped_name_with_charset(
- spider_string *str,
- const char *name,
- uint name_length,
- CHARSET_INFO *name_charset
- );
- bool is_name_quote(
- const char head_code
- );
- int append_escaped_name_quote(
- spider_string *str
- );
- int append_column_value(
- ha_spider *spider,
- spider_string *str,
- Field *field,
- const uchar *new_ptr,
- CHARSET_INFO *access_charset
- );
- int append_trx_isolation(
- spider_string *str,
- int trx_isolation
- );
- int append_autocommit(
- spider_string *str,
- bool autocommit
- );
- int append_sql_log_off(
- spider_string *str,
- bool sql_log_off
- );
- int append_wait_timeout(
- spider_string *str,
- int wait_timeout
- );
- int append_sql_mode(
- spider_string *str,
- sql_mode_t sql_mode
- );
- int append_time_zone(
- spider_string *str,
- Time_zone *time_zone
- );
- int append_start_transaction(
- spider_string *str
- );
- int append_xa_start(
- spider_string *str,
- XID *xid
- );
- int append_lock_table_head(
- spider_string *str
- );
- int append_lock_table_body(
- spider_string *str,
- const char *db_name,
- uint db_name_length,
- CHARSET_INFO *db_name_charset,
- const char *table_name,
- uint table_name_length,
- CHARSET_INFO *table_name_charset,
- int lock_type
- );
- int append_lock_table_tail(
- spider_string *str
- );
- int append_unlock_table(
- spider_string *str
- );
- int open_item_func(
- Item_func *item_func,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- );
+ int append_name(spider_string *str, const char *name, uint name_length);
+ int append_name_with_charset(spider_string *str, const char *name,
+ uint name_length, CHARSET_INFO *name_charset);
+ int append_escaped_name(spider_string *str, const char *name,
+ uint name_length);
+ int append_escaped_name_with_charset(spider_string *str, const char *name,
+ uint name_length,
+ CHARSET_INFO *name_charset);
+ bool is_name_quote(const char head_code);
+ int append_escaped_name_quote(spider_string *str);
+ int append_column_value(ha_spider *spider, spider_string *str, Field *field,
+ const uchar *new_ptr, CHARSET_INFO *access_charset);
+ int append_trx_isolation(spider_string *str, int trx_isolation);
+ int append_autocommit(spider_string *str, bool autocommit);
+ int append_sql_log_off(spider_string *str, bool sql_log_off);
+ int append_wait_timeout(spider_string *str, int wait_timeout);
+ int append_sql_mode(spider_string *str, sql_mode_t sql_mode);
+ int append_time_zone(spider_string *str, Time_zone *time_zone);
+ int append_start_transaction(spider_string *str);
+ int append_xa_start(spider_string *str, XID *xid);
+ int append_lock_table_head(spider_string *str);
+ int append_lock_table_body(spider_string *str, const char *db_name,
+ uint db_name_length, CHARSET_INFO *db_name_charset,
+ const char *table_name, uint table_name_length,
+ CHARSET_INFO *table_name_charset, int lock_type);
+ int append_lock_table_tail(spider_string *str);
+ int append_unlock_table(spider_string *str);
+ int open_item_func(Item_func *item_func, ha_spider *spider,
+ spider_string *str, const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- int open_item_sum_func(
- Item_sum *item_sum,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- );
+ int open_item_sum_func(Item_sum *item_sum, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields);
#endif
- int append_escaped_util(
- spider_string *to,
- String *from
- );
- int append_escaped_util(
- spider_string *to,
- String *from
- );
+ int append_escaped_util(spider_string *to, String *from);
+ int append_escaped_util(spider_string *to, String *from);
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- int append_from_and_tables(
- ha_spider *spider,
- spider_fields *fields,
- spider_string *str,
- TABLE_LIST *table_list,
- uint table_count
- );
- int reappend_tables(
- spider_fields *fields,
- SPIDER_LINK_IDX_CHAIN *link_idx_chain,
- spider_string *str
- );
- int append_where(
- spider_string *str
- );
- int append_having(
- spider_string *str
- );
+ int append_from_and_tables(ha_spider *spider, spider_fields *fields,
+ spider_string *str, TABLE_LIST *table_list,
+ uint table_count);
+ int reappend_tables(spider_fields *fields,
+ SPIDER_LINK_IDX_CHAIN *link_idx_chain,
+ spider_string *str);
+ int append_where(spider_string *str);
+ int append_having(spider_string *str);
#endif
};
-class spider_db_handlersocket_row: public spider_db_row
-{
-public:
+class spider_db_handlersocket_row : public spider_db_row {
+ public:
SPIDER_HS_STRING_REF *hs_row;
SPIDER_HS_STRING_REF *hs_row_first;
- uint field_count;
- uint row_size;
- bool cloned;
+ uint field_count;
+ uint row_size;
+ bool cloned;
spider_db_handlersocket_row();
~spider_db_handlersocket_row();
- int store_to_field(
- Field *field,
- CHARSET_INFO *access_charset
- );
- int append_to_str(
- spider_string *str
- );
- int append_escaped_to_str(
- spider_string *str,
- uint dbton_id
- );
+ int store_to_field(Field *field, CHARSET_INFO *access_charset);
+ int append_to_str(spider_string *str);
+ int append_escaped_to_str(spider_string *str, uint dbton_id);
void first();
void next();
bool is_null();
int val_int();
double val_real();
- my_decimal *val_decimal(
- my_decimal *decimal_value,
- CHARSET_INFO *access_charset
- );
+ my_decimal *val_decimal(my_decimal *decimal_value,
+ CHARSET_INFO *access_charset);
SPIDER_DB_ROW *clone();
- int store_to_tmp_table(
- TABLE *tmp_table,
- spider_string *str
- );
+ int store_to_tmp_table(TABLE *tmp_table, spider_string *str);
uint get_byte_size();
};
-class spider_db_handlersocket_result_buffer: public spider_db_result_buffer
-{
-public:
- SPIDER_HS_RESULT hs_result;
+class spider_db_handlersocket_result_buffer : public spider_db_result_buffer {
+ public:
+ SPIDER_HS_RESULT hs_result;
spider_db_handlersocket_result_buffer();
~spider_db_handlersocket_result_buffer();
void clear();
- bool check_size(
- longlong size
- );
+ bool check_size(longlong size);
};
-class spider_db_handlersocket_result: public spider_db_result
-{
-public:
- SPIDER_HS_CONN *hs_conn_p;
+class spider_db_handlersocket_result : public spider_db_result {
+ public:
+ SPIDER_HS_CONN *hs_conn_p;
spider_db_handlersocket_row row;
- SPIDER_HS_STRING_REF hs_row;
- uint field_count;
- int store_error_num;
+ SPIDER_HS_STRING_REF hs_row;
+ uint field_count;
+ int store_error_num;
spider_db_handlersocket_result(SPIDER_DB_CONN *in_db_conn);
~spider_db_handlersocket_result();
bool has_result();
@@ -223,396 +120,203 @@ public:
SPIDER_DB_ROW *current_row();
SPIDER_DB_ROW *fetch_row();
SPIDER_DB_ROW *fetch_row_from_result_buffer(
- spider_db_result_buffer *spider_res_buf
- );
- SPIDER_DB_ROW *fetch_row_from_tmp_table(
- TABLE *tmp_table
- );
- int fetch_table_status(
- int mode,
- ha_statistics &stat
- );
- int fetch_table_records(
- int mode,
- ha_rows &records
- );
- int fetch_table_cardinality(
- int mode,
- TABLE *table,
- longlong *cardinality,
- uchar *cardinality_upd,
- int bitmap_size
- );
- int fetch_table_mon_status(
- int &status
- );
+ spider_db_result_buffer *spider_res_buf);
+ SPIDER_DB_ROW *fetch_row_from_tmp_table(TABLE *tmp_table);
+ int fetch_table_status(int mode, ha_statistics &stat);
+ int fetch_table_records(int mode, ha_rows &records);
+ int fetch_table_cardinality(int mode, TABLE *table, longlong *cardinality,
+ uchar *cardinality_upd, int bitmap_size);
+ int fetch_table_mon_status(int &status);
longlong num_rows();
uint num_fields();
- void move_to_pos(
- longlong pos
- );
+ void move_to_pos(longlong pos);
int get_errno();
#ifdef SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
- int fetch_columns_for_discover_table_structure(
- spider_string *str,
- CHARSET_INFO *access_charset
- );
- int fetch_index_for_discover_table_structure(
- spider_string *str,
- CHARSET_INFO *access_charset
- );
- int fetch_table_for_discover_table_structure(
- spider_string *str,
- SPIDER_SHARE *spider_share,
- CHARSET_INFO *access_charset
- );
+ int fetch_columns_for_discover_table_structure(spider_string *str,
+ CHARSET_INFO *access_charset);
+ int fetch_index_for_discover_table_structure(spider_string *str,
+ CHARSET_INFO *access_charset);
+ int fetch_table_for_discover_table_structure(spider_string *str,
+ SPIDER_SHARE *spider_share,
+ CHARSET_INFO *access_charset);
#endif
};
-class spider_db_handlersocket: public spider_db_conn
-{
+class spider_db_handlersocket : public spider_db_conn {
SPIDER_HS_CONN hs_conn;
- int stored_error;
- uint field_count;
-public:
- DYNAMIC_ARRAY handler_open_array;
- bool handler_open_array_inited;
- uint handler_open_array_id;
- const char *handler_open_array_func_name;
- const char *handler_open_array_file_name;
- ulong handler_open_array_line_no;
+ int stored_error;
+ uint field_count;
+
+ public:
+ DYNAMIC_ARRAY handler_open_array;
+ bool handler_open_array_inited;
+ uint handler_open_array_id;
+ const char *handler_open_array_func_name;
+ const char *handler_open_array_file_name;
+ ulong handler_open_array_line_no;
st_spider_db_request_key *request_key_req_first;
st_spider_db_request_key *request_key_req_last;
st_spider_db_request_key *request_key_snd_first;
st_spider_db_request_key *request_key_snd_last;
st_spider_db_request_key *request_key_reuse_first;
st_spider_db_request_key *request_key_reuse_last;
- spider_db_handlersocket(
- SPIDER_CONN *conn
- );
+ spider_db_handlersocket(SPIDER_CONN *conn);
~spider_db_handlersocket();
int init();
bool is_connected();
void bg_connect();
- int connect(
- char *tgt_host,
- char *tgt_username,
- char *tgt_password,
- long tgt_port,
- char *tgt_socket,
- char *server_name,
- int connect_retry_count,
- longlong connect_retry_interval
- );
+ int connect(char *tgt_host, char *tgt_username, char *tgt_password,
+ long tgt_port, char *tgt_socket, char *server_name,
+ int connect_retry_count, longlong connect_retry_interval);
int ping();
void bg_disconnect();
void disconnect();
int set_net_timeout();
- int exec_query(
- const char *query,
- uint length,
- int quick_mode
- );
+ int exec_query(const char *query, uint length, int quick_mode);
int get_errno();
const char *get_error();
- bool is_server_gone_error(
- int error_num
- );
- bool is_dup_entry_error(
- int error_num
- );
- bool is_xa_nota_error(
- int error_num
- );
- spider_db_result *store_result(
- spider_db_result_buffer **spider_res_buf,
- st_spider_db_request_key *request_key,
- int *error_num
- );
- spider_db_result *use_result(
- ha_spider *spider,
- st_spider_db_request_key *request_key,
- int *error_num
- );
+ bool is_server_gone_error(int error_num);
+ bool is_dup_entry_error(int error_num);
+ bool is_xa_nota_error(int error_num);
+ spider_db_result *store_result(spider_db_result_buffer **spider_res_buf,
+ st_spider_db_request_key *request_key,
+ int *error_num);
+ spider_db_result *use_result(ha_spider *spider,
+ st_spider_db_request_key *request_key,
+ int *error_num);
int next_result();
uint affected_rows();
uint matched_rows();
- bool inserted_info(
- spider_db_handler *handler,
- spider_copy_info *copy_info
- );
+ bool inserted_info(spider_db_handler *handler, spider_copy_info *copy_info);
ulonglong last_insert_id();
- int set_character_set(
- const char *csname
- );
- int select_db(
- const char *dbname
- );
- int consistent_snapshot(
- int *need_mon
- );
+ int set_character_set(const char *csname);
+ int select_db(const char *dbname);
+ int consistent_snapshot(int *need_mon);
bool trx_start_in_bulk_sql();
- int start_transaction(
- int *need_mon
- );
- int commit(
- int *need_mon
- );
- int rollback(
- int *need_mon
- );
+ int start_transaction(int *need_mon);
+ int commit(int *need_mon);
+ int rollback(int *need_mon);
bool xa_start_in_bulk_sql();
- int xa_start(
- XID *xid,
- int *need_mon
- );
- int xa_end(
- XID *xid,
- int *need_mon
- );
- int xa_prepare(
- XID *xid,
- int *need_mon
- );
- int xa_commit(
- XID *xid,
- int *need_mon
- );
- int xa_rollback(
- XID *xid,
- int *need_mon
- );
+ int xa_start(XID *xid, int *need_mon);
+ int xa_end(XID *xid, int *need_mon);
+ int xa_prepare(XID *xid, int *need_mon);
+ int xa_commit(XID *xid, int *need_mon);
+ int xa_rollback(XID *xid, int *need_mon);
bool set_trx_isolation_in_bulk_sql();
- int set_trx_isolation(
- int trx_isolation,
- int *need_mon
- );
+ int set_trx_isolation(int trx_isolation, int *need_mon);
bool set_autocommit_in_bulk_sql();
- int set_autocommit(
- bool autocommit,
- int *need_mon
- );
+ int set_autocommit(bool autocommit, int *need_mon);
bool set_sql_log_off_in_bulk_sql();
- int set_sql_log_off(
- bool sql_log_off,
- int *need_mon
- );
+ int set_sql_log_off(bool sql_log_off, int *need_mon);
bool set_wait_timeout_in_bulk_sql();
- int set_wait_timeout(
- int wait_timeout,
- int *need_mon
- );
+ int set_wait_timeout(int wait_timeout, int *need_mon);
bool set_sql_mode_in_bulk_sql();
- int set_sql_mode(
- sql_mode_t sql_mode,
- int *need_mon
- );
+ int set_sql_mode(sql_mode_t sql_mode, int *need_mon);
bool set_time_zone_in_bulk_sql();
- int set_time_zone(
- Time_zone *time_zone,
- int *need_mon
- );
- int show_master_status(
- SPIDER_TRX *trx,
- SPIDER_SHARE *share,
- int all_link_idx,
- int *need_mon,
- TABLE *table,
- spider_string *str,
- int mode,
- SPIDER_DB_RESULT **res1,
- SPIDER_DB_RESULT **res2
- );
- int append_sql(
- char *sql,
- ulong sql_length,
- st_spider_db_request_key *request_key
- );
- int append_open_handler(
- uint handler_id,
- const char *db_name,
- const char *table_name,
- const char *index_name,
- const char *sql,
- st_spider_db_request_key *request_key
- );
- int append_select(
- uint handler_id,
- spider_string *sql,
- SPIDER_DB_HS_STRING_REF_BUFFER *keys,
- int limit,
- int skip,
- st_spider_db_request_key *request_key
- );
- int append_insert(
- uint handler_id,
- SPIDER_DB_HS_STRING_REF_BUFFER *upds,
- st_spider_db_request_key *request_key
- );
- int append_update(
- uint handler_id,
- spider_string *sql,
- SPIDER_DB_HS_STRING_REF_BUFFER *keys,
- SPIDER_DB_HS_STRING_REF_BUFFER *upds,
- int limit,
- int skip,
- bool increment,
- bool decrement,
- st_spider_db_request_key *request_key
- );
- int append_delete(
- uint handler_id,
- spider_string *sql,
- SPIDER_DB_HS_STRING_REF_BUFFER *keys,
- int limit,
- int skip,
- st_spider_db_request_key *request_key
- );
+ int set_time_zone(Time_zone *time_zone, int *need_mon);
+ int show_master_status(SPIDER_TRX *trx, SPIDER_SHARE *share, int all_link_idx,
+ int *need_mon, TABLE *table, spider_string *str,
+ int mode, SPIDER_DB_RESULT **res1,
+ SPIDER_DB_RESULT **res2);
+ int append_sql(char *sql, ulong sql_length,
+ st_spider_db_request_key *request_key);
+ int append_open_handler(uint handler_id, const char *db_name,
+ const char *table_name, const char *index_name,
+ const char *sql,
+ st_spider_db_request_key *request_key);
+ int append_select(uint handler_id, spider_string *sql,
+ SPIDER_DB_HS_STRING_REF_BUFFER *keys, int limit, int skip,
+ st_spider_db_request_key *request_key);
+ int append_insert(uint handler_id, SPIDER_DB_HS_STRING_REF_BUFFER *upds,
+ st_spider_db_request_key *request_key);
+ int append_update(uint handler_id, spider_string *sql,
+ SPIDER_DB_HS_STRING_REF_BUFFER *keys,
+ SPIDER_DB_HS_STRING_REF_BUFFER *upds, int limit, int skip,
+ bool increment, bool decrement,
+ st_spider_db_request_key *request_key);
+ int append_delete(uint handler_id, spider_string *sql,
+ SPIDER_DB_HS_STRING_REF_BUFFER *keys, int limit, int skip,
+ st_spider_db_request_key *request_key);
void reset_request_queue();
- size_t escape_string(
- char *to,
- const char *from,
- size_t from_length
- );
+ size_t escape_string(char *to, const char *from, size_t from_length);
bool have_lock_table_list();
- int append_lock_tables(
- spider_string *str
- );
- int append_unlock_tables(
- spider_string *str
- );
+ int append_lock_tables(spider_string *str);
+ int append_unlock_tables(spider_string *str);
uint get_lock_table_hash_count();
void reset_lock_table_hash();
uint get_opened_handler_count();
void reset_opened_handler();
- void set_dup_key_idx(
- ha_spider *spider,
- int link_idx
- );
- int append_request_key(
- st_spider_db_request_key *request_key
- );
+ void set_dup_key_idx(ha_spider *spider, int link_idx);
+ int append_request_key(st_spider_db_request_key *request_key);
void reset_request_key_req();
void reset_request_key_snd();
void move_request_key_to_snd();
- int check_request_key(
- st_spider_db_request_key *request_key
- );
- bool cmp_request_key_to_snd(
- st_spider_db_request_key *request_key
- );
+ int check_request_key(st_spider_db_request_key *request_key);
+ bool cmp_request_key_to_snd(st_spider_db_request_key *request_key);
};
-class spider_handlersocket_share: public spider_db_share
-{
-public:
- spider_string *table_names_str;
- spider_string *db_names_str;
- spider_string *db_table_str;
+class spider_handlersocket_share : public spider_db_share {
+ public:
+ spider_string *table_names_str;
+ spider_string *db_names_str;
+ spider_string *db_table_str;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type *db_table_str_hash_value;
#endif
- uint table_nm_max_length;
- uint db_nm_max_length;
- spider_string *column_name_str;
- bool same_db_table_name;
- int first_all_link_idx;
- spider_handlersocket_share(
- st_spider_share *share
- );
+ uint table_nm_max_length;
+ uint db_nm_max_length;
+ spider_string *column_name_str;
+ bool same_db_table_name;
+ int first_all_link_idx;
+ spider_handlersocket_share(st_spider_share *share);
~spider_handlersocket_share();
int init();
- int append_table_name(
- spider_string *str,
- int all_link_idx
- );
+ int append_table_name(spider_string *str, int all_link_idx);
int create_table_names_str();
void free_table_names_str();
int create_column_name_str();
void free_column_name_str();
- uint get_column_name_length(
- uint field_index
- );
- int append_column_name(
- spider_string *str,
- uint field_index
- );
- int append_column_name_with_alias(
- spider_string *str,
- uint field_index,
- const char *alias,
- uint alias_length
- );
+ uint get_column_name_length(uint field_index);
+ int append_column_name(spider_string *str, uint field_index);
+ int append_column_name_with_alias(spider_string *str, uint field_index,
+ const char *alias, uint alias_length);
bool need_change_db_table_name();
#ifdef SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
- int discover_table_structure(
- SPIDER_TRX *trx,
- SPIDER_SHARE *spider_share,
- spider_string *str
- );
+ int discover_table_structure(SPIDER_TRX *trx, SPIDER_SHARE *spider_share,
+ spider_string *str);
#endif
};
-class spider_handlersocket_handler: public spider_db_handler
-{
- spider_string hs_sql;
-public:
- bool hs_adding_keys;
+class spider_handlersocket_handler : public spider_db_handler {
+ spider_string hs_sql;
+
+ public:
+ bool hs_adding_keys;
SPIDER_DB_HS_STRING_REF_BUFFER hs_keys;
SPIDER_DB_HS_STRING_REF_BUFFER hs_upds;
SPIDER_DB_HS_STR_BUFFER hs_strs;
- uint hs_strs_pos;
- int hs_limit;
- int hs_skip;
+ uint hs_strs_pos;
+ int hs_limit;
+ int hs_skip;
spider_handlersocket_share *handlersocket_share;
- SPIDER_LINK_FOR_HASH *link_for_hash;
- uchar *minimum_select_bitmap;
- spider_handlersocket_handler(
- ha_spider *spider,
- spider_handlersocket_share *db_share
- );
+ SPIDER_LINK_FOR_HASH *link_for_hash;
+ uchar *minimum_select_bitmap;
+ spider_handlersocket_handler(ha_spider *spider,
+ spider_handlersocket_share *db_share);
~spider_handlersocket_handler();
int init();
- int append_index_hint(
- spider_string *str,
- int link_idx,
- ulong sql_type
- );
- int append_table_name_with_adjusting(
- spider_string *str,
- int link_idx,
- ulong sql_type
- );
- int append_tmp_table_and_sql_for_bka(
- const key_range *start_key
- );
+ int append_index_hint(spider_string *str, int link_idx, ulong sql_type);
+ int append_table_name_with_adjusting(spider_string *str, int link_idx,
+ ulong sql_type);
+ int append_tmp_table_and_sql_for_bka(const key_range *start_key);
int reuse_tmp_table_and_sql_for_bka();
- int append_union_table_and_sql_for_bka(
- const key_range *start_key
- );
+ int append_union_table_and_sql_for_bka(const key_range *start_key);
int reuse_union_table_and_sql_for_bka();
- int append_insert_for_recovery(
- ulong sql_type,
- int link_idx
- );
- int append_update(
- const TABLE *table,
- my_ptrdiff_t ptr_diff
- );
- int append_update(
- const TABLE *table,
- my_ptrdiff_t ptr_diff,
- int link_idx
- );
- int append_delete(
- const TABLE *table,
- my_ptrdiff_t ptr_diff
- );
- int append_delete(
- const TABLE *table,
- my_ptrdiff_t ptr_diff,
- int link_idx
- );
+ int append_insert_for_recovery(ulong sql_type, int link_idx);
+ int append_update(const TABLE *table, my_ptrdiff_t ptr_diff);
+ int append_update(const TABLE *table, my_ptrdiff_t ptr_diff, int link_idx);
+ int append_delete(const TABLE *table, my_ptrdiff_t ptr_diff);
+ int append_delete(const TABLE *table, my_ptrdiff_t ptr_diff, int link_idx);
int append_insert_part();
int append_update_part();
int append_delete_part();
@@ -623,469 +327,176 @@ public:
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
int append_direct_update_set_part();
#endif
- int append_minimum_select_without_quote(
- spider_string *str
- );
+ int append_minimum_select_without_quote(spider_string *str);
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- int append_minimum_select_by_field_idx_list(
- spider_string *str,
- uint32 *field_idxs,
- size_t field_idxs_num
- );
- int append_dup_update_pushdown_part(
- const char *alias,
- uint alias_length
- );
- int append_update_columns_part(
- const char *alias,
- uint alias_length
- );
+ int append_minimum_select_by_field_idx_list(spider_string *str,
+ uint32 *field_idxs,
+ size_t field_idxs_num);
+ int append_dup_update_pushdown_part(const char *alias, uint alias_length);
+ int append_update_columns_part(const char *alias, uint alias_length);
int check_update_columns_part();
- int append_select_part(
- ulong sql_type
- );
+ int append_select_part(ulong sql_type);
#endif
- int append_table_select_part(
- ulong sql_type
- );
- int append_key_select_part(
- ulong sql_type,
- uint idx
- );
- int append_minimum_select_part(
- ulong sql_type
- );
- int append_hint_after_table_part(
- ulong sql_type
- );
- void set_where_pos(
- ulong sql_type
- );
- void set_where_to_pos(
- ulong sql_type
- );
- int check_item_type(
- Item *item
- );
- int append_values_connector_part(
- ulong sql_type
- );
- int append_values_terminator_part(
- ulong sql_type
- );
- int append_union_table_connector_part(
- ulong sql_type
- );
- int append_union_table_terminator_part(
- ulong sql_type
- );
- int append_key_column_values_part(
- const key_range *start_key,
- ulong sql_type
- );
- int append_key_column_values_with_name_part(
- const key_range *start_key,
- ulong sql_type
- );
- int append_key_where_part(
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type
- );
- int append_key_where(
- spider_string *str,
- spider_string *str_part,
- spider_string *str_part2,
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type,
- bool set_order
- );
- int append_is_null_part(
- ulong sql_type,
- KEY_PART_INFO *key_part,
- const key_range *key,
- const uchar **ptr,
- bool key_eq,
- bool tgt_final
- );
- int append_is_null(
- ulong sql_type,
- spider_string *str,
- spider_string *str_part,
- spider_string *str_part2,
- KEY_PART_INFO *key_part,
- const key_range *key,
- const uchar **ptr,
- bool key_eq,
- bool tgt_final
- );
- int append_where_terminator_part(
- ulong sql_type,
- bool set_order,
- int key_count
- );
- int append_match_where_part(
- ulong sql_type
- );
- int append_condition_part(
- const char *alias,
- uint alias_length,
- ulong sql_type,
- bool test_flg
- );
- int append_match_select_part(
- ulong sql_type,
- const char *alias,
- uint alias_length
- );
+ int append_table_select_part(ulong sql_type);
+ int append_key_select_part(ulong sql_type, uint idx);
+ int append_minimum_select_part(ulong sql_type);
+ int append_hint_after_table_part(ulong sql_type);
+ void set_where_pos(ulong sql_type);
+ void set_where_to_pos(ulong sql_type);
+ int check_item_type(Item *item);
+ int append_values_connector_part(ulong sql_type);
+ int append_values_terminator_part(ulong sql_type);
+ int append_union_table_connector_part(ulong sql_type);
+ int append_union_table_terminator_part(ulong sql_type);
+ int append_key_column_values_part(const key_range *start_key, ulong sql_type);
+ int append_key_column_values_with_name_part(const key_range *start_key,
+ ulong sql_type);
+ int append_key_where_part(const key_range *start_key,
+ const key_range *end_key, ulong sql_type);
+ int append_key_where(spider_string *str, spider_string *str_part,
+ spider_string *str_part2, const key_range *start_key,
+ const key_range *end_key, ulong sql_type,
+ bool set_order);
+ int append_is_null_part(ulong sql_type, KEY_PART_INFO *key_part,
+ const key_range *key, const uchar **ptr, bool key_eq,
+ bool tgt_final);
+ int append_is_null(ulong sql_type, spider_string *str,
+ spider_string *str_part, spider_string *str_part2,
+ KEY_PART_INFO *key_part, const key_range *key,
+ const uchar **ptr, bool key_eq, bool tgt_final);
+ int append_where_terminator_part(ulong sql_type, bool set_order,
+ int key_count);
+ int append_match_where_part(ulong sql_type);
+ int append_condition_part(const char *alias, uint alias_length,
+ ulong sql_type, bool test_flg);
+ int append_match_select_part(ulong sql_type, const char *alias,
+ uint alias_length);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- int append_sum_select_part(
- ulong sql_type,
- const char *alias,
- uint alias_length
- );
+ int append_sum_select_part(ulong sql_type, const char *alias,
+ uint alias_length);
#endif
- void set_order_pos(
- ulong sql_type
- );
- void set_order_to_pos(
- ulong sql_type
- );
+ void set_order_pos(ulong sql_type);
+ void set_order_to_pos(ulong sql_type);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- int append_group_by_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
+ int append_group_by_part(const char *alias, uint alias_length,
+ ulong sql_type);
#endif
- int append_key_order_for_merge_with_alias_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_key_order_for_direct_order_limit_with_alias_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_key_order_with_alias_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_limit_part(
- longlong offset,
- longlong limit,
- ulong sql_type
- );
- int reappend_limit_part(
- longlong offset,
- longlong limit,
- ulong sql_type
- );
- int append_select_lock_part(
- ulong sql_type
- );
- int append_union_all_start_part(
- ulong sql_type
- );
- int append_union_all_part(
- ulong sql_type
- );
- int append_union_all_end_part(
- ulong sql_type
- );
- int append_multi_range_cnt_part(
- ulong sql_type,
- uint multi_range_cnt,
- bool with_comma
- );
- int append_multi_range_cnt_with_name_part(
- ulong sql_type,
- uint multi_range_cnt
- );
- int append_open_handler_part(
- ulong sql_type,
- uint handler_id,
- SPIDER_CONN *conn,
- int link_idx
- );
- int append_open_handler(
- spider_string *str,
- uint handler_id,
- SPIDER_CONN *conn,
- int link_idx
- );
- int append_close_handler_part(
- ulong sql_type,
- int link_idx
- );
- int append_insert_terminator_part(
- ulong sql_type
- );
- int append_insert_values_part(
- ulong sql_type
- );
- int append_insert_values(
- spider_string *str
- );
- int append_into_part(
- ulong sql_type
- );
- void set_insert_to_pos(
- ulong sql_type
- );
- int append_from_part(
- ulong sql_type,
- int link_idx
- );
- int append_delete_all_rows_part(
- ulong sql_type
- );
- int append_explain_select_part(
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type,
- int link_idx
- );
- bool is_sole_projection_field(
- uint16 field_index
- );
- bool is_bulk_insert_exec_period(
- bool bulk_end
- );
- bool sql_is_filled_up(
- ulong sql_type
- );
- bool sql_is_empty(
- ulong sql_type
- );
+ int append_key_order_for_merge_with_alias_part(const char *alias,
+ uint alias_length,
+ ulong sql_type);
+ int append_key_order_for_direct_order_limit_with_alias_part(const char *alias,
+ uint alias_length,
+ ulong sql_type);
+ int append_key_order_with_alias_part(const char *alias, uint alias_length,
+ ulong sql_type);
+ int append_limit_part(longlong offset, longlong limit, ulong sql_type);
+ int reappend_limit_part(longlong offset, longlong limit, ulong sql_type);
+ int append_select_lock_part(ulong sql_type);
+ int append_union_all_start_part(ulong sql_type);
+ int append_union_all_part(ulong sql_type);
+ int append_union_all_end_part(ulong sql_type);
+ int append_multi_range_cnt_part(ulong sql_type, uint multi_range_cnt,
+ bool with_comma);
+ int append_multi_range_cnt_with_name_part(ulong sql_type,
+ uint multi_range_cnt);
+ int append_open_handler_part(ulong sql_type, uint handler_id,
+ SPIDER_CONN *conn, int link_idx);
+ int append_open_handler(spider_string *str, uint handler_id,
+ SPIDER_CONN *conn, int link_idx);
+ int append_close_handler_part(ulong sql_type, int link_idx);
+ int append_insert_terminator_part(ulong sql_type);
+ int append_insert_values_part(ulong sql_type);
+ int append_insert_values(spider_string *str);
+ int append_into_part(ulong sql_type);
+ void set_insert_to_pos(ulong sql_type);
+ int append_from_part(ulong sql_type, int link_idx);
+ int append_delete_all_rows_part(ulong sql_type);
+ int append_explain_select_part(const key_range *start_key,
+ const key_range *end_key, ulong sql_type,
+ int link_idx);
+ bool is_sole_projection_field(uint16 field_index);
+ bool is_bulk_insert_exec_period(bool bulk_end);
+ bool sql_is_filled_up(ulong sql_type);
+ bool sql_is_empty(ulong sql_type);
bool support_multi_split_read();
bool support_bulk_update();
int bulk_tmp_table_insert();
- int bulk_tmp_table_insert(
- int link_idx
- );
+ int bulk_tmp_table_insert(int link_idx);
int bulk_tmp_table_end_bulk_insert();
int bulk_tmp_table_rnd_init();
int bulk_tmp_table_rnd_next();
int bulk_tmp_table_rnd_end();
- bool need_copy_for_update(
- int link_idx
- );
+ bool need_copy_for_update(int link_idx);
bool bulk_tmp_table_created();
int mk_bulk_tmp_table_and_bulk_start();
void rm_bulk_tmp_table();
- int insert_lock_tables_list(
- SPIDER_CONN *conn,
- int link_idx
- );
- int append_lock_tables_list(
- SPIDER_CONN *conn,
- int link_idx,
- int *appended
- );
- int realloc_sql(
- ulong *realloced
- );
- int reset_sql(
- ulong sql_type
- );
- int reset_keys(
- ulong sql_type
- );
- int reset_upds(
- ulong sql_type
- );
- int reset_strs(
- ulong sql_type
- );
- int reset_strs_pos(
- ulong sql_type
- );
- int push_back_upds(
- SPIDER_HS_STRING_REF &info
- );
- int request_buf_find(
- int link_idx
- );
- int request_buf_insert(
- int link_idx
- );
- int request_buf_update(
- int link_idx
- );
- int request_buf_delete(
- int link_idx
- );
- bool need_lock_before_set_sql_for_exec(
- ulong sql_type
- );
+ int insert_lock_tables_list(SPIDER_CONN *conn, int link_idx);
+ int append_lock_tables_list(SPIDER_CONN *conn, int link_idx, int *appended);
+ int realloc_sql(ulong *realloced);
+ int reset_sql(ulong sql_type);
+ int reset_keys(ulong sql_type);
+ int reset_upds(ulong sql_type);
+ int reset_strs(ulong sql_type);
+ int reset_strs_pos(ulong sql_type);
+ int push_back_upds(SPIDER_HS_STRING_REF &info);
+ int request_buf_find(int link_idx);
+ int request_buf_insert(int link_idx);
+ int request_buf_update(int link_idx);
+ int request_buf_delete(int link_idx);
+ bool need_lock_before_set_sql_for_exec(ulong sql_type);
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- int set_sql_for_exec(
- ulong sql_type,
- int link_idx,
- SPIDER_LINK_IDX_CHAIN *link_idx_chain
- );
+ int set_sql_for_exec(ulong sql_type, int link_idx,
+ SPIDER_LINK_IDX_CHAIN *link_idx_chain);
#endif
- int set_sql_for_exec(
- ulong sql_type,
- int link_idx
- );
- int set_sql_for_exec(
- spider_db_copy_table *tgt_ct,
- ulong sql_type
- );
- int execute_sql(
- ulong sql_type,
- SPIDER_CONN *conn,
- int quick_mode,
- int *need_mon
- );
+ int set_sql_for_exec(ulong sql_type, int link_idx);
+ int set_sql_for_exec(spider_db_copy_table *tgt_ct, ulong sql_type);
+ int execute_sql(ulong sql_type, SPIDER_CONN *conn, int quick_mode,
+ int *need_mon);
int reset();
- int sts_mode_exchange(
- int sts_mode
- );
- int show_table_status(
- int link_idx,
- int sts_mode,
- uint flag
- );
- int crd_mode_exchange(
- int crd_mode
- );
- int show_index(
- int link_idx,
- int crd_mode
- );
- int show_records(
- int link_idx
- );
- int show_last_insert_id(
- int link_idx,
- ulonglong &last_insert_id
- );
- ha_rows explain_select(
- const key_range *start_key,
- const key_range *end_key,
- int link_idx
- );
- int lock_tables(
- int link_idx
- );
- int unlock_tables(
- int link_idx
- );
- int disable_keys(
- SPIDER_CONN *conn,
- int link_idx
- );
- int enable_keys(
- SPIDER_CONN *conn,
- int link_idx
- );
- int check_table(
- SPIDER_CONN *conn,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int repair_table(
- SPIDER_CONN *conn,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int analyze_table(
- SPIDER_CONN *conn,
- int link_idx
- );
- int optimize_table(
- SPIDER_CONN *conn,
- int link_idx
- );
- int flush_tables(
- SPIDER_CONN *conn,
- int link_idx,
- bool lock
- );
- int flush_logs(
- SPIDER_CONN *conn,
- int link_idx
- );
- int insert_opened_handler(
- SPIDER_CONN *conn,
- int link_idx
- );
- int delete_opened_handler(
- SPIDER_CONN *conn,
- int link_idx
- );
- int sync_from_clone_source(
- spider_db_handler *dbton_hdl
- );
- bool support_use_handler(
- int use_handler
- );
+ int sts_mode_exchange(int sts_mode);
+ int show_table_status(int link_idx, int sts_mode, uint flag);
+ int crd_mode_exchange(int crd_mode);
+ int show_index(int link_idx, int crd_mode);
+ int show_records(int link_idx);
+ int show_last_insert_id(int link_idx, ulonglong &last_insert_id);
+ ha_rows explain_select(const key_range *start_key, const key_range *end_key,
+ int link_idx);
+ int lock_tables(int link_idx);
+ int unlock_tables(int link_idx);
+ int disable_keys(SPIDER_CONN *conn, int link_idx);
+ int enable_keys(SPIDER_CONN *conn, int link_idx);
+ int check_table(SPIDER_CONN *conn, int link_idx, HA_CHECK_OPT *check_opt);
+ int repair_table(SPIDER_CONN *conn, int link_idx, HA_CHECK_OPT *check_opt);
+ int analyze_table(SPIDER_CONN *conn, int link_idx);
+ int optimize_table(SPIDER_CONN *conn, int link_idx);
+ int flush_tables(SPIDER_CONN *conn, int link_idx, bool lock);
+ int flush_logs(SPIDER_CONN *conn, int link_idx);
+ int insert_opened_handler(SPIDER_CONN *conn, int link_idx);
+ int delete_opened_handler(SPIDER_CONN *conn, int link_idx);
+ int sync_from_clone_source(spider_db_handler *dbton_hdl);
+ bool support_use_handler(int use_handler);
void minimum_select_bitmap_create();
- bool minimum_select_bit_is_set(
- uint field_index
- );
- void copy_minimum_select_bitmap(
- uchar *bitmap
- );
+ bool minimum_select_bit_is_set(uint field_index);
+ void copy_minimum_select_bitmap(uchar *bitmap);
int init_union_table_name_pos();
int set_union_table_name_pos();
- int reset_union_table_name(
- spider_string *str,
- int link_idx,
- ulong sql_type
- );
+ int reset_union_table_name(spider_string *str, int link_idx, ulong sql_type);
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- int append_from_and_tables_part(
- spider_fields *fields,
- ulong sql_type
- );
- int reappend_tables_part(
- spider_fields *fields,
- ulong sql_type
- );
- int append_where_part(
- ulong sql_type
- );
- int append_having_part(
- ulong sql_type
- );
- int append_item_type_part(
- Item *item,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- );
- int append_list_item_select_part(
- List<Item> *select,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- );
- int append_group_by_part(
- ORDER *order,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- );
- int append_order_by_part(
- ORDER *order,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- );
+ int append_from_and_tables_part(spider_fields *fields, ulong sql_type);
+ int reappend_tables_part(spider_fields *fields, ulong sql_type);
+ int append_where_part(ulong sql_type);
+ int append_having_part(ulong sql_type);
+ int append_item_type_part(Item *item, const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields,
+ ulong sql_type);
+ int append_list_item_select_part(List<Item> *select, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields, ulong sql_type);
+ int append_group_by_part(ORDER *order, const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields,
+ ulong sql_type);
+ int append_order_by_part(ORDER *order, const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields,
+ ulong sql_type);
#endif
};
diff --git a/storage/spider/spd_db_include.h b/storage/spider/spd_db_include.h
index 886ffed3b4b..030fcb81b5b 100644
--- a/storage/spider/spd_db_include.h
+++ b/storage/spider/spd_db_include.h
@@ -12,7 +12,8 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
#include "hs_compat.h"
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
@@ -166,7 +167,9 @@ typedef st_spider_result SPIDER_RESULT;
#define SPIDER_SQL_MBR_DISJOINT_LEN (sizeof(SPIDER_SQL_MBR_DISJOINT_STR) - 1)
#define SPIDER_SQL_NOT_BETWEEN_STR "not between"
#define SPIDER_SQL_NOT_BETWEEN_LEN (sizeof(SPIDER_SQL_NOT_BETWEEN_STR) - 1)
-#define SPIDER_SQL_TO_FLOAT_STR "/* create function to_float(a decimal(20,6)) returns float return a */ to_float("
+#define SPIDER_SQL_TO_FLOAT_STR \
+ "/* create function to_float(a decimal(20,6)) returns float return a */ " \
+ "to_float("
#define SPIDER_SQL_TO_FLOAT_LEN (sizeof(SPIDER_SQL_TO_FLOAT_STR) - 1)
#define SPIDER_SQL_IN_STR "in("
#define SPIDER_SQL_IN_LEN (sizeof(SPIDER_SQL_IN_STR) - 1)
@@ -207,7 +210,8 @@ typedef st_spider_result SPIDER_RESULT;
#define SPIDER_SQL_CREATE_TABLE_STR "create table "
#define SPIDER_SQL_CREATE_TABLE_LEN (sizeof(SPIDER_SQL_CREATE_TABLE_STR) - 1)
#define SPIDER_SQL_DEFAULT_CHARSET_STR " default charset "
-#define SPIDER_SQL_DEFAULT_CHARSET_LEN (sizeof(SPIDER_SQL_DEFAULT_CHARSET_STR) - 1)
+#define SPIDER_SQL_DEFAULT_CHARSET_LEN \
+ (sizeof(SPIDER_SQL_DEFAULT_CHARSET_STR) - 1)
#define SPIDER_SQL_CHARACTER_SET_STR " character set "
#define SPIDER_SQL_CHARACTER_SET_LEN (sizeof(SPIDER_SQL_CHARACTER_SET_STR) - 1)
#define SPIDER_SQL_COLLATE_STR " collate "
@@ -217,12 +221,14 @@ typedef st_spider_result SPIDER_RESULT;
#define SPIDER_SQL_CONNECTION_STR " connection "
#define SPIDER_SQL_CONNECTION_LEN (sizeof(SPIDER_SQL_CONNECTION_STR) - 1)
#define SPIDER_SQL_LCL_NAME_QUOTE_STR "`"
-#define SPIDER_SQL_LCL_NAME_QUOTE_LEN (sizeof(SPIDER_SQL_LCL_NAME_QUOTE_STR) - 1)
+#define SPIDER_SQL_LCL_NAME_QUOTE_LEN \
+ (sizeof(SPIDER_SQL_LCL_NAME_QUOTE_STR) - 1)
#define SPIDER_SQL_MIN_STR "min"
#define SPIDER_SQL_MIN_LEN (sizeof(SPIDER_SQL_MIN_STR) - 1)
#define SPIDER_SQL_LOP_CHK_PRM_PRF_STR "spider_lc_"
-#define SPIDER_SQL_LOP_CHK_PRM_PRF_LEN (sizeof(SPIDER_SQL_LOP_CHK_PRM_PRF_STR) - 1)
+#define SPIDER_SQL_LOP_CHK_PRM_PRF_LEN \
+ (sizeof(SPIDER_SQL_LOP_CHK_PRM_PRF_STR) - 1)
#define SPIDER_CONN_KIND_MYSQL (1 << 0)
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
@@ -257,11 +263,7 @@ enum spider_bulk_upd_start {
SPD_BU_START_BY_BULK_INIT
};
-enum spider_index_rnd_init {
- SPD_NONE,
- SPD_INDEX,
- SPD_RND
-};
+enum spider_index_rnd_init { SPD_NONE, SPD_INDEX, SPD_RND };
struct st_spider_ft_info;
struct st_spider_result;
@@ -271,9 +273,8 @@ class ha_spider;
class spider_db_copy_table;
class spider_db_handler;
-class spider_string
-{
-public:
+class spider_string {
+ public:
bool mem_calc_inited;
String str;
uint id;
@@ -284,301 +285,105 @@ public:
spider_string *next;
spider_string();
- spider_string(
- uint32 length_arg
- );
- spider_string(
- const char *str,
- CHARSET_INFO *cs
- );
- spider_string(
- const char *str,
- uint32 len,
- CHARSET_INFO *cs
- );
- spider_string(
- char *str,
- uint32 len,
- CHARSET_INFO *cs
- );
- spider_string(
- const String &str
- );
+ spider_string(uint32 length_arg);
+ spider_string(const char *str, CHARSET_INFO *cs);
+ spider_string(const char *str, uint32 len, CHARSET_INFO *cs);
+ spider_string(char *str, uint32 len, CHARSET_INFO *cs);
+ spider_string(const String &str);
~spider_string();
- void init_mem_calc(
- uint id,
- const char *func_name,
- const char *file_name,
- ulong line_no
- );
+ void init_mem_calc(uint id, const char *func_name, const char *file_name,
+ ulong line_no);
void mem_calc();
String *get_str();
- void set_charset(
- CHARSET_INFO *charset_arg
- );
+ void set_charset(CHARSET_INFO *charset_arg);
CHARSET_INFO *charset() const;
uint32 length() const;
uint32 alloced_length() const;
- char &operator [] (
- uint32 i
- ) const;
- void length(
- uint32 len
- );
+ char &operator[](uint32 i) const;
+ void length(uint32 len);
bool is_empty() const;
const char *ptr() const;
char *c_ptr();
char *c_ptr_quick();
char *c_ptr_safe();
LEX_STRING lex_string() const;
- void set(
- String &str,
- uint32 offset,
- uint32 arg_length
- );
- void set(
- char *str,
- uint32 arg_length,
- CHARSET_INFO *cs
- );
- void set(
- const char *str,
- uint32 arg_length,
- CHARSET_INFO *cs
- );
- bool set_ascii(
- const char *str,
- uint32 arg_length
- );
- bool set_int(
- longlong num,
- bool unsigned_flag,
- CHARSET_INFO *cs
- );
- bool set(
- longlong num,
- CHARSET_INFO *cs
- );
- bool set(
- ulonglong num,
- CHARSET_INFO *cs
- );
- bool set_real(
- double num,
- uint decimals,
- CHARSET_INFO *cs
- );
+ void set(String &str, uint32 offset, uint32 arg_length);
+ void set(char *str, uint32 arg_length, CHARSET_INFO *cs);
+ void set(const char *str, uint32 arg_length, CHARSET_INFO *cs);
+ bool set_ascii(const char *str, uint32 arg_length);
+ bool set_int(longlong num, bool unsigned_flag, CHARSET_INFO *cs);
+ bool set(longlong num, CHARSET_INFO *cs);
+ bool set(ulonglong num, CHARSET_INFO *cs);
+ bool set_real(double num, uint decimals, CHARSET_INFO *cs);
void chop();
void free();
- bool alloc(
- uint32 arg_length
- );
- bool real_alloc(
- uint32 arg_length
- );
- bool realloc(
- uint32 arg_length
- );
- void shrink(
- uint32 arg_length
- );
+ bool alloc(uint32 arg_length);
+ bool real_alloc(uint32 arg_length);
+ bool realloc(uint32 arg_length);
+ void shrink(uint32 arg_length);
bool is_alloced();
- spider_string& operator = (
- const String &s
- );
+ spider_string &operator=(const String &s);
bool copy();
- bool copy(
- const spider_string &s
- );
- bool copy(
- const String &s
- );
- bool copy(
- const char *s,
- uint32 arg_length,
- CHARSET_INFO *cs
- );
- bool needs_conversion(
- uint32 arg_length,
- CHARSET_INFO *cs_from,
- CHARSET_INFO *cs_to,
- uint32 *offset
- );
- bool copy_aligned(
- const char *s,
- uint32 arg_length,
- uint32 offset,
- CHARSET_INFO *cs
- );
- bool set_or_copy_aligned(
- const char *s,
- uint32 arg_length,
- CHARSET_INFO *cs
- );
- bool copy(
- const char *s,
- uint32 arg_length,
- CHARSET_INFO *csfrom,
- CHARSET_INFO *csto,
- uint *errors
- );
- bool append(
- const spider_string &s
- );
- bool append(
- const String &s
- );
- bool append(
- const char *s
- );
- bool append(
- LEX_STRING *ls
- );
- bool append(
- const char *s,
- uint32 arg_length
- );
- bool append(
- const char *s,
- uint32 arg_length,
- CHARSET_INFO *cs
- );
- bool append_ulonglong(
- ulonglong val
- );
- bool append(
- IO_CACHE *file,
- uint32 arg_length
- );
- bool append_with_prefill(
- const char *s,
- uint32 arg_length,
- uint32 full_length,
- char fill_char
- );
- int strstr(
- const String &search,
- uint32 offset = 0
- );
- int strrstr(
- const String &search,
- uint32 offset = 0
- );
- bool replace(
- uint32 offset,
- uint32 arg_length,
- const char *to,
- uint32 length
- );
- bool replace(
- uint32 offset,
- uint32 arg_length,
- const String &to
- );
- inline bool append(
- char chr
- );
- bool fill(
- uint32 max_length,
- char fill
- );
+ bool copy(const spider_string &s);
+ bool copy(const String &s);
+ bool copy(const char *s, uint32 arg_length, CHARSET_INFO *cs);
+ bool needs_conversion(uint32 arg_length, CHARSET_INFO *cs_from,
+ CHARSET_INFO *cs_to, uint32 *offset);
+ bool copy_aligned(const char *s, uint32 arg_length, uint32 offset,
+ CHARSET_INFO *cs);
+ bool set_or_copy_aligned(const char *s, uint32 arg_length, CHARSET_INFO *cs);
+ bool copy(const char *s, uint32 arg_length, CHARSET_INFO *csfrom,
+ CHARSET_INFO *csto, uint *errors);
+ bool append(const spider_string &s);
+ bool append(const String &s);
+ bool append(const char *s);
+ bool append(LEX_STRING *ls);
+ bool append(const char *s, uint32 arg_length);
+ bool append(const char *s, uint32 arg_length, CHARSET_INFO *cs);
+ bool append_ulonglong(ulonglong val);
+ bool append(IO_CACHE *file, uint32 arg_length);
+ bool append_with_prefill(const char *s, uint32 arg_length, uint32 full_length,
+ char fill_char);
+ int strstr(const String &search, uint32 offset = 0);
+ int strrstr(const String &search, uint32 offset = 0);
+ bool replace(uint32 offset, uint32 arg_length, const char *to, uint32 length);
+ bool replace(uint32 offset, uint32 arg_length, const String &to);
+ inline bool append(char chr);
+ bool fill(uint32 max_length, char fill);
void strip_sp();
uint32 numchars();
- int charpos(
- int i,
- uint32 offset=0
- );
- int reserve(
- uint32 space_needed
- );
- int reserve(
- uint32 space_needed,
- uint32 grow_by
- );
- void q_append(
- const char c
- );
- void q_append(
- const uint32 n
- );
- void q_append(
- double d
- );
- void q_append(
- double *d
- );
- void q_append(
- const char *data,
- uint32 data_len
- );
- void write_at_position(
- int position,
- uint32 value
- );
- void qs_append(
- const char *str,
- uint32 len
- );
- void qs_append(
- double d
- );
- void qs_append(
- double *d
- );
- void qs_append(
- const char c
- );
- void qs_append(
- int i
- );
- void qs_append(
- uint i
- );
- char *prep_append(
- uint32 arg_length,
- uint32 step_alloc
- );
- bool append(
- const char *s,
- uint32 arg_length,
- uint32 step_alloc
- );
- void append_escape_string(
- const char *st,
- uint len
- );
- void append_escape_string(
- const char *st,
- uint len,
- CHARSET_INFO *cs
- );
- bool append_for_single_quote(
- const char *st,
- uint len
- );
- bool append_for_single_quote(
- const String *s
- );
- bool append_for_single_quote(
- const char *st
- );
- void print(
- String *print
- );
- void swap(
- spider_string &s
- );
- bool uses_buffer_owned_by(
- const String *s
- ) const;
+ int charpos(int i, uint32 offset = 0);
+ int reserve(uint32 space_needed);
+ int reserve(uint32 space_needed, uint32 grow_by);
+ void q_append(const char c);
+ void q_append(const uint32 n);
+ void q_append(double d);
+ void q_append(double *d);
+ void q_append(const char *data, uint32 data_len);
+ void write_at_position(int position, uint32 value);
+ void qs_append(const char *str, uint32 len);
+ void qs_append(double d);
+ void qs_append(double *d);
+ void qs_append(const char c);
+ void qs_append(int i);
+ void qs_append(uint i);
+ char *prep_append(uint32 arg_length, uint32 step_alloc);
+ bool append(const char *s, uint32 arg_length, uint32 step_alloc);
+ void append_escape_string(const char *st, uint len);
+ void append_escape_string(const char *st, uint len, CHARSET_INFO *cs);
+ bool append_for_single_quote(const char *st, uint len);
+ bool append_for_single_quote(const String *s);
+ bool append_for_single_quote(const char *st);
+ void print(String *print);
+ void swap(spider_string &s);
+ bool uses_buffer_owned_by(const String *s) const;
bool is_ascii() const;
};
typedef struct spider_table_link_idx_holder SPIDER_TABLE_LINK_IDX_HOLDER;
typedef struct spider_table_holder SPIDER_TABLE_HOLDER;
-typedef struct spider_link_idx_holder
-{
+typedef struct spider_link_idx_holder {
spider_table_link_idx_holder *table_link_idx_holder;
int link_idx;
int link_status;
@@ -586,8 +391,7 @@ typedef struct spider_link_idx_holder
spider_link_idx_holder *next;
} SPIDER_LINK_IDX_HOLDER;
-typedef struct spider_link_idx_chain
-{
+typedef struct spider_link_idx_chain {
SPIDER_CONN *conn;
spider_link_idx_holder *link_idx_holder;
spider_link_idx_holder *current_link_idx_holder;
@@ -595,8 +399,7 @@ typedef struct spider_link_idx_chain
spider_link_idx_chain *next;
} SPIDER_LINK_IDX_CHAIN;
-typedef struct spider_table_link_idx_holder
-{
+typedef struct spider_table_link_idx_holder {
spider_table_holder *table_holder;
spider_link_idx_holder *first_link_idx_holder;
spider_link_idx_holder *last_link_idx_holder;
@@ -604,8 +407,7 @@ typedef struct spider_table_link_idx_holder
uint link_idx_holder_count;
} SPIDER_TABLE_LINK_IDX_HOLDER;
-typedef struct spider_conn_holder
-{
+typedef struct spider_conn_holder {
SPIDER_CONN *conn;
spider_table_link_idx_holder *table_link_idx_holder;
uint link_idx_holder_count_max;
@@ -615,29 +417,25 @@ typedef struct spider_conn_holder
spider_conn_holder *next;
} SPIDER_CONN_HOLDER;
-typedef struct spider_table_holder
-{
+typedef struct spider_table_holder {
TABLE *table;
ha_spider *spider;
spider_string *alias;
} SPIDER_TABLE_HOLDER;
-typedef struct spider_field_holder
-{
+typedef struct spider_field_holder {
Field *field;
ha_spider *spider;
spider_string *alias;
spider_field_holder *next;
} SPIDER_FIELD_HOLDER;
-typedef struct spider_field_chain
-{
+typedef struct spider_field_chain {
spider_field_holder *field_holder;
spider_field_chain *next;
} SPIDER_FIELD_CHAIN;
-class spider_fields
-{
+class spider_fields {
uint dbton_count;
uint current_dbton_num;
uint dbton_ids[SPIDER_DBTON_SIZE];
@@ -659,69 +457,45 @@ class spider_fields
SPIDER_FIELD_CHAIN *current_field_chain;
Field **first_field_ptr;
Field **current_field_ptr;
-public:
+
+ public:
spider_fields();
virtual ~spider_fields();
- void add_dbton_id(
- uint dbton_id_arg
- );
+ void add_dbton_id(uint dbton_id_arg);
void set_pos_to_first_dbton_id();
uint get_next_dbton_id();
- int make_link_idx_chain(
- int link_status
- );
+ int make_link_idx_chain(int link_status);
SPIDER_LINK_IDX_CHAIN *create_link_idx_chain();
void set_pos_to_first_link_idx_chain();
SPIDER_LINK_IDX_CHAIN *get_next_link_idx_chain();
SPIDER_LINK_IDX_HOLDER *get_dup_link_idx_holder(
- SPIDER_TABLE_LINK_IDX_HOLDER *table_link_idx_holder,
- SPIDER_LINK_IDX_HOLDER *current
- );
+ SPIDER_TABLE_LINK_IDX_HOLDER *table_link_idx_holder,
+ SPIDER_LINK_IDX_HOLDER *current);
bool check_link_ok_chain();
- bool is_first_link_ok_chain(
- SPIDER_LINK_IDX_CHAIN *link_idx_chain_arg
- );
+ bool is_first_link_ok_chain(SPIDER_LINK_IDX_CHAIN *link_idx_chain_arg);
int get_ok_link_idx();
void set_first_link_idx();
- int add_link_idx(
- SPIDER_CONN_HOLDER *conn_holder_arg,
- ha_spider *spider_arg,
- int link_idx
- );
+ int add_link_idx(SPIDER_CONN_HOLDER *conn_holder_arg, ha_spider *spider_arg,
+ int link_idx);
SPIDER_LINK_IDX_HOLDER *create_link_idx_holder();
void set_pos_to_first_table_on_link_idx_chain(
- SPIDER_LINK_IDX_CHAIN *link_idx_chain_arg
- );
+ SPIDER_LINK_IDX_CHAIN *link_idx_chain_arg);
SPIDER_LINK_IDX_HOLDER *get_next_table_on_link_idx_chain(
- SPIDER_LINK_IDX_CHAIN *link_idx_chain_arg
- );
- SPIDER_CONN_HOLDER *add_conn(
- SPIDER_CONN *conn_arg,
- long access_balance
- );
+ SPIDER_LINK_IDX_CHAIN *link_idx_chain_arg);
+ SPIDER_CONN_HOLDER *add_conn(SPIDER_CONN *conn_arg, long access_balance);
SPIDER_CONN_HOLDER *create_conn_holder();
void set_pos_to_first_conn_holder();
SPIDER_CONN_HOLDER *get_next_conn_holder();
bool has_conn_holder();
void clear_conn_holder_from_conn();
- bool check_conn_same_conn(
- SPIDER_CONN *conn_arg
- );
+ bool check_conn_same_conn(SPIDER_CONN *conn_arg);
bool remove_conn_if_not_checked();
- void check_support_dbton(
- uchar *dbton_bitmap
- );
+ void check_support_dbton(uchar *dbton_bitmap);
void choose_a_conn();
- void free_conn_holder(
- SPIDER_CONN_HOLDER *conn_holder_arg
- );
- SPIDER_TABLE_HOLDER *add_table(
- ha_spider *spider_arg
- );
+ void free_conn_holder(SPIDER_CONN_HOLDER *conn_holder_arg);
+ SPIDER_TABLE_HOLDER *add_table(ha_spider *spider_arg);
bool all_query_fields_are_query_table_members();
- int create_table_holder(
- uint table_count_arg
- );
+ int create_table_holder(uint table_count_arg);
void set_pos_to_first_table_holder();
SPIDER_TABLE_HOLDER *get_next_table_holder();
SPIDER_TABLE_HOLDER *get_table_holder(TABLE *table);
@@ -735,9 +509,7 @@ public:
SPIDER_FIELD_CHAIN *get_next_field_chain();
void set_field_ptr(Field **field_arg);
Field **get_next_field_ptr();
- int ping_table_mon_from_table(
- SPIDER_LINK_IDX_CHAIN *link_idx_chain
- );
+ int ping_table_mon_from_table(SPIDER_LINK_IDX_CHAIN *link_idx_chain);
};
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
@@ -745,213 +517,126 @@ public:
#define SPIDER_HS_STRING_REF dena::string_ref
#ifndef HANDLERSOCKET_MYSQL_UTIL
#define SPIDER_HS_VECTOR std::vector
-class spider_db_hs_string_ref_buffer
-{
+class spider_db_hs_string_ref_buffer {
SPIDER_HS_VECTOR<SPIDER_HS_STRING_REF> hs_conds;
-public:
+
+ public:
spider_db_hs_string_ref_buffer();
~spider_db_hs_string_ref_buffer();
int init();
void clear();
- int push_back(
- SPIDER_HS_STRING_REF &cond
- );
+ int push_back(SPIDER_HS_STRING_REF &cond);
SPIDER_HS_STRING_REF *ptr();
uint size();
};
#else
-class spider_db_hs_string_ref_buffer
-{
- bool hs_da_init;
- DYNAMIC_ARRAY hs_conds;
- uint hs_conds_id;
- const char *hs_conds_func_name;
- const char *hs_conds_file_name;
- ulong hs_conds_line_no;
-public:
+class spider_db_hs_string_ref_buffer {
+ bool hs_da_init;
+ DYNAMIC_ARRAY hs_conds;
+ uint hs_conds_id;
+ const char *hs_conds_func_name;
+ const char *hs_conds_file_name;
+ ulong hs_conds_line_no;
+
+ public:
spider_db_hs_string_ref_buffer();
~spider_db_hs_string_ref_buffer();
int init();
void clear();
- int push_back(
- SPIDER_HS_STRING_REF &cond
- );
+ int push_back(SPIDER_HS_STRING_REF &cond);
SPIDER_HS_STRING_REF *ptr();
uint size();
};
#endif
-class spider_db_hs_str_buffer
-{
- bool hs_da_init;
- DYNAMIC_ARRAY hs_conds;
- uint hs_conds_id;
- const char *hs_conds_func_name;
- const char *hs_conds_file_name;
- ulong hs_conds_line_no;
-public:
+class spider_db_hs_str_buffer {
+ bool hs_da_init;
+ DYNAMIC_ARRAY hs_conds;
+ uint hs_conds_id;
+ const char *hs_conds_func_name;
+ const char *hs_conds_file_name;
+ ulong hs_conds_line_no;
+
+ public:
spider_db_hs_str_buffer();
~spider_db_hs_str_buffer();
int init();
void clear();
- spider_string *add(
- uint *strs_pos,
- const char *str,
- uint str_len
- );
+ spider_string *add(uint *strs_pos, const char *str, uint str_len);
};
#define SPIDER_DB_HS_STRING_REF_BUFFER spider_db_hs_string_ref_buffer
#define SPIDER_DB_HS_STR_BUFFER spider_db_hs_str_buffer
#endif
-struct st_spider_db_request_key
-{
- ulonglong spider_thread_id;
- query_id_t query_id;
- void *handler;
- ulonglong request_id;
+struct st_spider_db_request_key {
+ ulonglong spider_thread_id;
+ query_id_t query_id;
+ void *handler;
+ ulonglong request_id;
st_spider_db_request_key *next;
};
-class spider_db_util
-{
-public:
+class spider_db_util {
+ public:
uint dbton_id;
spider_db_util() {}
virtual ~spider_db_util() {}
- virtual int append_name(
- spider_string *str,
- const char *name,
- uint name_length
- ) = 0;
- virtual int append_name_with_charset(
- spider_string *str,
- const char *name,
- uint name_length,
- CHARSET_INFO *name_charset
- ) = 0;
- virtual int append_escaped_name(
- spider_string *str,
- const char *name,
- uint name_length
- ) = 0;
- virtual int append_escaped_name_with_charset(
- spider_string *str,
- const char *name,
- uint name_length,
- CHARSET_INFO *name_charset
- ) = 0;
- virtual bool is_name_quote(
- const char head_code
- ) = 0;
- virtual int append_escaped_name_quote(
- spider_string *str
- ) = 0;
- virtual int append_column_value(
- ha_spider *spider,
- spider_string *str,
- Field *field,
- const uchar *new_ptr,
- CHARSET_INFO *access_charset
- ) = 0;
- virtual int append_trx_isolation(
- spider_string *str,
- int trx_isolation
- ) = 0;
- virtual int append_autocommit(
- spider_string *str,
- bool autocommit
- ) = 0;
- virtual int append_sql_log_off(
- spider_string *str,
- bool sql_log_off
- ) = 0;
- virtual int append_wait_timeout(
- spider_string *str,
- int wait_timeout
- ) = 0;
- virtual int append_sql_mode(
- spider_string *str,
- sql_mode_t sql_mode
- ) = 0;
- virtual int append_time_zone(
- spider_string *str,
- Time_zone *time_zone
- ) = 0;
- virtual int append_loop_check(
- spider_string *str,
- SPIDER_CONN *conn
- );
- virtual int append_start_transaction(
- spider_string *str
- ) = 0;
- virtual int append_xa_start(
- spider_string *str,
- XID *xid
- ) = 0;
- virtual int append_lock_table_head(
- spider_string *str
- ) = 0;
- virtual int append_lock_table_body(
- spider_string *str,
- const char *db_name,
- uint db_name_length,
- CHARSET_INFO *db_name_charset,
- const char *table_name,
- uint table_name_length,
- CHARSET_INFO *table_name_charset,
- int lock_type
- ) = 0;
- virtual int append_lock_table_tail(
- spider_string *str
- ) = 0;
- virtual int append_unlock_table(
- spider_string *str
- ) = 0;
- virtual int open_item_func(
- Item_func *item_func,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- ) = 0;
+ virtual int append_name(spider_string *str, const char *name,
+ uint name_length) = 0;
+ virtual int append_name_with_charset(spider_string *str, const char *name,
+ uint name_length,
+ CHARSET_INFO *name_charset) = 0;
+ virtual int append_escaped_name(spider_string *str, const char *name,
+ uint name_length) = 0;
+ virtual int append_escaped_name_with_charset(spider_string *str,
+ const char *name,
+ uint name_length,
+ CHARSET_INFO *name_charset) = 0;
+ virtual bool is_name_quote(const char head_code) = 0;
+ virtual int append_escaped_name_quote(spider_string *str) = 0;
+ virtual int append_column_value(ha_spider *spider, spider_string *str,
+ Field *field, const uchar *new_ptr,
+ CHARSET_INFO *access_charset) = 0;
+ virtual int append_trx_isolation(spider_string *str, int trx_isolation) = 0;
+ virtual int append_autocommit(spider_string *str, bool autocommit) = 0;
+ virtual int append_sql_log_off(spider_string *str, bool sql_log_off) = 0;
+ virtual int append_wait_timeout(spider_string *str, int wait_timeout) = 0;
+ virtual int append_sql_mode(spider_string *str, sql_mode_t sql_mode) = 0;
+ virtual int append_time_zone(spider_string *str, Time_zone *time_zone) = 0;
+ virtual int append_loop_check(spider_string *str, SPIDER_CONN *conn);
+ virtual int append_start_transaction(spider_string *str) = 0;
+ virtual int append_xa_start(spider_string *str, XID *xid) = 0;
+ virtual int append_lock_table_head(spider_string *str) = 0;
+ virtual int append_lock_table_body(spider_string *str, const char *db_name,
+ uint db_name_length,
+ CHARSET_INFO *db_name_charset,
+ const char *table_name,
+ uint table_name_length,
+ CHARSET_INFO *table_name_charset,
+ int lock_type) = 0;
+ virtual int append_lock_table_tail(spider_string *str) = 0;
+ virtual int append_unlock_table(spider_string *str) = 0;
+ virtual int open_item_func(Item_func *item_func, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields) = 0;
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- virtual int open_item_sum_func(
- Item_sum *item_sum,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- ) = 0;
+ virtual int open_item_sum_func(Item_sum *item_sum, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields) = 0;
#endif
- virtual int append_escaped_util(
- spider_string *to,
- String *from
- ) = 0;
+ virtual int append_escaped_util(spider_string *to, String *from) = 0;
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- virtual int append_from_and_tables(
- ha_spider *spider,
- spider_fields *fields,
- spider_string *str,
- TABLE_LIST *table_list,
- uint table_count
- ) = 0;
- virtual int reappend_tables(
- spider_fields *fields,
- SPIDER_LINK_IDX_CHAIN *link_idx_chain,
- spider_string *str
- ) = 0;
- virtual int append_where(
- spider_string *str
- ) = 0;
- virtual int append_having(
- spider_string *str
- ) = 0;
+ virtual int append_from_and_tables(ha_spider *spider, spider_fields *fields,
+ spider_string *str, TABLE_LIST *table_list,
+ uint table_count) = 0;
+ virtual int reappend_tables(spider_fields *fields,
+ SPIDER_LINK_IDX_CHAIN *link_idx_chain,
+ spider_string *str) = 0;
+ virtual int append_where(spider_string *str) = 0;
+ virtual int append_having(spider_string *str) = 0;
#endif
virtual bool tables_on_different_db_are_joinable();
virtual bool socket_has_default_value();
@@ -963,57 +648,39 @@ public:
virtual uint limit_mode();
};
-class spider_db_row
-{
-public:
+class spider_db_row {
+ public:
uint dbton_id;
SPIDER_DB_ROW *next_pos;
spider_db_row(uint in_dbton_id) : dbton_id(in_dbton_id), next_pos(NULL) {}
virtual ~spider_db_row() {}
- virtual int store_to_field(
- Field *field,
- CHARSET_INFO *access_charset
- ) = 0;
- virtual int append_to_str(
- spider_string *str
- ) = 0;
- virtual int append_escaped_to_str(
- spider_string *str,
- uint dbton_id
- ) = 0;
+ virtual int store_to_field(Field *field, CHARSET_INFO *access_charset) = 0;
+ virtual int append_to_str(spider_string *str) = 0;
+ virtual int append_escaped_to_str(spider_string *str, uint dbton_id) = 0;
virtual void first() = 0;
virtual void next() = 0;
virtual bool is_null() = 0;
virtual int val_int() = 0;
virtual double val_real() = 0;
- virtual my_decimal *val_decimal(
- my_decimal *decimal_value,
- CHARSET_INFO *access_charset
- ) = 0;
+ virtual my_decimal *val_decimal(my_decimal *decimal_value,
+ CHARSET_INFO *access_charset) = 0;
virtual SPIDER_DB_ROW *clone() = 0;
- virtual int store_to_tmp_table(
- TABLE *tmp_table,
- spider_string *str
- ) = 0;
+ virtual int store_to_tmp_table(TABLE *tmp_table, spider_string *str) = 0;
virtual uint get_byte_size() = 0;
};
-class spider_db_result_buffer
-{
-public:
+class spider_db_result_buffer {
+ public:
spider_db_result_buffer() {}
virtual ~spider_db_result_buffer() {}
virtual void clear() = 0;
- virtual bool check_size(
- longlong size
- ) = 0;
+ virtual bool check_size(longlong size) = 0;
};
-class spider_db_result
-{
-public:
+class spider_db_result {
+ public:
SPIDER_DB_CONN *db_conn;
- uint dbton_id;
+ uint dbton_id;
spider_db_result(SPIDER_DB_CONN *in_db_conn);
virtual ~spider_db_result() {}
virtual void set_limit(longlong value) {}
@@ -1022,329 +689,181 @@ public:
virtual SPIDER_DB_ROW *current_row() = 0;
virtual SPIDER_DB_ROW *fetch_row() = 0;
virtual SPIDER_DB_ROW *fetch_row_from_result_buffer(
- spider_db_result_buffer *spider_res_buf
- ) = 0;
- virtual SPIDER_DB_ROW *fetch_row_from_tmp_table(
- TABLE *tmp_table
- ) = 0;
- virtual int fetch_table_status(
- int mode,
- ha_statistics &stat
- ) = 0;
- virtual int fetch_table_records(
- int mode,
- ha_rows &records
- ) = 0;
+ spider_db_result_buffer *spider_res_buf) = 0;
+ virtual SPIDER_DB_ROW *fetch_row_from_tmp_table(TABLE *tmp_table) = 0;
+ virtual int fetch_table_status(int mode, ha_statistics &stat) = 0;
+ virtual int fetch_table_records(int mode, ha_rows &records) = 0;
#ifdef HA_HAS_CHECKSUM_EXTENDED
- virtual int fetch_table_checksum(
- ha_spider *spider
- );
+ virtual int fetch_table_checksum(ha_spider *spider);
#endif
- virtual int fetch_table_cardinality(
- int mode,
- TABLE *table,
- longlong *cardinality,
- uchar *cardinality_upd,
- int bitmap_size
- ) = 0;
- virtual int fetch_table_mon_status(
- int &status
- ) = 0;
+ virtual int fetch_table_cardinality(int mode, TABLE *table,
+ longlong *cardinality,
+ uchar *cardinality_upd,
+ int bitmap_size) = 0;
+ virtual int fetch_table_mon_status(int &status) = 0;
virtual longlong num_rows() = 0;
virtual uint num_fields() = 0;
- virtual void move_to_pos(
- longlong pos
- ) = 0;
+ virtual void move_to_pos(longlong pos) = 0;
virtual int get_errno() = 0;
#ifdef SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
virtual int fetch_columns_for_discover_table_structure(
- spider_string *str,
- CHARSET_INFO *access_charset
- ) = 0;
+ spider_string *str, CHARSET_INFO *access_charset) = 0;
virtual int fetch_index_for_discover_table_structure(
- spider_string *str,
- CHARSET_INFO *access_charset
- ) = 0;
+ spider_string *str, CHARSET_INFO *access_charset) = 0;
virtual int fetch_table_for_discover_table_structure(
- spider_string *str,
- SPIDER_SHARE *spider_share,
- CHARSET_INFO *access_charset
- ) = 0;
+ spider_string *str, SPIDER_SHARE *spider_share,
+ CHARSET_INFO *access_charset) = 0;
#endif
virtual uint limit_mode();
};
-class spider_db_conn
-{
-public:
- SPIDER_CONN *conn;
- uint dbton_id;
- spider_db_conn(
- SPIDER_CONN *in_conn
- );
+class spider_db_conn {
+ public:
+ SPIDER_CONN *conn;
+ uint dbton_id;
+ spider_db_conn(SPIDER_CONN *in_conn);
virtual ~spider_db_conn() {}
virtual int init() = 0;
virtual void set_limit(longlong value) {}
virtual bool is_connected() = 0;
virtual void bg_connect() = 0;
- virtual int connect(
- char *tgt_host,
- char *tgt_username,
- char *tgt_password,
- long tgt_port,
- char *tgt_socket,
- char *server_name,
- int connect_retry_count,
- longlong connect_retry_interval
- ) = 0;
+ virtual int connect(char *tgt_host, char *tgt_username, char *tgt_password,
+ long tgt_port, char *tgt_socket, char *server_name,
+ int connect_retry_count,
+ longlong connect_retry_interval) = 0;
virtual int ping() = 0;
virtual void bg_disconnect() = 0;
virtual void disconnect() = 0;
virtual int set_net_timeout() = 0;
- virtual int exec_query(
- const char *query,
- uint length,
- int quick_mode
- ) = 0;
+ virtual int exec_query(const char *query, uint length, int quick_mode) = 0;
virtual int get_errno() = 0;
virtual const char *get_error() = 0;
- virtual bool is_server_gone_error(
- int error_num
- ) = 0;
- virtual bool is_dup_entry_error(
- int error_num
- ) = 0;
- virtual bool is_xa_nota_error(
- int error_num
- ) = 0;
+ virtual bool is_server_gone_error(int error_num) = 0;
+ virtual bool is_dup_entry_error(int error_num) = 0;
+ virtual bool is_xa_nota_error(int error_num) = 0;
virtual spider_db_result *store_result(
- spider_db_result_buffer **spider_res_buf,
- st_spider_db_request_key *request_key,
- int *error_num
- ) = 0;
- virtual spider_db_result *use_result(
- ha_spider *spider,
- st_spider_db_request_key *request_key,
- int *error_num
- ) = 0;
+ spider_db_result_buffer **spider_res_buf,
+ st_spider_db_request_key *request_key, int *error_num) = 0;
+ virtual spider_db_result *use_result(ha_spider *spider,
+ st_spider_db_request_key *request_key,
+ int *error_num) = 0;
virtual int next_result() = 0;
virtual uint affected_rows() = 0;
virtual uint matched_rows() = 0;
- virtual bool inserted_info(
- spider_db_handler *handler,
- ha_copy_info *copy_info
- ) = 0;
+ virtual bool inserted_info(spider_db_handler *handler,
+ ha_copy_info *copy_info) = 0;
virtual ulonglong last_insert_id() = 0;
- virtual int set_character_set(
- const char *csname
- ) = 0;
- virtual int select_db(
- const char *dbname
- ) = 0;
- virtual int consistent_snapshot(
- int *need_mon
- ) = 0;
+ virtual int set_character_set(const char *csname) = 0;
+ virtual int select_db(const char *dbname) = 0;
+ virtual int consistent_snapshot(int *need_mon) = 0;
virtual bool trx_start_in_bulk_sql() = 0;
- virtual int start_transaction(
- int *need_mon
- ) = 0;
- virtual int commit(
- int *need_mon
- ) = 0;
- virtual int rollback(
- int *need_mon
- ) = 0;
+ virtual int start_transaction(int *need_mon) = 0;
+ virtual int commit(int *need_mon) = 0;
+ virtual int rollback(int *need_mon) = 0;
virtual bool xa_start_in_bulk_sql() = 0;
- virtual int xa_start(
- XID *xid,
- int *need_mon
- ) = 0;
- virtual int xa_end(
- XID *xid,
- int *need_mon
- ) = 0;
- virtual int xa_prepare(
- XID *xid,
- int *need_mon
- ) = 0;
- virtual int xa_commit(
- XID *xid,
- int *need_mon
- ) = 0;
- virtual int xa_rollback(
- XID *xid,
- int *need_mon
- ) = 0;
+ virtual int xa_start(XID *xid, int *need_mon) = 0;
+ virtual int xa_end(XID *xid, int *need_mon) = 0;
+ virtual int xa_prepare(XID *xid, int *need_mon) = 0;
+ virtual int xa_commit(XID *xid, int *need_mon) = 0;
+ virtual int xa_rollback(XID *xid, int *need_mon) = 0;
virtual bool set_trx_isolation_in_bulk_sql() = 0;
- virtual int set_trx_isolation(
- int trx_isolation,
- int *need_mon
- ) = 0;
+ virtual int set_trx_isolation(int trx_isolation, int *need_mon) = 0;
virtual bool set_autocommit_in_bulk_sql() = 0;
- virtual int set_autocommit(
- bool autocommit,
- int *need_mon
- ) = 0;
+ virtual int set_autocommit(bool autocommit, int *need_mon) = 0;
virtual bool set_sql_log_off_in_bulk_sql() = 0;
- virtual int set_sql_log_off(
- bool sql_log_off,
- int *need_mon
- ) = 0;
+ virtual int set_sql_log_off(bool sql_log_off, int *need_mon) = 0;
virtual bool set_wait_timeout_in_bulk_sql() = 0;
- virtual int set_wait_timeout(
- int wait_timeout,
- int *need_mon
- ) = 0;
+ virtual int set_wait_timeout(int wait_timeout, int *need_mon) = 0;
virtual bool set_sql_mode_in_bulk_sql() = 0;
- virtual int set_sql_mode(
- sql_mode_t sql_mode,
- int *need_mon
- ) = 0;
+ virtual int set_sql_mode(sql_mode_t sql_mode, int *need_mon) = 0;
virtual bool set_time_zone_in_bulk_sql() = 0;
- virtual int set_time_zone(
- Time_zone *time_zone,
- int *need_mon
- ) = 0;
+ virtual int set_time_zone(Time_zone *time_zone, int *need_mon) = 0;
virtual bool set_loop_check_in_bulk_sql();
- virtual int set_loop_check(
- int *need_mon
- );
+ virtual int set_loop_check(int *need_mon);
virtual int fin_loop_check();
- virtual int show_master_status(
- SPIDER_TRX *trx,
- SPIDER_SHARE *share,
- int all_link_idx,
- int *need_mon,
- TABLE *table,
- spider_string *str,
- int mode,
- SPIDER_DB_RESULT **res1,
- SPIDER_DB_RESULT **res2
- ) = 0;
+ virtual int show_master_status(SPIDER_TRX *trx, SPIDER_SHARE *share,
+ int all_link_idx, int *need_mon, TABLE *table,
+ spider_string *str, int mode,
+ SPIDER_DB_RESULT **res1,
+ SPIDER_DB_RESULT **res2) = 0;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- virtual int append_sql(
- char *sql,
- ulong sql_length,
- st_spider_db_request_key *request_key
- ) = 0;
- virtual int append_open_handler(
- uint handler_id,
- const char *db_name,
- const char *table_name,
- const char *index_name,
- const char *sql,
- st_spider_db_request_key *request_key
- ) = 0;
- virtual int append_select(
- uint handler_id,
- spider_string *sql,
- SPIDER_DB_HS_STRING_REF_BUFFER *keys,
- int limit,
- int skip,
- st_spider_db_request_key *request_key
- ) = 0;
- virtual int append_insert(
- uint handler_id,
- SPIDER_DB_HS_STRING_REF_BUFFER *upds,
- st_spider_db_request_key *request_key
- ) = 0;
- virtual int append_update(
- uint handler_id,
- spider_string *sql,
- SPIDER_DB_HS_STRING_REF_BUFFER *keys,
- SPIDER_DB_HS_STRING_REF_BUFFER *upds,
- int limit,
- int skip,
- bool increment,
- bool decrement,
- st_spider_db_request_key *request_key
- ) = 0;
- virtual int append_delete(
- uint handler_id,
- spider_string *sql,
- SPIDER_DB_HS_STRING_REF_BUFFER *keys,
- int limit,
- int skip,
- st_spider_db_request_key *request_key
- ) = 0;
+ virtual int append_sql(char *sql, ulong sql_length,
+ st_spider_db_request_key *request_key) = 0;
+ virtual int append_open_handler(uint handler_id, const char *db_name,
+ const char *table_name,
+ const char *index_name, const char *sql,
+ st_spider_db_request_key *request_key) = 0;
+ virtual int append_select(uint handler_id, spider_string *sql,
+ SPIDER_DB_HS_STRING_REF_BUFFER *keys, int limit,
+ int skip,
+ st_spider_db_request_key *request_key) = 0;
+ virtual int append_insert(uint handler_id,
+ SPIDER_DB_HS_STRING_REF_BUFFER *upds,
+ st_spider_db_request_key *request_key) = 0;
+ virtual int append_update(uint handler_id, spider_string *sql,
+ SPIDER_DB_HS_STRING_REF_BUFFER *keys,
+ SPIDER_DB_HS_STRING_REF_BUFFER *upds, int limit,
+ int skip, bool increment, bool decrement,
+ st_spider_db_request_key *request_key) = 0;
+ virtual int append_delete(uint handler_id, spider_string *sql,
+ SPIDER_DB_HS_STRING_REF_BUFFER *keys, int limit,
+ int skip,
+ st_spider_db_request_key *request_key) = 0;
virtual void reset_request_queue() = 0;
#endif
- virtual size_t escape_string(
- char *to,
- const char *from,
- size_t from_length
- ) = 0;
+ virtual size_t escape_string(char *to, const char *from,
+ size_t from_length) = 0;
virtual bool have_lock_table_list() = 0;
- virtual int append_lock_tables(
- spider_string *str
- ) = 0;
- virtual int append_unlock_tables(
- spider_string *str
- ) = 0;
+ virtual int append_lock_tables(spider_string *str) = 0;
+ virtual int append_unlock_tables(spider_string *str) = 0;
virtual uint get_lock_table_hash_count() = 0;
virtual void reset_lock_table_hash() = 0;
virtual uint get_opened_handler_count() = 0;
virtual void reset_opened_handler() = 0;
- virtual void set_dup_key_idx(
- ha_spider *spider,
- int link_idx
- ) = 0;
+ virtual void set_dup_key_idx(ha_spider *spider, int link_idx) = 0;
virtual bool cmp_request_key_to_snd(
- st_spider_db_request_key *request_key
- ) = 0;
+ st_spider_db_request_key *request_key) = 0;
virtual uint limit_mode();
};
-class spider_db_share
-{
-protected:
- uint mem_calc_id;
- const char *mem_calc_func_name;
- const char *mem_calc_file_name;
- ulong mem_calc_line_no;
-public:
+class spider_db_share {
+ protected:
+ uint mem_calc_id;
+ const char *mem_calc_func_name;
+ const char *mem_calc_file_name;
+ ulong mem_calc_line_no;
+
+ public:
uint dbton_id;
st_spider_share *spider_share;
- spider_db_share(
- st_spider_share *share,
- uint dbton_id
- ) : dbton_id(dbton_id), spider_share(share) {}
+ spider_db_share(st_spider_share *share, uint dbton_id)
+ : dbton_id(dbton_id), spider_share(share) {}
virtual ~spider_db_share() {}
virtual int init() = 0;
- virtual uint get_column_name_length(
- uint field_index
- ) = 0;
- virtual int append_column_name(
- spider_string *str,
- uint field_index
- ) = 0;
- virtual int append_column_name_with_alias(
- spider_string *str,
- uint field_index,
- const char *alias,
- uint alias_length
- ) = 0;
+ virtual uint get_column_name_length(uint field_index) = 0;
+ virtual int append_column_name(spider_string *str, uint field_index) = 0;
+ virtual int append_column_name_with_alias(spider_string *str,
+ uint field_index, const char *alias,
+ uint alias_length) = 0;
virtual bool need_change_db_table_name() = 0;
#ifdef SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
- virtual int discover_table_structure(
- SPIDER_TRX *trx,
- SPIDER_SHARE *spider_share,
- spider_string *str
- ) = 0;
+ virtual int discover_table_structure(SPIDER_TRX *trx,
+ SPIDER_SHARE *spider_share,
+ spider_string *str) = 0;
#endif
#ifdef HA_HAS_CHECKSUM_EXTENDED
virtual bool checksum_support();
#endif
};
-class spider_db_handler
-{
-protected:
- uint mem_calc_id;
- const char *mem_calc_func_name;
- const char *mem_calc_file_name;
- ulong mem_calc_line_no;
-public:
+class spider_db_handler {
+ protected:
+ uint mem_calc_id;
+ const char *mem_calc_func_name;
+ const char *mem_calc_file_name;
+ ulong mem_calc_line_no;
+
+ public:
uint dbton_id;
ha_spider *spider;
spider_db_share *db_share;
@@ -1354,51 +873,29 @@ public:
#endif
bool strict_group_by;
bool no_where_cond;
- spider_db_handler(ha_spider *spider, spider_db_share *db_share) :
- dbton_id(db_share->dbton_id), spider(spider), db_share(db_share),
- first_link_idx(-1) {}
+ spider_db_handler(ha_spider *spider, spider_db_share *db_share)
+ : dbton_id(db_share->dbton_id),
+ spider(spider),
+ db_share(db_share),
+ first_link_idx(-1) {}
virtual ~spider_db_handler() {}
virtual int init() = 0;
- virtual int append_index_hint(
- spider_string *str,
- int link_idx,
- ulong sql_type
- ) = 0;
- virtual int append_table_name_with_adjusting(
- spider_string *str,
- int link_idx,
- ulong sql_type
- ) = 0;
- virtual int append_tmp_table_and_sql_for_bka(
- const key_range *start_key
- ) = 0;
+ virtual int append_index_hint(spider_string *str, int link_idx,
+ ulong sql_type) = 0;
+ virtual int append_table_name_with_adjusting(spider_string *str, int link_idx,
+ ulong sql_type) = 0;
+ virtual int append_tmp_table_and_sql_for_bka(const key_range *start_key) = 0;
virtual int reuse_tmp_table_and_sql_for_bka() = 0;
virtual int append_union_table_and_sql_for_bka(
- const key_range *start_key
- ) = 0;
+ const key_range *start_key) = 0;
virtual int reuse_union_table_and_sql_for_bka() = 0;
- virtual int append_insert_for_recovery(
- ulong sql_type,
- int link_idx
- ) = 0;
- virtual int append_update(
- const TABLE *table,
- my_ptrdiff_t ptr_diff
- ) = 0;
- virtual int append_update(
- const TABLE *table,
- my_ptrdiff_t ptr_diff,
- int link_idx
- ) = 0;
- virtual int append_delete(
- const TABLE *table,
- my_ptrdiff_t ptr_diff
- ) = 0;
- virtual int append_delete(
- const TABLE *table,
- my_ptrdiff_t ptr_diff,
- int link_idx
- ) = 0;
+ virtual int append_insert_for_recovery(ulong sql_type, int link_idx) = 0;
+ virtual int append_update(const TABLE *table, my_ptrdiff_t ptr_diff) = 0;
+ virtual int append_update(const TABLE *table, my_ptrdiff_t ptr_diff,
+ int link_idx) = 0;
+ virtual int append_delete(const TABLE *table, my_ptrdiff_t ptr_diff) = 0;
+ virtual int append_delete(const TABLE *table, my_ptrdiff_t ptr_diff,
+ int link_idx) = 0;
virtual int append_insert_part() = 0;
virtual int append_update_part() = 0;
virtual int append_delete_part() = 0;
@@ -1410,537 +907,238 @@ public:
virtual int append_update_set_part() = 0;
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
virtual int append_direct_update_set_part() = 0;
- virtual int append_dup_update_pushdown_part(
- const char *alias,
- uint alias_length
- ) = 0;
- virtual int append_update_columns_part(
- const char *alias,
- uint alias_length
- ) = 0;
+ virtual int append_dup_update_pushdown_part(const char *alias,
+ uint alias_length) = 0;
+ virtual int append_update_columns_part(const char *alias,
+ uint alias_length) = 0;
virtual int check_update_columns_part() = 0;
#endif
- virtual int append_select_part(
- ulong sql_type
- ) = 0;
- virtual int append_select(
- spider_string *str,
- ulong sql_type
- ) = 0;
- virtual int append_table_select_part(
- ulong sql_type
- ) = 0;
- virtual int append_key_select_part(
- ulong sql_type,
- uint idx
- ) = 0;
- virtual int append_minimum_select_part(
- ulong sql_type
- ) = 0;
- virtual int append_hint_after_table_part(
- ulong sql_type
- ) = 0;
- virtual void set_where_pos(
- ulong sql_type
- ) = 0;
- virtual void set_where_to_pos(
- ulong sql_type
- ) = 0;
- virtual int check_item_type(
- Item *item
- ) = 0;
- virtual int append_values_connector_part(
- ulong sql_type
- ) = 0;
- virtual int append_values_terminator_part(
- ulong sql_type
- ) = 0;
- virtual int append_union_table_connector_part(
- ulong sql_type
- ) = 0;
- virtual int append_union_table_terminator_part(
- ulong sql_type
- ) = 0;
- virtual int append_key_column_values_part(
- const key_range *start_key,
- ulong sql_type
- ) = 0;
+ virtual int append_select_part(ulong sql_type) = 0;
+ virtual int append_select(spider_string *str, ulong sql_type) = 0;
+ virtual int append_table_select_part(ulong sql_type) = 0;
+ virtual int append_key_select_part(ulong sql_type, uint idx) = 0;
+ virtual int append_minimum_select_part(ulong sql_type) = 0;
+ virtual int append_hint_after_table_part(ulong sql_type) = 0;
+ virtual void set_where_pos(ulong sql_type) = 0;
+ virtual void set_where_to_pos(ulong sql_type) = 0;
+ virtual int check_item_type(Item *item) = 0;
+ virtual int append_values_connector_part(ulong sql_type) = 0;
+ virtual int append_values_terminator_part(ulong sql_type) = 0;
+ virtual int append_union_table_connector_part(ulong sql_type) = 0;
+ virtual int append_union_table_terminator_part(ulong sql_type) = 0;
+ virtual int append_key_column_values_part(const key_range *start_key,
+ ulong sql_type) = 0;
virtual int append_key_column_values_with_name_part(
- const key_range *start_key,
- ulong sql_type
- ) = 0;
- virtual int append_key_where_part(
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type
- ) = 0;
- virtual int append_is_null_part(
- ulong sql_type,
- KEY_PART_INFO *key_part,
- const key_range *key,
- const uchar **ptr,
- bool key_eq,
- bool tgt_final
- ) = 0;
- virtual int append_where_terminator_part(
- ulong sql_type,
- bool set_order,
- int key_count
- ) = 0;
- virtual int append_match_where_part(
- ulong sql_type
- ) = 0;
- virtual int append_condition_part(
- const char *alias,
- uint alias_length,
- ulong sql_type,
- bool test_flg
- ) = 0;
- virtual int append_match_select_part(
- ulong sql_type,
- const char *alias,
- uint alias_length
- ) = 0;
+ const key_range *start_key, ulong sql_type) = 0;
+ virtual int append_key_where_part(const key_range *start_key,
+ const key_range *end_key,
+ ulong sql_type) = 0;
+ virtual int append_is_null_part(ulong sql_type, KEY_PART_INFO *key_part,
+ const key_range *key, const uchar **ptr,
+ bool key_eq, bool tgt_final) = 0;
+ virtual int append_where_terminator_part(ulong sql_type, bool set_order,
+ int key_count) = 0;
+ virtual int append_match_where_part(ulong sql_type) = 0;
+ virtual int append_condition_part(const char *alias, uint alias_length,
+ ulong sql_type, bool test_flg) = 0;
+ virtual int append_match_select_part(ulong sql_type, const char *alias,
+ uint alias_length) = 0;
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- virtual int append_sum_select_part(
- ulong sql_type,
- const char *alias,
- uint alias_length
- ) = 0;
+ virtual int append_sum_select_part(ulong sql_type, const char *alias,
+ uint alias_length) = 0;
#endif
- virtual void set_order_pos(
- ulong sql_type
- ) = 0;
- virtual void set_order_to_pos(
- ulong sql_type
- ) = 0;
+ virtual void set_order_pos(ulong sql_type) = 0;
+ virtual void set_order_to_pos(ulong sql_type) = 0;
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- virtual int append_group_by_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- ) = 0;
+ virtual int append_group_by_part(const char *alias, uint alias_length,
+ ulong sql_type) = 0;
#endif
- virtual int append_key_order_for_merge_with_alias_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- ) = 0;
+ virtual int append_key_order_for_merge_with_alias_part(const char *alias,
+ uint alias_length,
+ ulong sql_type) = 0;
virtual int append_key_order_for_direct_order_limit_with_alias_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- ) = 0;
- virtual int append_key_order_with_alias_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- ) = 0;
- virtual int append_limit_part(
- longlong offset,
- longlong limit,
- ulong sql_type
- ) = 0;
- virtual int reappend_limit_part(
- longlong offset,
- longlong limit,
- ulong sql_type
- ) = 0;
- virtual int append_select_lock_part(
- ulong sql_type
- ) = 0;
- virtual int append_union_all_start_part(
- ulong sql_type
- ) = 0;
- virtual int append_union_all_part(
- ulong sql_type
- ) = 0;
- virtual int append_union_all_end_part(
- ulong sql_type
- ) = 0;
- virtual int append_multi_range_cnt_part(
- ulong sql_type,
- uint multi_range_cnt,
- bool with_comma
- ) = 0;
- virtual int append_multi_range_cnt_with_name_part(
- ulong sql_type,
- uint multi_range_cnt
- ) = 0;
- virtual int append_open_handler_part(
- ulong sql_type,
- uint handler_id,
- SPIDER_CONN *conn,
- int link_idx
- ) = 0;
- virtual int append_close_handler_part(
- ulong sql_type,
- int link_idx
- ) = 0;
- virtual int append_insert_terminator_part(
- ulong sql_type
- ) = 0;
- virtual int append_insert_values_part(
- ulong sql_type
- ) = 0;
- virtual int append_into_part(
- ulong sql_type
- ) = 0;
- virtual void set_insert_to_pos(
- ulong sql_type
- ) = 0;
- virtual int append_from_part(
- ulong sql_type,
- int link_idx
- ) = 0;
- virtual int append_delete_all_rows_part(
- ulong sql_type
- ) = 0;
- virtual int append_explain_select_part(
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type,
- int link_idx
- ) = 0;
- virtual bool is_sole_projection_field(
- uint16 field_index
- ) = 0;
- virtual bool is_bulk_insert_exec_period(
- bool bulk_end
- ) = 0;
- virtual bool sql_is_filled_up(
- ulong sql_type
- ) = 0;
- virtual bool sql_is_empty(
- ulong sql_type
- ) = 0;
+ const char *alias, uint alias_length, ulong sql_type) = 0;
+ virtual int append_key_order_with_alias_part(const char *alias,
+ uint alias_length,
+ ulong sql_type) = 0;
+ virtual int append_limit_part(longlong offset, longlong limit,
+ ulong sql_type) = 0;
+ virtual int reappend_limit_part(longlong offset, longlong limit,
+ ulong sql_type) = 0;
+ virtual int append_select_lock_part(ulong sql_type) = 0;
+ virtual int append_union_all_start_part(ulong sql_type) = 0;
+ virtual int append_union_all_part(ulong sql_type) = 0;
+ virtual int append_union_all_end_part(ulong sql_type) = 0;
+ virtual int append_multi_range_cnt_part(ulong sql_type, uint multi_range_cnt,
+ bool with_comma) = 0;
+ virtual int append_multi_range_cnt_with_name_part(ulong sql_type,
+ uint multi_range_cnt) = 0;
+ virtual int append_open_handler_part(ulong sql_type, uint handler_id,
+ SPIDER_CONN *conn, int link_idx) = 0;
+ virtual int append_close_handler_part(ulong sql_type, int link_idx) = 0;
+ virtual int append_insert_terminator_part(ulong sql_type) = 0;
+ virtual int append_insert_values_part(ulong sql_type) = 0;
+ virtual int append_into_part(ulong sql_type) = 0;
+ virtual void set_insert_to_pos(ulong sql_type) = 0;
+ virtual int append_from_part(ulong sql_type, int link_idx) = 0;
+ virtual int append_delete_all_rows_part(ulong sql_type) = 0;
+ virtual int append_explain_select_part(const key_range *start_key,
+ const key_range *end_key,
+ ulong sql_type, int link_idx) = 0;
+ virtual bool is_sole_projection_field(uint16 field_index) = 0;
+ virtual bool is_bulk_insert_exec_period(bool bulk_end) = 0;
+ virtual bool sql_is_filled_up(ulong sql_type) = 0;
+ virtual bool sql_is_empty(ulong sql_type) = 0;
virtual bool support_multi_split_read() = 0;
virtual bool support_bulk_update() = 0;
virtual int bulk_tmp_table_insert() = 0;
- virtual int bulk_tmp_table_insert(
- int link_idx
- ) = 0;
+ virtual int bulk_tmp_table_insert(int link_idx) = 0;
virtual int bulk_tmp_table_end_bulk_insert() = 0;
virtual int bulk_tmp_table_rnd_init() = 0;
virtual int bulk_tmp_table_rnd_next() = 0;
virtual int bulk_tmp_table_rnd_end() = 0;
- virtual bool need_copy_for_update(
- int link_idx
- ) = 0;
+ virtual bool need_copy_for_update(int link_idx) = 0;
virtual bool bulk_tmp_table_created() = 0;
virtual int mk_bulk_tmp_table_and_bulk_start() = 0;
virtual void rm_bulk_tmp_table() = 0;
- virtual int insert_lock_tables_list(
- SPIDER_CONN *conn,
- int link_idx
- ) = 0;
- virtual int append_lock_tables_list(
- SPIDER_CONN *conn,
- int link_idx,
- int *appended
- ) = 0;
- virtual int realloc_sql(
- ulong *realloced
- ) = 0;
- virtual int reset_sql(
- ulong sql_type
- ) = 0;
+ virtual int insert_lock_tables_list(SPIDER_CONN *conn, int link_idx) = 0;
+ virtual int append_lock_tables_list(SPIDER_CONN *conn, int link_idx,
+ int *appended) = 0;
+ virtual int realloc_sql(ulong *realloced) = 0;
+ virtual int reset_sql(ulong sql_type) = 0;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- virtual int reset_keys(
- ulong sql_type
- ) = 0;
- virtual int reset_upds(
- ulong sql_type
- ) = 0;
- virtual int reset_strs(
- ulong sql_type
- ) = 0;
- virtual int reset_strs_pos(
- ulong sql_type
- ) = 0;
- virtual int push_back_upds(
- SPIDER_HS_STRING_REF &info
- ) = 0;
+ virtual int reset_keys(ulong sql_type) = 0;
+ virtual int reset_upds(ulong sql_type) = 0;
+ virtual int reset_strs(ulong sql_type) = 0;
+ virtual int reset_strs_pos(ulong sql_type) = 0;
+ virtual int push_back_upds(SPIDER_HS_STRING_REF &info) = 0;
#endif
- virtual bool need_lock_before_set_sql_for_exec(
- ulong sql_type
- ) = 0;
+ virtual bool need_lock_before_set_sql_for_exec(ulong sql_type) = 0;
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- virtual int set_sql_for_exec(
- ulong sql_type,
- int link_idx,
- SPIDER_LINK_IDX_CHAIN *link_idx_chain
- ) = 0;
+ virtual int set_sql_for_exec(ulong sql_type, int link_idx,
+ SPIDER_LINK_IDX_CHAIN *link_idx_chain) = 0;
#endif
- virtual int set_sql_for_exec(
- ulong sql_type,
- int link_idx
- ) = 0;
- virtual int set_sql_for_exec(
- spider_db_copy_table *tgt_ct,
- ulong sql_type
- ) = 0;
- virtual int execute_sql(
- ulong sql_type,
- SPIDER_CONN *conn,
- int quick_mode,
- int *need_mon
- ) = 0;
+ virtual int set_sql_for_exec(ulong sql_type, int link_idx) = 0;
+ virtual int set_sql_for_exec(spider_db_copy_table *tgt_ct,
+ ulong sql_type) = 0;
+ virtual int execute_sql(ulong sql_type, SPIDER_CONN *conn, int quick_mode,
+ int *need_mon) = 0;
virtual int reset() = 0;
- virtual int sts_mode_exchange(
- int sts_mode
- ) = 0;
- virtual int show_table_status(
- int link_idx,
- int sts_mode,
- uint flag
- ) = 0;
- virtual int crd_mode_exchange(
- int crd_mode
- ) = 0;
- virtual int show_index(
- int link_idx,
- int crd_mode
- ) = 0;
- virtual int show_records(
- int link_idx
- ) = 0;
+ virtual int sts_mode_exchange(int sts_mode) = 0;
+ virtual int show_table_status(int link_idx, int sts_mode, uint flag) = 0;
+ virtual int crd_mode_exchange(int crd_mode) = 0;
+ virtual int show_index(int link_idx, int crd_mode) = 0;
+ virtual int show_records(int link_idx) = 0;
#ifdef HA_HAS_CHECKSUM_EXTENDED
- virtual int checksum_table(
- int link_idx
- );
+ virtual int checksum_table(int link_idx);
#endif
- virtual int show_last_insert_id(
- int link_idx,
- ulonglong &last_insert_id
- ) = 0;
- virtual ha_rows explain_select(
- const key_range *start_key,
- const key_range *end_key,
- int link_idx
- ) = 0;
- virtual int lock_tables(
- int link_idx
- ) = 0;
- virtual int unlock_tables(
- int link_idx
- ) = 0;
- virtual int disable_keys(
- SPIDER_CONN *conn,
- int link_idx
- ) = 0;
- virtual int enable_keys(
- SPIDER_CONN *conn,
- int link_idx
- ) = 0;
- virtual int check_table(
- SPIDER_CONN *conn,
- int link_idx,
- HA_CHECK_OPT* check_opt
- ) = 0;
- virtual int repair_table(
- SPIDER_CONN *conn,
- int link_idx,
- HA_CHECK_OPT* check_opt
- ) = 0;
- virtual int analyze_table(
- SPIDER_CONN *conn,
- int link_idx
- ) = 0;
- virtual int optimize_table(
- SPIDER_CONN *conn,
- int link_idx
- ) = 0;
- virtual int flush_tables(
- SPIDER_CONN *conn,
- int link_idx,
- bool lock
- ) = 0;
- virtual int flush_logs(
- SPIDER_CONN *conn,
- int link_idx
- ) = 0;
- virtual int insert_opened_handler(
- SPIDER_CONN *conn,
- int link_idx
- ) = 0;
- virtual int delete_opened_handler(
- SPIDER_CONN *conn,
- int link_idx
- ) = 0;
- virtual int sync_from_clone_source(
- spider_db_handler *dbton_hdl
- ) = 0;
- virtual bool support_use_handler(
- int use_handler
- ) = 0;
- virtual bool minimum_select_bit_is_set(
- uint field_index
- ) = 0;
- virtual void copy_minimum_select_bitmap(
- uchar *bitmap
- ) = 0;
+ virtual int show_last_insert_id(int link_idx, ulonglong &last_insert_id) = 0;
+ virtual ha_rows explain_select(const key_range *start_key,
+ const key_range *end_key, int link_idx) = 0;
+ virtual int lock_tables(int link_idx) = 0;
+ virtual int unlock_tables(int link_idx) = 0;
+ virtual int disable_keys(SPIDER_CONN *conn, int link_idx) = 0;
+ virtual int enable_keys(SPIDER_CONN *conn, int link_idx) = 0;
+ virtual int check_table(SPIDER_CONN *conn, int link_idx,
+ HA_CHECK_OPT *check_opt) = 0;
+ virtual int repair_table(SPIDER_CONN *conn, int link_idx,
+ HA_CHECK_OPT *check_opt) = 0;
+ virtual int analyze_table(SPIDER_CONN *conn, int link_idx) = 0;
+ virtual int optimize_table(SPIDER_CONN *conn, int link_idx) = 0;
+ virtual int flush_tables(SPIDER_CONN *conn, int link_idx, bool lock) = 0;
+ virtual int flush_logs(SPIDER_CONN *conn, int link_idx) = 0;
+ virtual int insert_opened_handler(SPIDER_CONN *conn, int link_idx) = 0;
+ virtual int delete_opened_handler(SPIDER_CONN *conn, int link_idx) = 0;
+ virtual int sync_from_clone_source(spider_db_handler *dbton_hdl) = 0;
+ virtual bool support_use_handler(int use_handler) = 0;
+ virtual bool minimum_select_bit_is_set(uint field_index) = 0;
+ virtual void copy_minimum_select_bitmap(uchar *bitmap) = 0;
virtual int init_union_table_name_pos() = 0;
virtual int set_union_table_name_pos() = 0;
- virtual int reset_union_table_name(
- spider_string *str,
- int link_idx,
- ulong sql_type
- ) = 0;
+ virtual int reset_union_table_name(spider_string *str, int link_idx,
+ ulong sql_type) = 0;
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- virtual int append_from_and_tables_part(
- spider_fields *fields,
- ulong sql_type
- ) = 0;
- virtual int reappend_tables_part(
- spider_fields *fields,
- ulong sql_type
- ) = 0;
- virtual int append_where_part(
- ulong sql_type
- ) = 0;
- virtual int append_having_part(
- ulong sql_type
- ) = 0;
- virtual int append_item_type_part(
- Item *item,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- ) = 0;
- virtual int append_list_item_select_part(
- List<Item> *select,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- ) = 0;
- virtual int append_group_by_part(
- ORDER *order,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- ) = 0;
- virtual int append_order_by_part(
- ORDER *order,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- ) = 0;
+ virtual int append_from_and_tables_part(spider_fields *fields,
+ ulong sql_type) = 0;
+ virtual int reappend_tables_part(spider_fields *fields, ulong sql_type) = 0;
+ virtual int append_where_part(ulong sql_type) = 0;
+ virtual int append_having_part(ulong sql_type) = 0;
+ virtual int append_item_type_part(Item *item, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields, ulong sql_type) = 0;
+ virtual int append_list_item_select_part(List<Item> *select,
+ const char *alias, uint alias_length,
+ bool use_fields,
+ spider_fields *fields,
+ ulong sql_type) = 0;
+ virtual int append_group_by_part(ORDER *order, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields, ulong sql_type) = 0;
+ virtual int append_order_by_part(ORDER *order, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields, ulong sql_type) = 0;
#endif
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- virtual bool check_direct_update(
- st_select_lex *select_lex,
- longlong select_limit,
- longlong offset_limit
- );
- virtual bool check_direct_delete(
- st_select_lex *select_lex,
- longlong select_limit,
- longlong offset_limit
- );
+ virtual bool check_direct_update(st_select_lex *select_lex,
+ longlong select_limit,
+ longlong offset_limit);
+ virtual bool check_direct_delete(st_select_lex *select_lex,
+ longlong select_limit,
+ longlong offset_limit);
#endif
};
-class spider_db_copy_table
-{
-public:
+class spider_db_copy_table {
+ public:
uint dbton_id;
spider_db_share *db_share;
- spider_db_copy_table(spider_db_share *db_share) :
- dbton_id(db_share->dbton_id), db_share(db_share) {}
+ spider_db_copy_table(spider_db_share *db_share)
+ : dbton_id(db_share->dbton_id), db_share(db_share) {}
virtual ~spider_db_copy_table() {}
virtual int init() = 0;
- virtual void set_sql_charset(
- CHARSET_INFO *cs
- ) = 0;
+ virtual void set_sql_charset(CHARSET_INFO *cs) = 0;
virtual int append_select_str() = 0;
- virtual int append_insert_str(
- int insert_flg
- ) = 0;
- virtual int append_table_columns(
- TABLE_SHARE *table_share
- ) = 0;
+ virtual int append_insert_str(int insert_flg) = 0;
+ virtual int append_table_columns(TABLE_SHARE *table_share) = 0;
virtual int append_from_str() = 0;
- virtual int append_table_name(
- int link_idx
- ) = 0;
+ virtual int append_table_name(int link_idx) = 0;
virtual void set_sql_pos() = 0;
virtual void set_sql_to_pos() = 0;
- virtual int append_copy_where(
- spider_db_copy_table *source_ct,
- KEY *key_info,
- ulong *last_row_pos,
- ulong *last_lengths
- ) = 0;
- virtual int append_key_order_str(
- KEY *key_info,
- int start_pos,
- bool desc_flg
- ) = 0;
- virtual int append_limit(
- longlong offset,
- longlong limit
- ) = 0;
+ virtual int append_copy_where(spider_db_copy_table *source_ct, KEY *key_info,
+ ulong *last_row_pos, ulong *last_lengths) = 0;
+ virtual int append_key_order_str(KEY *key_info, int start_pos,
+ bool desc_flg) = 0;
+ virtual int append_limit(longlong offset, longlong limit) = 0;
virtual int append_into_str() = 0;
virtual int append_open_paren_str() = 0;
virtual int append_values_str() = 0;
- virtual int append_select_lock_str(
- int lock_mode
- ) = 0;
- virtual int exec_query(
- SPIDER_CONN *conn,
- int quick_mode,
- int *need_mon
- ) = 0;
- virtual int copy_rows(
- TABLE *table,
- SPIDER_DB_ROW *row,
- ulong **last_row_pos,
- ulong **last_lengths
- ) = 0;
- virtual int copy_rows(
- TABLE *table,
- SPIDER_DB_ROW *row
- ) = 0;
+ virtual int append_select_lock_str(int lock_mode) = 0;
+ virtual int exec_query(SPIDER_CONN *conn, int quick_mode, int *need_mon) = 0;
+ virtual int copy_rows(TABLE *table, SPIDER_DB_ROW *row, ulong **last_row_pos,
+ ulong **last_lengths) = 0;
+ virtual int copy_rows(TABLE *table, SPIDER_DB_ROW *row) = 0;
virtual int append_insert_terminator() = 0;
- virtual int copy_insert_values(
- spider_db_copy_table *source_ct
- ) = 0;
+ virtual int copy_insert_values(spider_db_copy_table *source_ct) = 0;
};
-enum spider_db_access_type
-{
+enum spider_db_access_type {
SPIDER_DB_ACCESS_TYPE_SQL,
SPIDER_DB_ACCESS_TYPE_NOSQL
};
-#define SPIDER_MATURITY_UNKNOWN 0
+#define SPIDER_MATURITY_UNKNOWN 0
#define SPIDER_MATURITY_EXPERIMENTAL 1
-#define SPIDER_MATURITY_ALPHA 2
-#define SPIDER_MATURITY_BETA 3
-#define SPIDER_MATURITY_GAMMA 4
-#define SPIDER_MATURITY_STABLE 5
-
-static const LEX_CSTRING maturity_name[] =
-{
- { STRING_WITH_LEN("Unknown") },
- { STRING_WITH_LEN("Experimental") },
- { STRING_WITH_LEN("Alpha") },
- { STRING_WITH_LEN("Beta") },
- { STRING_WITH_LEN("Gamma") },
- { STRING_WITH_LEN("Stable") }
-};
+#define SPIDER_MATURITY_ALPHA 2
+#define SPIDER_MATURITY_BETA 3
+#define SPIDER_MATURITY_GAMMA 4
+#define SPIDER_MATURITY_STABLE 5
-typedef struct st_spider_dbton
-{
+static const LEX_CSTRING maturity_name[] = {
+ {STRING_WITH_LEN("Unknown")}, {STRING_WITH_LEN("Experimental")},
+ {STRING_WITH_LEN("Alpha")}, {STRING_WITH_LEN("Beta")},
+ {STRING_WITH_LEN("Gamma")}, {STRING_WITH_LEN("Stable")}};
+
+typedef struct st_spider_dbton {
uint dbton_id;
const char *wrapper;
enum spider_db_access_type db_access_type;
@@ -1948,9 +1146,8 @@ typedef struct st_spider_dbton
int (*deinit)();
spider_db_share *(*create_db_share)(st_spider_share *share);
spider_db_handler *(*create_db_handler)(ha_spider *spider,
- spider_db_share *db_share);
- spider_db_copy_table *(*create_db_copy_table)(
- spider_db_share *db_share);
+ spider_db_share *db_share);
+ spider_db_copy_table *(*create_db_copy_table)(spider_db_share *db_share);
SPIDER_DB_CONN *(*create_db_conn)(SPIDER_CONN *conn);
bool (*support_direct_join)();
spider_db_util *db_util;
@@ -1959,164 +1156,160 @@ typedef struct st_spider_dbton
unsigned int maturity;
} SPIDER_DBTON;
-typedef struct st_spider_position
-{
- SPIDER_DB_ROW *row;
- uint pos_mode;
- bool use_position;
- bool mrr_with_cnt;
+typedef struct st_spider_position {
+ SPIDER_DB_ROW *row;
+ uint pos_mode;
+ bool use_position;
+ bool mrr_with_cnt;
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- bool direct_aggregate;
+ bool direct_aggregate;
#endif
- uint sql_kind;
- uchar *position_bitmap;
- st_spider_ft_info *ft_first;
- st_spider_ft_info *ft_current;
- my_off_t tmp_tbl_pos;
- SPIDER_RESULT *result;
+ uint sql_kind;
+ uchar *position_bitmap;
+ st_spider_ft_info *ft_first;
+ st_spider_ft_info *ft_current;
+ my_off_t tmp_tbl_pos;
+ SPIDER_RESULT *result;
} SPIDER_POSITION;
-typedef struct st_spider_condition
-{
- COND *cond;
- st_spider_condition *next;
+typedef struct st_spider_condition {
+ COND *cond;
+ st_spider_condition *next;
} SPIDER_CONDITION;
-typedef struct st_spider_result
-{
- uint dbton_id;
- SPIDER_DB_RESULT *result;
+typedef struct st_spider_result {
+ uint dbton_id;
+ SPIDER_DB_RESULT *result;
#ifndef WITHOUT_SPIDER_BG_SEARCH
volatile
#endif
- st_spider_result *prev;
+ st_spider_result *prev;
#ifndef WITHOUT_SPIDER_BG_SEARCH
volatile
#endif
- st_spider_result *next;
- SPIDER_POSITION *first_position; /* for quick mode */
- int pos_page_size; /* for quick mode */
- longlong record_num;
- bool finish_flg;
- bool use_position;
- bool first_pos_use_position;
- bool tmp_tbl_use_position;
- uint field_count; /* for quick mode */
- TABLE *result_tmp_tbl;
- TMP_TABLE_PARAM result_tmp_tbl_prm;
- THD *result_tmp_tbl_thd;
- uint result_tmp_tbl_inited;
- SPIDER_DB_ROW *tmp_tbl_row;
+ st_spider_result *next;
+ SPIDER_POSITION *first_position; /* for quick mode */
+ int pos_page_size; /* for quick mode */
+ longlong record_num;
+ bool finish_flg;
+ bool use_position;
+ bool first_pos_use_position;
+ bool tmp_tbl_use_position;
+ uint field_count; /* for quick mode */
+ TABLE *result_tmp_tbl;
+ TMP_TABLE_PARAM result_tmp_tbl_prm;
+ THD *result_tmp_tbl_thd;
+ uint result_tmp_tbl_inited;
+ SPIDER_DB_ROW *tmp_tbl_row;
} SPIDER_RESULT;
-typedef struct st_spider_result_list
-{
+typedef struct st_spider_result_list {
#ifndef WITHOUT_SPIDER_BG_SEARCH
volatile
#endif
- SPIDER_RESULT *first;
+ SPIDER_RESULT *first;
#ifndef WITHOUT_SPIDER_BG_SEARCH
volatile
#endif
- SPIDER_RESULT *last;
+ SPIDER_RESULT *last;
#ifndef WITHOUT_SPIDER_BG_SEARCH
volatile
#endif
- SPIDER_RESULT *current;
- KEY *key_info;
- int key_order;
+ SPIDER_RESULT *current;
+ KEY *key_info;
+ int key_order;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- ulonglong hs_upd_rows;
- SPIDER_DB_RESULT *hs_result;
+ ulonglong hs_upd_rows;
+ SPIDER_DB_RESULT *hs_result;
SPIDER_DB_RESULT_BUFFER *hs_result_buf;
- bool hs_has_result;
- SPIDER_DB_CONN *hs_conn;
+ bool hs_has_result;
+ SPIDER_DB_CONN *hs_conn;
#endif
#ifdef HA_CAN_BULK_ACCESS
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- uchar *hs_r_bulk_open_index;
- uchar *hs_w_bulk_open_index;
+ uchar *hs_r_bulk_open_index;
+ uchar *hs_w_bulk_open_index;
#endif
#endif
- spider_string *sqls;
- int ha_read_kind;
- bool have_sql_kind_backup;
- uint *sql_kind_backup;
- uint sql_kinds_backup;
- bool use_union;
- bool use_both_key;
- const key_range *end_key;
- spider_string *insert_sqls;
- spider_string *update_sqls;
- TABLE **upd_tmp_tbls;
- TMP_TABLE_PARAM *upd_tmp_tbl_prms;
- bool tmp_table_join;
- uchar *tmp_table_join_first;
- bool tmp_tables_created;
- uchar *tmp_table_created;
- bool tmp_table_join_break_after_get_next;
- key_part_map tmp_table_join_key_part_map;
- spider_string *tmp_sqls;
- bool tmp_reuse_sql;
- bool sorted;
- bool desc_flg;
- longlong current_row_num;
- longlong record_num;
- bool finish_flg;
- longlong limit_num;
- longlong internal_offset;
- longlong internal_limit;
- longlong split_read;
- int multi_split_read;
- int max_order;
- int quick_mode;
- longlong quick_page_size;
- longlong quick_page_byte;
- int low_mem_read;
- int bulk_update_mode;
- int bulk_update_size;
- spider_bulk_upd_start bulk_update_start;
- bool check_direct_order_limit;
- bool direct_order_limit;
+ spider_string *sqls;
+ int ha_read_kind;
+ bool have_sql_kind_backup;
+ uint *sql_kind_backup;
+ uint sql_kinds_backup;
+ bool use_union;
+ bool use_both_key;
+ const key_range *end_key;
+ spider_string *insert_sqls;
+ spider_string *update_sqls;
+ TABLE **upd_tmp_tbls;
+ TMP_TABLE_PARAM *upd_tmp_tbl_prms;
+ bool tmp_table_join;
+ uchar *tmp_table_join_first;
+ bool tmp_tables_created;
+ uchar *tmp_table_created;
+ bool tmp_table_join_break_after_get_next;
+ key_part_map tmp_table_join_key_part_map;
+ spider_string *tmp_sqls;
+ bool tmp_reuse_sql;
+ bool sorted;
+ bool desc_flg;
+ longlong current_row_num;
+ longlong record_num;
+ bool finish_flg;
+ longlong limit_num;
+ longlong internal_offset;
+ longlong internal_limit;
+ longlong split_read;
+ int multi_split_read;
+ int max_order;
+ int quick_mode;
+ longlong quick_page_size;
+ longlong quick_page_byte;
+ int low_mem_read;
+ int bulk_update_mode;
+ int bulk_update_size;
+ spider_bulk_upd_start bulk_update_start;
+ bool check_direct_order_limit;
+ bool direct_order_limit;
/* the limit_offeset, without where condition */
- bool direct_limit_offset;
- bool direct_distinct;
+ bool direct_limit_offset;
+ bool direct_distinct;
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- bool direct_aggregate;
- bool snap_mrr_with_cnt;
- bool snap_direct_aggregate;
- SPIDER_DB_ROW *snap_row;
+ bool direct_aggregate;
+ bool snap_mrr_with_cnt;
+ bool snap_direct_aggregate;
+ SPIDER_DB_ROW *snap_row;
#endif
- bool in_cmp_ref;
- bool set_split_read;
- bool insert_dup_update_pushdown;
- longlong split_read_base;
- double semi_split_read;
- longlong semi_split_read_limit;
- longlong semi_split_read_base;
- longlong first_read;
- longlong second_read;
- int set_split_read_count;
- int *casual_read;
+ bool in_cmp_ref;
+ bool set_split_read;
+ bool insert_dup_update_pushdown;
+ longlong split_read_base;
+ double semi_split_read;
+ longlong semi_split_read_limit;
+ longlong semi_split_read_base;
+ longlong first_read;
+ longlong second_read;
+ int set_split_read_count;
+ int *casual_read;
#ifndef WITHOUT_SPIDER_BG_SEARCH
/* 0:nomal 1:store 2:store end */
volatile
#endif
- int quick_phase;
- bool keyread;
- TABLE *table;
+ int quick_phase;
+ bool keyread;
+ TABLE *table;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- volatile int bgs_error;
- bool bgs_error_with_message;
- char bgs_error_msg[MYSQL_ERRMSG_SIZE];
- volatile bool bgs_working;
+ volatile int bgs_error;
+ bool bgs_error_with_message;
+ char bgs_error_msg[MYSQL_ERRMSG_SIZE];
+ volatile bool bgs_working;
/* 0:not use bg 1:first read 2:second read 3:after second read */
- volatile int bgs_phase;
- volatile longlong bgs_first_read;
- volatile longlong bgs_second_read;
- volatile longlong bgs_split_read;
+ volatile int bgs_phase;
+ volatile longlong bgs_first_read;
+ volatile longlong bgs_second_read;
+ volatile longlong bgs_split_read;
volatile
#endif
- SPIDER_RESULT *bgs_current;
- SPIDER_DB_ROW *tmp_pos_row_first;
+ SPIDER_RESULT *bgs_current;
+ SPIDER_DB_ROW *tmp_pos_row_first;
} SPIDER_RESULT_LIST;
diff --git a/storage/spider/spd_db_mysql.h b/storage/spider/spd_db_mysql.h
index af7b860f3f5..a7bb5dd6277 100644
--- a/storage/spider/spd_db_mysql.h
+++ b/storage/spider/spd_db_mysql.h
@@ -11,193 +11,81 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
-class spider_db_mbase_util: public spider_db_util
-{
-public:
+class spider_db_mbase_util : public spider_db_util {
+ public:
spider_db_mbase_util();
virtual ~spider_db_mbase_util();
- int append_name(
- spider_string *str,
- const char *name,
- uint name_length
- );
- int append_name_with_charset(
- spider_string *str,
- const char *name,
- uint name_length,
- CHARSET_INFO *name_charset
- );
- int append_escaped_name(
- spider_string *str,
- const char *name,
- uint name_length
- );
- int append_escaped_name_with_charset(
- spider_string *str,
- const char *name,
- uint name_length,
- CHARSET_INFO *name_charset
- );
- bool is_name_quote(
- const char head_code
- );
- int append_escaped_name_quote(
- spider_string *str
- );
- int append_column_value(
- ha_spider *spider,
- spider_string *str,
- Field *field,
- const uchar *new_ptr,
- CHARSET_INFO *access_charset
- );
- int append_from_with_alias(
- spider_string *str,
- const char **table_names,
- uint *table_name_lengths,
- const char **table_aliases,
- uint *table_alias_lengths,
- uint table_count,
- int *table_name_pos,
- bool over_write
- );
- int append_trx_isolation(
- spider_string *str,
- int trx_isolation
- );
- int append_autocommit(
- spider_string *str,
- bool autocommit
- );
- int append_sql_log_off(
- spider_string *str,
- bool sql_log_off
- );
- int append_wait_timeout(
- spider_string *str,
- int wait_timeout
- );
- virtual int append_sql_mode_internal(
- spider_string *str,
- sql_mode_t sql_mode
- );
- int append_sql_mode(
- spider_string *str,
- sql_mode_t sql_mode
- );
- int append_time_zone(
- spider_string *str,
- Time_zone *time_zone
- );
- int append_loop_check(
- spider_string *str,
- SPIDER_CONN *conn
- );
- int append_start_transaction(
- spider_string *str
- );
- int append_xa_start(
- spider_string *str,
- XID *xid
- );
- int append_lock_table_head(
- spider_string *str
- );
- int append_lock_table_body(
- spider_string *str,
- const char *db_name,
- uint db_name_length,
- CHARSET_INFO *db_name_charset,
- const char *table_name,
- uint table_name_length,
- CHARSET_INFO *table_name_charset,
- int lock_type
- );
- int append_lock_table_tail(
- spider_string *str
- );
- int append_unlock_table(
- spider_string *str
- );
- int open_item_func(
- Item_func *item_func,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- );
+ int append_name(spider_string *str, const char *name, uint name_length);
+ int append_name_with_charset(spider_string *str, const char *name,
+ uint name_length, CHARSET_INFO *name_charset);
+ int append_escaped_name(spider_string *str, const char *name,
+ uint name_length);
+ int append_escaped_name_with_charset(spider_string *str, const char *name,
+ uint name_length,
+ CHARSET_INFO *name_charset);
+ bool is_name_quote(const char head_code);
+ int append_escaped_name_quote(spider_string *str);
+ int append_column_value(ha_spider *spider, spider_string *str, Field *field,
+ const uchar *new_ptr, CHARSET_INFO *access_charset);
+ int append_from_with_alias(spider_string *str, const char **table_names,
+ uint *table_name_lengths,
+ const char **table_aliases,
+ uint *table_alias_lengths, uint table_count,
+ int *table_name_pos, bool over_write);
+ int append_trx_isolation(spider_string *str, int trx_isolation);
+ int append_autocommit(spider_string *str, bool autocommit);
+ int append_sql_log_off(spider_string *str, bool sql_log_off);
+ int append_wait_timeout(spider_string *str, int wait_timeout);
+ virtual int append_sql_mode_internal(spider_string *str, sql_mode_t sql_mode);
+ int append_sql_mode(spider_string *str, sql_mode_t sql_mode);
+ int append_time_zone(spider_string *str, Time_zone *time_zone);
+ int append_loop_check(spider_string *str, SPIDER_CONN *conn);
+ int append_start_transaction(spider_string *str);
+ int append_xa_start(spider_string *str, XID *xid);
+ int append_lock_table_head(spider_string *str);
+ int append_lock_table_body(spider_string *str, const char *db_name,
+ uint db_name_length, CHARSET_INFO *db_name_charset,
+ const char *table_name, uint table_name_length,
+ CHARSET_INFO *table_name_charset, int lock_type);
+ int append_lock_table_tail(spider_string *str);
+ int append_unlock_table(spider_string *str);
+ int open_item_func(Item_func *item_func, ha_spider *spider,
+ spider_string *str, const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- int open_item_sum_func(
- Item_sum *item_sum,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- );
+ int open_item_sum_func(Item_sum *item_sum, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields);
#endif
- int append_escaped_util(
- spider_string *to,
- String *from
- );
+ int append_escaped_util(spider_string *to, String *from);
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- int append_table(
- ha_spider *spider,
- spider_fields *fields,
- spider_string *str,
- TABLE_LIST *table_list,
- TABLE_LIST **used_table_list,
- uint *current_pos,
- TABLE_LIST **cond_table_list_ptr,
- bool top_down,
- bool first
- );
- int append_tables_top_down(
- ha_spider *spider,
- spider_fields *fields,
- spider_string *str,
- TABLE_LIST *table_list,
- TABLE_LIST **used_table_list,
- uint *current_pos,
- TABLE_LIST **cond_table_list_ptr
- );
- int append_tables_top_down_check(
- TABLE_LIST *table_list,
- TABLE_LIST **used_table_list,
- uint *current_pos
- );
- int append_embedding_tables(
- ha_spider *spider,
- spider_fields *fields,
- spider_string *str,
- TABLE_LIST *table_list,
- TABLE_LIST **used_table_list,
- uint *current_pos,
- TABLE_LIST **cond_table_list_ptr
- );
- int append_from_and_tables(
- ha_spider *spider,
- spider_fields *fields,
- spider_string *str,
- TABLE_LIST *table_list,
- uint table_count
- );
- int reappend_tables(
- spider_fields *fields,
- SPIDER_LINK_IDX_CHAIN *link_idx_chain,
- spider_string *str
- );
- int append_where(
- spider_string *str
- );
- int append_having(
- spider_string *str
- );
+ int append_table(ha_spider *spider, spider_fields *fields, spider_string *str,
+ TABLE_LIST *table_list, TABLE_LIST **used_table_list,
+ uint *current_pos, TABLE_LIST **cond_table_list_ptr,
+ bool top_down, bool first);
+ int append_tables_top_down(ha_spider *spider, spider_fields *fields,
+ spider_string *str, TABLE_LIST *table_list,
+ TABLE_LIST **used_table_list, uint *current_pos,
+ TABLE_LIST **cond_table_list_ptr);
+ int append_tables_top_down_check(TABLE_LIST *table_list,
+ TABLE_LIST **used_table_list,
+ uint *current_pos);
+ int append_embedding_tables(ha_spider *spider, spider_fields *fields,
+ spider_string *str, TABLE_LIST *table_list,
+ TABLE_LIST **used_table_list, uint *current_pos,
+ TABLE_LIST **cond_table_list_ptr);
+ int append_from_and_tables(ha_spider *spider, spider_fields *fields,
+ spider_string *str, TABLE_LIST *table_list,
+ uint table_count);
+ int reappend_tables(spider_fields *fields,
+ SPIDER_LINK_IDX_CHAIN *link_idx_chain,
+ spider_string *str);
+ int append_where(spider_string *str);
+ int append_having(spider_string *str);
#endif
bool tables_on_different_db_are_joinable();
bool socket_has_default_value();
@@ -208,537 +96,299 @@ public:
bool append_charset_name_before_string();
};
-class spider_db_mysql_util: public spider_db_mbase_util
-{
-public:
+class spider_db_mysql_util : public spider_db_mbase_util {
+ public:
spider_db_mysql_util();
~spider_db_mysql_util();
- int append_column_value(
- ha_spider *spider,
- spider_string *str,
- Field *field,
- const uchar *new_ptr,
- CHARSET_INFO *access_charset
- );
+ int append_column_value(ha_spider *spider, spider_string *str, Field *field,
+ const uchar *new_ptr, CHARSET_INFO *access_charset);
};
-class spider_db_mariadb_util: public spider_db_mbase_util
-{
-public:
+class spider_db_mariadb_util : public spider_db_mbase_util {
+ public:
spider_db_mariadb_util();
~spider_db_mariadb_util();
- int append_sql_mode_internal(
- spider_string *str,
- sql_mode_t sql_mode
- );
- int append_column_value(
- ha_spider *spider,
- spider_string *str,
- Field *field,
- const uchar *new_ptr,
- CHARSET_INFO *access_charset
- );
+ int append_sql_mode_internal(spider_string *str, sql_mode_t sql_mode);
+ int append_column_value(ha_spider *spider, spider_string *str, Field *field,
+ const uchar *new_ptr, CHARSET_INFO *access_charset);
};
-class spider_db_mbase_row: public spider_db_row
-{
-public:
- MYSQL_ROW row;
- MYSQL_ROW row_first;
- ulong *lengths;
- ulong *lengths_first;
- uint field_count;
- uint record_size;
- bool cloned;
- spider_db_mbase_row(
- uint dbton_id
- );
+class spider_db_mbase_row : public spider_db_row {
+ public:
+ MYSQL_ROW row;
+ MYSQL_ROW row_first;
+ ulong *lengths;
+ ulong *lengths_first;
+ uint field_count;
+ uint record_size;
+ bool cloned;
+ spider_db_mbase_row(uint dbton_id);
virtual ~spider_db_mbase_row();
- int store_to_field(
- Field *field,
- CHARSET_INFO *access_charset
- );
- int append_to_str(
- spider_string *str
- );
- int append_escaped_to_str(
- spider_string *str,
- uint dbton_id
- );
+ int store_to_field(Field *field, CHARSET_INFO *access_charset);
+ int append_to_str(spider_string *str);
+ int append_escaped_to_str(spider_string *str, uint dbton_id);
void first();
void next();
bool is_null();
int val_int();
double val_real();
- my_decimal *val_decimal(
- my_decimal *decimal_value,
- CHARSET_INFO *access_charset
- );
+ my_decimal *val_decimal(my_decimal *decimal_value,
+ CHARSET_INFO *access_charset);
SPIDER_DB_ROW *clone();
- int store_to_tmp_table(
- TABLE *tmp_table,
- spider_string *str
- );
+ int store_to_tmp_table(TABLE *tmp_table, spider_string *str);
uint get_byte_size();
};
-class spider_db_mysql_row: public spider_db_mbase_row
-{
-public:
+class spider_db_mysql_row : public spider_db_mbase_row {
+ public:
spider_db_mysql_row();
~spider_db_mysql_row();
};
-class spider_db_mariadb_row: public spider_db_mbase_row
-{
-public:
+class spider_db_mariadb_row : public spider_db_mbase_row {
+ public:
spider_db_mariadb_row();
~spider_db_mariadb_row();
};
-class spider_db_mbase_result: public spider_db_result
-{
-public:
- MYSQL_RES *db_result;
+class spider_db_mbase_result : public spider_db_result {
+ public:
+ MYSQL_RES *db_result;
spider_db_mbase_row row;
- MYSQL_ROW_OFFSET first_row;
- int store_error_num;
- spider_db_mbase_result(
- SPIDER_DB_CONN *in_db_conn
- );
+ MYSQL_ROW_OFFSET first_row;
+ int store_error_num;
+ spider_db_mbase_result(SPIDER_DB_CONN *in_db_conn);
virtual ~spider_db_mbase_result();
bool has_result();
void free_result();
SPIDER_DB_ROW *current_row();
SPIDER_DB_ROW *fetch_row();
SPIDER_DB_ROW *fetch_row_from_result_buffer(
- spider_db_result_buffer *spider_res_buf
- );
- SPIDER_DB_ROW *fetch_row_from_tmp_table(
- TABLE *tmp_table
- );
- int fetch_table_status(
- int mode,
- ha_statistics &stat
- );
- int fetch_simple_action(
- uint simple_action,
- uint position,
- void *param
- );
- int fetch_table_records(
- int mode,
- ha_rows &records
- );
+ spider_db_result_buffer *spider_res_buf);
+ SPIDER_DB_ROW *fetch_row_from_tmp_table(TABLE *tmp_table);
+ int fetch_table_status(int mode, ha_statistics &stat);
+ int fetch_simple_action(uint simple_action, uint position, void *param);
+ int fetch_table_records(int mode, ha_rows &records);
#ifdef HA_HAS_CHECKSUM_EXTENDED
- int fetch_table_checksum(
- ha_spider *spider
- );
+ int fetch_table_checksum(ha_spider *spider);
#endif
- int fetch_table_cardinality(
- int mode,
- TABLE *table,
- longlong *cardinality,
- uchar *cardinality_upd,
- int bitmap_size
- );
- int fetch_table_mon_status(
- int &status
- );
- int fetch_show_master_status(
- const char **binlog_file_name,
- const char **binlog_pos
- );
- int fetch_select_binlog_gtid_pos(
- const char **gtid_pos
- );
+ int fetch_table_cardinality(int mode, TABLE *table, longlong *cardinality,
+ uchar *cardinality_upd, int bitmap_size);
+ int fetch_table_mon_status(int &status);
+ int fetch_show_master_status(const char **binlog_file_name,
+ const char **binlog_pos);
+ int fetch_select_binlog_gtid_pos(const char **gtid_pos);
longlong num_rows();
uint num_fields();
- void move_to_pos(
- longlong pos
- );
+ void move_to_pos(longlong pos);
int get_errno();
#ifdef SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
- int fetch_columns_for_discover_table_structure(
- spider_string *str,
- CHARSET_INFO *access_charset
- );
- int fetch_index_for_discover_table_structure(
- spider_string *str,
- CHARSET_INFO *access_charset
- );
- int fetch_table_for_discover_table_structure(
- spider_string *str,
- SPIDER_SHARE *spider_share,
- CHARSET_INFO *access_charset
- );
+ int fetch_columns_for_discover_table_structure(spider_string *str,
+ CHARSET_INFO *access_charset);
+ int fetch_index_for_discover_table_structure(spider_string *str,
+ CHARSET_INFO *access_charset);
+ int fetch_table_for_discover_table_structure(spider_string *str,
+ SPIDER_SHARE *spider_share,
+ CHARSET_INFO *access_charset);
#endif
};
-class spider_db_mysql_result: public spider_db_mbase_result
-{
-public:
- spider_db_mysql_result(
- SPIDER_DB_CONN *in_db_conn
- );
+class spider_db_mysql_result : public spider_db_mbase_result {
+ public:
+ spider_db_mysql_result(SPIDER_DB_CONN *in_db_conn);
~spider_db_mysql_result();
};
-class spider_db_mariadb_result: public spider_db_mbase_result
-{
-public:
- spider_db_mariadb_result(
- SPIDER_DB_CONN *in_db_conn
- );
+class spider_db_mariadb_result : public spider_db_mbase_result {
+ public:
+ spider_db_mariadb_result(SPIDER_DB_CONN *in_db_conn);
~spider_db_mariadb_result();
};
-class spider_db_mbase: public spider_db_conn
-{
-protected:
- int stored_error;
+class spider_db_mbase : public spider_db_conn {
+ protected:
+ int stored_error;
spider_db_mbase_util *spider_db_mbase_utility;
-public:
- MYSQL *db_conn;
- HASH lock_table_hash;
- bool lock_table_hash_inited;
- uint lock_table_hash_id;
- const char *lock_table_hash_func_name;
- const char *lock_table_hash_file_name;
- ulong lock_table_hash_line_no;
- DYNAMIC_ARRAY handler_open_array;
- bool handler_open_array_inited;
- uint handler_open_array_id;
- const char *handler_open_array_func_name;
- const char *handler_open_array_file_name;
- ulong handler_open_array_line_no;
- spider_db_mbase(
- SPIDER_CONN *conn,
- spider_db_mbase_util *spider_db_mbase_utility
- );
+
+ public:
+ MYSQL *db_conn;
+ HASH lock_table_hash;
+ bool lock_table_hash_inited;
+ uint lock_table_hash_id;
+ const char *lock_table_hash_func_name;
+ const char *lock_table_hash_file_name;
+ ulong lock_table_hash_line_no;
+ DYNAMIC_ARRAY handler_open_array;
+ bool handler_open_array_inited;
+ uint handler_open_array_id;
+ const char *handler_open_array_func_name;
+ const char *handler_open_array_file_name;
+ ulong handler_open_array_line_no;
+ spider_db_mbase(SPIDER_CONN *conn,
+ spider_db_mbase_util *spider_db_mbase_utility);
virtual ~spider_db_mbase();
int init();
bool is_connected();
void bg_connect();
- int connect(
- char *tgt_host,
- char *tgt_username,
- char *tgt_password,
- long tgt_port,
- char *tgt_socket,
- char *server_name,
- int connect_retry_count,
- longlong connect_retry_interval
- );
+ int connect(char *tgt_host, char *tgt_username, char *tgt_password,
+ long tgt_port, char *tgt_socket, char *server_name,
+ int connect_retry_count, longlong connect_retry_interval);
int ping();
void bg_disconnect();
void disconnect();
int set_net_timeout();
- int exec_query(
- const char *query,
- uint length,
- int quick_mode
- );
+ int exec_query(const char *query, uint length, int quick_mode);
int get_errno();
const char *get_error();
- bool is_server_gone_error(
- int error_num
- );
- bool is_dup_entry_error(
- int error_num
- );
- bool is_xa_nota_error(
- int error_num
- );
- int print_warnings(
- struct tm *l_time
- );
- spider_db_result *store_result(
- spider_db_result_buffer **spider_res_buf,
- st_spider_db_request_key *request_key,
- int *error_num
- );
- spider_db_result *use_result(
- ha_spider *spider,
- st_spider_db_request_key *request_key,
- int *error_num
- );
+ bool is_server_gone_error(int error_num);
+ bool is_dup_entry_error(int error_num);
+ bool is_xa_nota_error(int error_num);
+ int print_warnings(struct tm *l_time);
+ spider_db_result *store_result(spider_db_result_buffer **spider_res_buf,
+ st_spider_db_request_key *request_key,
+ int *error_num);
+ spider_db_result *use_result(ha_spider *spider,
+ st_spider_db_request_key *request_key,
+ int *error_num);
int next_result();
uint affected_rows();
uint matched_rows();
- bool inserted_info(
- spider_db_handler *handler,
- ha_copy_info *copy_info
- );
+ bool inserted_info(spider_db_handler *handler, ha_copy_info *copy_info);
ulonglong last_insert_id();
- int set_character_set(
- const char *csname
- );
- int select_db(
- const char *dbname
- );
- int consistent_snapshot(
- int *need_mon
- );
+ int set_character_set(const char *csname);
+ int select_db(const char *dbname);
+ int consistent_snapshot(int *need_mon);
bool trx_start_in_bulk_sql();
- int start_transaction(
- int *need_mon
- );
- int commit(
- int *need_mon
- );
- int rollback(
- int *need_mon
- );
+ int start_transaction(int *need_mon);
+ int commit(int *need_mon);
+ int rollback(int *need_mon);
bool xa_start_in_bulk_sql();
- int xa_start(
- XID *xid,
- int *need_mon
- );
- int xa_end(
- XID *xid,
- int *need_mon
- );
- int xa_prepare(
- XID *xid,
- int *need_mon
- );
- int xa_commit(
- XID *xid,
- int *need_mon
- );
- int xa_rollback(
- XID *xid,
- int *need_mon
- );
+ int xa_start(XID *xid, int *need_mon);
+ int xa_end(XID *xid, int *need_mon);
+ int xa_prepare(XID *xid, int *need_mon);
+ int xa_commit(XID *xid, int *need_mon);
+ int xa_rollback(XID *xid, int *need_mon);
bool set_trx_isolation_in_bulk_sql();
- int set_trx_isolation(
- int trx_isolation,
- int *need_mon
- );
+ int set_trx_isolation(int trx_isolation, int *need_mon);
bool set_autocommit_in_bulk_sql();
- int set_autocommit(
- bool autocommit,
- int *need_mon
- );
+ int set_autocommit(bool autocommit, int *need_mon);
bool set_sql_log_off_in_bulk_sql();
- int set_sql_log_off(
- bool sql_log_off,
- int *need_mon
- );
+ int set_sql_log_off(bool sql_log_off, int *need_mon);
bool set_wait_timeout_in_bulk_sql();
- int set_wait_timeout(
- int wait_timeout,
- int *need_mon
- );
+ int set_wait_timeout(int wait_timeout, int *need_mon);
bool set_sql_mode_in_bulk_sql();
- int set_sql_mode(
- sql_mode_t sql_mode,
- int *need_mon
- );
+ int set_sql_mode(sql_mode_t sql_mode, int *need_mon);
bool set_time_zone_in_bulk_sql();
- int set_time_zone(
- Time_zone *time_zone,
- int *need_mon
- );
+ int set_time_zone(Time_zone *time_zone, int *need_mon);
bool set_loop_check_in_bulk_sql();
- int set_loop_check(
- int *need_mon
- );
+ int set_loop_check(int *need_mon);
int fin_loop_check();
- int exec_simple_sql_with_result(
- SPIDER_TRX *trx,
- SPIDER_SHARE *share,
- const char *sql,
- uint sql_length,
- int all_link_idx,
- int *need_mon,
- SPIDER_DB_RESULT **res
- );
- int show_master_status(
- SPIDER_TRX *trx,
- SPIDER_SHARE *share,
- int all_link_idx,
- int *need_mon,
- TABLE *table,
- spider_string *str,
- int mode,
- SPIDER_DB_RESULT **res1,
- SPIDER_DB_RESULT **res2
- );
- int select_binlog_gtid_pos(
- SPIDER_TRX *trx,
- SPIDER_SHARE *share,
- int all_link_idx,
- int *need_mon,
- TABLE *table,
- spider_string *str,
- const char *binlog_file_name,
- uint binlog_file_name_length,
- const char *binlog_pos,
- uint binlog_pos_length,
- SPIDER_DB_RESULT **res
- );
+ int exec_simple_sql_with_result(SPIDER_TRX *trx, SPIDER_SHARE *share,
+ const char *sql, uint sql_length,
+ int all_link_idx, int *need_mon,
+ SPIDER_DB_RESULT **res);
+ int show_master_status(SPIDER_TRX *trx, SPIDER_SHARE *share, int all_link_idx,
+ int *need_mon, TABLE *table, spider_string *str,
+ int mode, SPIDER_DB_RESULT **res1,
+ SPIDER_DB_RESULT **res2);
+ int select_binlog_gtid_pos(SPIDER_TRX *trx, SPIDER_SHARE *share,
+ int all_link_idx, int *need_mon, TABLE *table,
+ spider_string *str, const char *binlog_file_name,
+ uint binlog_file_name_length,
+ const char *binlog_pos, uint binlog_pos_length,
+ SPIDER_DB_RESULT **res);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- int append_sql(
- char *sql,
- ulong sql_length,
- st_spider_db_request_key *request_key
- );
- int append_open_handler(
- uint handler_id,
- const char *db_name,
- const char *table_name,
- const char *index_name,
- const char *sql,
- st_spider_db_request_key *request_key
- );
- int append_select(
- uint handler_id,
- spider_string *sql,
- SPIDER_DB_HS_STRING_REF_BUFFER *keys,
- int limit,
- int skip,
- st_spider_db_request_key *request_key
- );
- int append_insert(
- uint handler_id,
- SPIDER_DB_HS_STRING_REF_BUFFER *upds,
- st_spider_db_request_key *request_key
- );
- int append_update(
- uint handler_id,
- spider_string *sql,
- SPIDER_DB_HS_STRING_REF_BUFFER *keys,
- SPIDER_DB_HS_STRING_REF_BUFFER *upds,
- int limit,
- int skip,
- bool increment,
- bool decrement,
- st_spider_db_request_key *request_key
- );
- int append_delete(
- uint handler_id,
- spider_string *sql,
- SPIDER_DB_HS_STRING_REF_BUFFER *keys,
- int limit,
- int skip,
- st_spider_db_request_key *request_key
- );
+ int append_sql(char *sql, ulong sql_length,
+ st_spider_db_request_key *request_key);
+ int append_open_handler(uint handler_id, const char *db_name,
+ const char *table_name, const char *index_name,
+ const char *sql,
+ st_spider_db_request_key *request_key);
+ int append_select(uint handler_id, spider_string *sql,
+ SPIDER_DB_HS_STRING_REF_BUFFER *keys, int limit, int skip,
+ st_spider_db_request_key *request_key);
+ int append_insert(uint handler_id, SPIDER_DB_HS_STRING_REF_BUFFER *upds,
+ st_spider_db_request_key *request_key);
+ int append_update(uint handler_id, spider_string *sql,
+ SPIDER_DB_HS_STRING_REF_BUFFER *keys,
+ SPIDER_DB_HS_STRING_REF_BUFFER *upds, int limit, int skip,
+ bool increment, bool decrement,
+ st_spider_db_request_key *request_key);
+ int append_delete(uint handler_id, spider_string *sql,
+ SPIDER_DB_HS_STRING_REF_BUFFER *keys, int limit, int skip,
+ st_spider_db_request_key *request_key);
void reset_request_queue();
#endif
- size_t escape_string(
- char *to,
- const char *from,
- size_t from_length
- );
+ size_t escape_string(char *to, const char *from, size_t from_length);
bool have_lock_table_list();
- int append_lock_tables(
- spider_string *str
- );
- int append_unlock_tables(
- spider_string *str
- );
+ int append_lock_tables(spider_string *str);
+ int append_unlock_tables(spider_string *str);
uint get_lock_table_hash_count();
void reset_lock_table_hash();
uint get_opened_handler_count();
void reset_opened_handler();
- void set_dup_key_idx(
- ha_spider *spider,
- int link_idx
- );
- bool cmp_request_key_to_snd(
- st_spider_db_request_key *request_key
- );
+ void set_dup_key_idx(ha_spider *spider, int link_idx);
+ bool cmp_request_key_to_snd(st_spider_db_request_key *request_key);
};
-class spider_db_mysql: public spider_db_mbase
-{
-public:
- spider_db_mysql(
- SPIDER_CONN *conn
- );
+class spider_db_mysql : public spider_db_mbase {
+ public:
+ spider_db_mysql(SPIDER_CONN *conn);
~spider_db_mysql();
};
-class spider_db_mariadb: public spider_db_mbase
-{
-public:
- spider_db_mariadb(
- SPIDER_CONN *conn
- );
+class spider_db_mariadb : public spider_db_mbase {
+ public:
+ spider_db_mariadb(SPIDER_CONN *conn);
~spider_db_mariadb();
};
-class spider_mbase_share: public spider_db_share
-{
-protected:
+class spider_mbase_share : public spider_db_share {
+ protected:
spider_db_mbase_util *spider_db_mbase_utility;
-public:
- spider_string *table_select;
- int table_select_pos;
- spider_string *key_select;
- int *key_select_pos;
- spider_string *key_hint;
- spider_string *show_table_status;
- spider_string *show_records;
- spider_string *show_index;
- spider_string *table_names_str;
- spider_string *db_names_str;
- spider_string *db_table_str;
+
+ public:
+ spider_string *table_select;
+ int table_select_pos;
+ spider_string *key_select;
+ int *key_select_pos;
+ spider_string *key_hint;
+ spider_string *show_table_status;
+ spider_string *show_records;
+ spider_string *show_index;
+ spider_string *table_names_str;
+ spider_string *db_names_str;
+ spider_string *db_table_str;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type *db_table_str_hash_value;
#endif
- uint table_nm_max_length;
- uint db_nm_max_length;
- spider_string *column_name_str;
- bool same_db_table_name;
- int first_all_link_idx;
+ uint table_nm_max_length;
+ uint db_nm_max_length;
+ spider_string *column_name_str;
+ bool same_db_table_name;
+ int first_all_link_idx;
- spider_mbase_share(
- st_spider_share *share,
- uint dbton_id,
- spider_db_mbase_util *spider_db_mbase_utility
- );
+ spider_mbase_share(st_spider_share *share, uint dbton_id,
+ spider_db_mbase_util *spider_db_mbase_utility);
virtual ~spider_mbase_share();
int init();
- uint get_column_name_length(
- uint field_index
- );
- int append_column_name(
- spider_string *str,
- uint field_index
- );
- int append_column_name_with_alias(
- spider_string *str,
- uint field_index,
- const char *alias,
- uint alias_length
- );
- int append_table_name(
- spider_string *str,
- int all_link_idx
- );
- int append_table_name_with_adjusting(
- spider_string *str,
- int all_link_idx
- );
- int append_from_with_adjusted_table_name(
- spider_string *str,
- int *table_name_pos
- );
+ uint get_column_name_length(uint field_index);
+ int append_column_name(spider_string *str, uint field_index);
+ int append_column_name_with_alias(spider_string *str, uint field_index,
+ const char *alias, uint alias_length);
+ int append_table_name(spider_string *str, int all_link_idx);
+ int append_table_name_with_adjusting(spider_string *str, int all_link_idx);
+ int append_from_with_adjusted_table_name(spider_string *str,
+ int *table_name_pos);
bool need_change_db_table_name();
#ifdef SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
- int discover_table_structure(
- SPIDER_TRX *trx,
- SPIDER_SHARE *spider_share,
- spider_string *str
- );
+ int discover_table_structure(SPIDER_TRX *trx, SPIDER_SHARE *spider_share,
+ spider_string *str);
#endif
#ifdef HA_HAS_CHECKSUM_EXTENDED
bool checksum_support();
#endif
-protected:
+ protected:
int create_table_names_str();
void free_table_names_str();
int create_column_name_str();
@@ -751,1064 +401,452 @@ protected:
int append_show_index();
void free_show_index();
int append_table_select();
- int append_key_select(
- uint idx
- );
+ int append_key_select(uint idx);
};
-class spider_mysql_share: public spider_mbase_share
-{
-public:
- spider_mysql_share(
- st_spider_share *share
- );
+class spider_mysql_share : public spider_mbase_share {
+ public:
+ spider_mysql_share(st_spider_share *share);
~spider_mysql_share();
};
-class spider_mariadb_share: public spider_mbase_share
-{
-public:
- spider_mariadb_share(
- st_spider_share *share
- );
+class spider_mariadb_share : public spider_mbase_share {
+ public:
+ spider_mariadb_share(st_spider_share *share);
~spider_mariadb_share();
};
-class spider_mbase_handler: public spider_db_handler
-{
-protected:
- spider_db_mbase_util *spider_db_mbase_utility;
- spider_string sql;
- spider_string sql_part;
- spider_string sql_part2;
- spider_string ha_sql;
- int where_pos;
- int order_pos;
- int limit_pos;
-public:
- int table_name_pos;
-protected:
- int ha_read_pos;
- int ha_next_pos;
- int ha_where_pos;
- int ha_limit_pos;
- int ha_table_name_pos;
- uint ha_sql_handler_id;
- spider_string insert_sql;
- int insert_pos;
- int insert_table_name_pos;
- spider_string update_sql;
- TABLE *upd_tmp_tbl;
- TMP_TABLE_PARAM upd_tmp_tbl_prm;
- spider_string tmp_sql;
- int tmp_sql_pos1; /* drop db nm pos at tmp_table_join */
- int tmp_sql_pos2; /* create db nm pos at tmp_table_join */
- int tmp_sql_pos3; /* insert db nm pos at tmp_table_join */
- int tmp_sql_pos4; /* insert val pos at tmp_table_join */
- int tmp_sql_pos5; /* end of drop tbl at tmp_table_join */
- spider_string dup_update_sql;
- spider_string *exec_sql;
- spider_string *exec_insert_sql;
- spider_string *exec_update_sql;
- spider_string *exec_tmp_sql;
- spider_string *exec_ha_sql;
- bool reading_from_bulk_tmp_table;
- bool filled_up;
+class spider_mbase_handler : public spider_db_handler {
+ protected:
+ spider_db_mbase_util *spider_db_mbase_utility;
+ spider_string sql;
+ spider_string sql_part;
+ spider_string sql_part2;
+ spider_string ha_sql;
+ int where_pos;
+ int order_pos;
+ int limit_pos;
+
+ public:
+ int table_name_pos;
+
+ protected:
+ int ha_read_pos;
+ int ha_next_pos;
+ int ha_where_pos;
+ int ha_limit_pos;
+ int ha_table_name_pos;
+ uint ha_sql_handler_id;
+ spider_string insert_sql;
+ int insert_pos;
+ int insert_table_name_pos;
+ spider_string update_sql;
+ TABLE *upd_tmp_tbl;
+ TMP_TABLE_PARAM upd_tmp_tbl_prm;
+ spider_string tmp_sql;
+ int tmp_sql_pos1; /* drop db nm pos at tmp_table_join */
+ int tmp_sql_pos2; /* create db nm pos at tmp_table_join */
+ int tmp_sql_pos3; /* insert db nm pos at tmp_table_join */
+ int tmp_sql_pos4; /* insert val pos at tmp_table_join */
+ int tmp_sql_pos5; /* end of drop tbl at tmp_table_join */
+ spider_string dup_update_sql;
+ spider_string *exec_sql;
+ spider_string *exec_insert_sql;
+ spider_string *exec_update_sql;
+ spider_string *exec_tmp_sql;
+ spider_string *exec_ha_sql;
+ bool reading_from_bulk_tmp_table;
+ bool filled_up;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
SPIDER_DB_HS_STRING_REF_BUFFER hs_upds;
#endif
- SPIDER_INT_HLD *union_table_name_pos_first;
- SPIDER_INT_HLD *union_table_name_pos_current;
-public:
- spider_mbase_share *mysql_share;
- SPIDER_LINK_FOR_HASH *link_for_hash;
- uchar *minimum_select_bitmap;
- uchar direct_insert_kind;
- spider_mbase_handler(
- ha_spider *spider,
- spider_mbase_share *share,
- spider_db_mbase_util *spider_db_mbase_utility
- );
+ SPIDER_INT_HLD *union_table_name_pos_first;
+ SPIDER_INT_HLD *union_table_name_pos_current;
+
+ public:
+ spider_mbase_share *mysql_share;
+ SPIDER_LINK_FOR_HASH *link_for_hash;
+ uchar *minimum_select_bitmap;
+ uchar direct_insert_kind;
+ spider_mbase_handler(ha_spider *spider, spider_mbase_share *share,
+ spider_db_mbase_util *spider_db_mbase_utility);
virtual ~spider_mbase_handler();
int init();
- int append_index_hint(
- spider_string *str,
- int link_idx,
- ulong sql_type
- );
- int append_table_name_with_adjusting(
- spider_string *str,
- int link_idx,
- ulong sql_type
- );
- int append_key_column_types(
- const key_range *start_key,
- spider_string *str
- );
- int append_key_join_columns_for_bka(
- const key_range *start_key,
- spider_string *str,
- const char **table_aliases,
- uint *table_alias_lengths
- );
- int append_tmp_table_and_sql_for_bka(
- const key_range *start_key
- );
+ int append_index_hint(spider_string *str, int link_idx, ulong sql_type);
+ int append_table_name_with_adjusting(spider_string *str, int link_idx,
+ ulong sql_type);
+ int append_key_column_types(const key_range *start_key, spider_string *str);
+ int append_key_join_columns_for_bka(const key_range *start_key,
+ spider_string *str,
+ const char **table_aliases,
+ uint *table_alias_lengths);
+ int append_tmp_table_and_sql_for_bka(const key_range *start_key);
int reuse_tmp_table_and_sql_for_bka();
- void create_tmp_bka_table_name(
- char *tmp_table_name,
- int *tmp_table_name_length,
- int link_idx
- );
- int append_create_tmp_bka_table(
- const key_range *start_key,
- spider_string *str,
- char *tmp_table_name,
- int tmp_table_name_length,
- int *db_name_pos,
- CHARSET_INFO *table_charset
- );
- int append_drop_tmp_bka_table(
- spider_string *str,
- char *tmp_table_name,
- int tmp_table_name_length,
- int *db_name_pos,
- int *drop_table_end_pos,
- bool with_semicolon
- );
- int append_insert_tmp_bka_table(
- const key_range *start_key,
- spider_string *str,
- char *tmp_table_name,
- int tmp_table_name_length,
- int *db_name_pos
- );
- int append_union_table_and_sql_for_bka(
- const key_range *start_key
- );
+ void create_tmp_bka_table_name(char *tmp_table_name,
+ int *tmp_table_name_length, int link_idx);
+ int append_create_tmp_bka_table(const key_range *start_key,
+ spider_string *str, char *tmp_table_name,
+ int tmp_table_name_length, int *db_name_pos,
+ CHARSET_INFO *table_charset);
+ int append_drop_tmp_bka_table(spider_string *str, char *tmp_table_name,
+ int tmp_table_name_length, int *db_name_pos,
+ int *drop_table_end_pos, bool with_semicolon);
+ int append_insert_tmp_bka_table(const key_range *start_key,
+ spider_string *str, char *tmp_table_name,
+ int tmp_table_name_length, int *db_name_pos);
+ int append_union_table_and_sql_for_bka(const key_range *start_key);
int reuse_union_table_and_sql_for_bka();
- int append_insert_for_recovery(
- ulong sql_type,
- int link_idx
- );
- int append_update(
- const TABLE *table,
- my_ptrdiff_t ptr_diff
- );
- int append_update(
- const TABLE *table,
- my_ptrdiff_t ptr_diff,
- int link_idx
- );
- int append_delete(
- const TABLE *table,
- my_ptrdiff_t ptr_diff
- );
- int append_delete(
- const TABLE *table,
- my_ptrdiff_t ptr_diff,
- int link_idx
- );
+ int append_insert_for_recovery(ulong sql_type, int link_idx);
+ int append_update(const TABLE *table, my_ptrdiff_t ptr_diff);
+ int append_update(const TABLE *table, my_ptrdiff_t ptr_diff, int link_idx);
+ int append_delete(const TABLE *table, my_ptrdiff_t ptr_diff);
+ int append_delete(const TABLE *table, my_ptrdiff_t ptr_diff, int link_idx);
int append_insert_part();
- int append_insert(
- spider_string *str,
- int link_idx
- );
+ int append_insert(spider_string *str, int link_idx);
int append_update_part();
- int append_update(
- spider_string *str,
- int link_idx
- );
+ int append_update(spider_string *str, int link_idx);
int append_delete_part();
- int append_delete(
- spider_string *str
- );
- #if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
+ int append_delete(spider_string *str);
+#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
+#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
int append_increment_update_set_part();
- int append_increment_update_set(
- spider_string *str
- );
- #endif
- #endif
+ int append_increment_update_set(spider_string *str);
+#endif
+#endif
int append_update_set_part();
- int append_update_set(
- spider_string *str
- );
- #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
+ int append_update_set(spider_string *str);
+#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
int append_direct_update_set_part();
- int append_direct_update_set(
- spider_string *str
- );
- int append_dup_update_pushdown_part(
- const char *alias,
- uint alias_length
- );
- int append_update_columns_part(
- const char *alias,
- uint alias_length
- );
+ int append_direct_update_set(spider_string *str);
+ int append_dup_update_pushdown_part(const char *alias, uint alias_length);
+ int append_update_columns_part(const char *alias, uint alias_length);
int check_update_columns_part();
- int append_update_columns(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- #endif
- int append_select_part(
- ulong sql_type
- );
- int append_select(
- spider_string *str,
- ulong sql_type
- );
- int append_table_select_part(
- ulong sql_type
- );
- int append_table_select(
- spider_string *str
- );
- int append_key_select_part(
- ulong sql_type,
- uint idx
- );
- int append_key_select(
- spider_string *str,
- uint idx
- );
- int append_minimum_select_part(
- ulong sql_type
- );
- int append_minimum_select(
- spider_string *str,
- ulong sql_type
- );
- int append_table_select_with_alias(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_key_select_with_alias(
- spider_string *str,
- const KEY *key_info,
- const char *alias,
- uint alias_length
- );
- int append_minimum_select_with_alias(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_select_columns_with_alias(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_hint_after_table_part(
- ulong sql_type
- );
- int append_hint_after_table(
- spider_string *str
- );
- void set_where_pos(
- ulong sql_type
- );
- void set_where_to_pos(
- ulong sql_type
- );
- int check_item_type(
- Item *item
- );
- int append_values_connector_part(
- ulong sql_type
- );
- int append_values_connector(
- spider_string *str
- );
- int append_values_terminator_part(
- ulong sql_type
- );
- int append_values_terminator(
- spider_string *str
- );
- int append_union_table_connector_part(
- ulong sql_type
- );
- int append_union_table_connector(
- spider_string *str
- );
- int append_union_table_terminator_part(
- ulong sql_type
- );
- int append_union_table_terminator(
- spider_string *str
- );
- int append_key_column_values_part(
- const key_range *start_key,
- ulong sql_type
- );
- int append_key_column_values(
- spider_string *str,
- const key_range *start_key
- );
- int append_key_column_values_with_name_part(
- const key_range *start_key,
- ulong sql_type
- );
- int append_key_column_values_with_name(
- spider_string *str,
- const key_range *start_key
- );
- int append_key_where_part(
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type
- );
- int append_key_where(
- spider_string *str,
- spider_string *str_part,
- spider_string *str_part2,
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type,
- bool set_order
- );
- int append_is_null_part(
- ulong sql_type,
- KEY_PART_INFO *key_part,
- const key_range *key,
- const uchar **ptr,
- bool key_eq,
- bool tgt_final
- );
- int append_is_null(
- ulong sql_type,
- spider_string *str,
- spider_string *str_part,
- spider_string *str_part2,
- KEY_PART_INFO *key_part,
- const key_range *key,
- const uchar **ptr,
- bool key_eq,
- bool tgt_final
- );
- int append_where_terminator_part(
- ulong sql_type,
- bool set_order,
- int key_count
- );
- int append_where_terminator(
- ulong sql_type,
- spider_string *str,
- spider_string *str_part,
- spider_string *str_part2,
- bool set_order,
- int key_count
- );
- int append_match_where_part(
- ulong sql_type
- );
- int append_match_where(
- spider_string *str
- );
- int append_update_where(
- spider_string *str,
- const TABLE *table,
- my_ptrdiff_t ptr_diff
- );
- int append_condition_part(
- const char *alias,
- uint alias_length,
- ulong sql_type,
- bool test_flg
- );
- int append_condition(
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool start_where,
- ulong sql_type
- );
- int append_match_against_part(
- ulong sql_type,
- st_spider_ft_info *ft_info,
- const char *alias,
- uint alias_length
- );
- int append_match_against(
- spider_string *str,
- st_spider_ft_info *ft_info,
- const char *alias,
- uint alias_length
- );
- int append_match_select_part(
- ulong sql_type,
- const char *alias,
- uint alias_length
- );
- int append_match_select(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
+ int append_update_columns(spider_string *str, const char *alias,
+ uint alias_length);
+#endif
+ int append_select_part(ulong sql_type);
+ int append_select(spider_string *str, ulong sql_type);
+ int append_table_select_part(ulong sql_type);
+ int append_table_select(spider_string *str);
+ int append_key_select_part(ulong sql_type, uint idx);
+ int append_key_select(spider_string *str, uint idx);
+ int append_minimum_select_part(ulong sql_type);
+ int append_minimum_select(spider_string *str, ulong sql_type);
+ int append_table_select_with_alias(spider_string *str, const char *alias,
+ uint alias_length);
+ int append_key_select_with_alias(spider_string *str, const KEY *key_info,
+ const char *alias, uint alias_length);
+ int append_minimum_select_with_alias(spider_string *str, const char *alias,
+ uint alias_length);
+ int append_select_columns_with_alias(spider_string *str, const char *alias,
+ uint alias_length);
+ int append_hint_after_table_part(ulong sql_type);
+ int append_hint_after_table(spider_string *str);
+ void set_where_pos(ulong sql_type);
+ void set_where_to_pos(ulong sql_type);
+ int check_item_type(Item *item);
+ int append_values_connector_part(ulong sql_type);
+ int append_values_connector(spider_string *str);
+ int append_values_terminator_part(ulong sql_type);
+ int append_values_terminator(spider_string *str);
+ int append_union_table_connector_part(ulong sql_type);
+ int append_union_table_connector(spider_string *str);
+ int append_union_table_terminator_part(ulong sql_type);
+ int append_union_table_terminator(spider_string *str);
+ int append_key_column_values_part(const key_range *start_key, ulong sql_type);
+ int append_key_column_values(spider_string *str, const key_range *start_key);
+ int append_key_column_values_with_name_part(const key_range *start_key,
+ ulong sql_type);
+ int append_key_column_values_with_name(spider_string *str,
+ const key_range *start_key);
+ int append_key_where_part(const key_range *start_key,
+ const key_range *end_key, ulong sql_type);
+ int append_key_where(spider_string *str, spider_string *str_part,
+ spider_string *str_part2, const key_range *start_key,
+ const key_range *end_key, ulong sql_type,
+ bool set_order);
+ int append_is_null_part(ulong sql_type, KEY_PART_INFO *key_part,
+ const key_range *key, const uchar **ptr, bool key_eq,
+ bool tgt_final);
+ int append_is_null(ulong sql_type, spider_string *str,
+ spider_string *str_part, spider_string *str_part2,
+ KEY_PART_INFO *key_part, const key_range *key,
+ const uchar **ptr, bool key_eq, bool tgt_final);
+ int append_where_terminator_part(ulong sql_type, bool set_order,
+ int key_count);
+ int append_where_terminator(ulong sql_type, spider_string *str,
+ spider_string *str_part, spider_string *str_part2,
+ bool set_order, int key_count);
+ int append_match_where_part(ulong sql_type);
+ int append_match_where(spider_string *str);
+ int append_update_where(spider_string *str, const TABLE *table,
+ my_ptrdiff_t ptr_diff);
+ int append_condition_part(const char *alias, uint alias_length,
+ ulong sql_type, bool test_flg);
+ int append_condition(spider_string *str, const char *alias, uint alias_length,
+ bool start_where, ulong sql_type);
+ int append_match_against_part(ulong sql_type, st_spider_ft_info *ft_info,
+ const char *alias, uint alias_length);
+ int append_match_against(spider_string *str, st_spider_ft_info *ft_info,
+ const char *alias, uint alias_length);
+ int append_match_select_part(ulong sql_type, const char *alias,
+ uint alias_length);
+ int append_match_select(spider_string *str, const char *alias,
+ uint alias_length);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- int append_sum_select_part(
- ulong sql_type,
- const char *alias,
- uint alias_length
- );
- int append_sum_select(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
+ int append_sum_select_part(ulong sql_type, const char *alias,
+ uint alias_length);
+ int append_sum_select(spider_string *str, const char *alias,
+ uint alias_length);
#endif
- void set_order_pos(
- ulong sql_type
- );
- void set_order_to_pos(
- ulong sql_type
- );
+ void set_order_pos(ulong sql_type);
+ void set_order_to_pos(ulong sql_type);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- int append_group_by_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_group_by(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
+ int append_group_by_part(const char *alias, uint alias_length,
+ ulong sql_type);
+ int append_group_by(spider_string *str, const char *alias, uint alias_length);
#endif
- int append_key_order_for_merge_with_alias_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_key_order_for_merge_with_alias(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_key_order_for_direct_order_limit_with_alias_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_key_order_for_direct_order_limit_with_alias(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_key_order_with_alias_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_key_order_for_handler(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_key_order_with_alias(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_limit_part(
- longlong offset,
- longlong limit,
- ulong sql_type
- );
- int reappend_limit_part(
- longlong offset,
- longlong limit,
- ulong sql_type
- );
- int append_limit(
- spider_string *str,
- longlong offset,
- longlong limit
- );
- int append_select_lock_part(
- ulong sql_type
- );
- int append_select_lock(
- spider_string *str
- );
- int append_union_all_start_part(
- ulong sql_type
- );
- int append_union_all_start(
- spider_string *str
- );
- int append_union_all_part(
- ulong sql_type
- );
- int append_union_all(
- spider_string *str
- );
- int append_union_all_end_part(
- ulong sql_type
- );
- int append_union_all_end(
- spider_string *str
- );
- int append_multi_range_cnt_part(
- ulong sql_type,
- uint multi_range_cnt,
- bool with_comma
- );
- int append_multi_range_cnt(
- spider_string *str,
- uint multi_range_cnt,
- bool with_comma
- );
- int append_multi_range_cnt_with_name_part(
- ulong sql_type,
- uint multi_range_cnt
- );
- int append_multi_range_cnt_with_name(
- spider_string *str,
- uint multi_range_cnt
- );
- int append_open_handler_part(
- ulong sql_type,
- uint handler_id,
- SPIDER_CONN *conn,
- int link_idx
- );
- int append_open_handler(
- spider_string *str,
- uint handler_id,
- SPIDER_CONN *conn,
- int link_idx
- );
- int append_close_handler_part(
- ulong sql_type,
- int link_idx
- );
- int append_close_handler(
- spider_string *str,
- int link_idx
- );
- int append_insert_terminator_part(
- ulong sql_type
- );
- int append_insert_terminator(
- spider_string *str
- );
- int append_insert_values_part(
- ulong sql_type
- );
- int append_insert_values(
- spider_string *str
- );
- int append_into_part(
- ulong sql_type
- );
- int append_into(
- spider_string *str
- );
- void set_insert_to_pos(
- ulong sql_type
- );
- int append_from_part(
- ulong sql_type,
- int link_idx
- );
- int append_from(
- spider_string *str,
- ulong sql_type,
- int link_idx
- );
- int append_flush_tables_part(
- ulong sql_type,
- int link_idx,
- bool lock
- );
- int append_flush_tables(
- spider_string *str,
- int link_idx,
- bool lock
- );
- int append_optimize_table_part(
- ulong sql_type,
- int link_idx
- );
- int append_optimize_table(
- spider_string *str,
- int link_idx
- );
- int append_analyze_table_part(
- ulong sql_type,
- int link_idx
- );
- int append_analyze_table(
- spider_string *str,
- int link_idx
- );
- int append_repair_table_part(
- ulong sql_type,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int append_repair_table(
- spider_string *str,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int append_check_table_part(
- ulong sql_type,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int append_check_table(
- spider_string *str,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int append_enable_keys_part(
- ulong sql_type,
- int link_idx
- );
- int append_enable_keys(
- spider_string *str,
- int link_idx
- );
- int append_disable_keys_part(
- ulong sql_type,
- int link_idx
- );
- int append_disable_keys(
- spider_string *str,
- int link_idx
- );
- int append_delete_all_rows_part(
- ulong sql_type
- );
- int append_delete_all_rows(
- spider_string *str,
- ulong sql_type
- );
- int append_truncate(
- spider_string *str,
- ulong sql_type,
- int link_idx
- );
- int append_explain_select_part(
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type,
- int link_idx
- );
- int append_explain_select(
- spider_string *str,
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type,
- int link_idx
- );
- bool is_sole_projection_field(
- uint16 field_index
- );
- bool is_bulk_insert_exec_period(
- bool bulk_end
- );
- bool sql_is_filled_up(
- ulong sql_type
- );
- bool sql_is_empty(
- ulong sql_type
- );
+ int append_key_order_for_merge_with_alias_part(const char *alias,
+ uint alias_length,
+ ulong sql_type);
+ int append_key_order_for_merge_with_alias(spider_string *str,
+ const char *alias,
+ uint alias_length);
+ int append_key_order_for_direct_order_limit_with_alias_part(const char *alias,
+ uint alias_length,
+ ulong sql_type);
+ int append_key_order_for_direct_order_limit_with_alias(spider_string *str,
+ const char *alias,
+ uint alias_length);
+ int append_key_order_with_alias_part(const char *alias, uint alias_length,
+ ulong sql_type);
+ int append_key_order_for_handler(spider_string *str, const char *alias,
+ uint alias_length);
+ int append_key_order_with_alias(spider_string *str, const char *alias,
+ uint alias_length);
+ int append_limit_part(longlong offset, longlong limit, ulong sql_type);
+ int reappend_limit_part(longlong offset, longlong limit, ulong sql_type);
+ int append_limit(spider_string *str, longlong offset, longlong limit);
+ int append_select_lock_part(ulong sql_type);
+ int append_select_lock(spider_string *str);
+ int append_union_all_start_part(ulong sql_type);
+ int append_union_all_start(spider_string *str);
+ int append_union_all_part(ulong sql_type);
+ int append_union_all(spider_string *str);
+ int append_union_all_end_part(ulong sql_type);
+ int append_union_all_end(spider_string *str);
+ int append_multi_range_cnt_part(ulong sql_type, uint multi_range_cnt,
+ bool with_comma);
+ int append_multi_range_cnt(spider_string *str, uint multi_range_cnt,
+ bool with_comma);
+ int append_multi_range_cnt_with_name_part(ulong sql_type,
+ uint multi_range_cnt);
+ int append_multi_range_cnt_with_name(spider_string *str,
+ uint multi_range_cnt);
+ int append_open_handler_part(ulong sql_type, uint handler_id,
+ SPIDER_CONN *conn, int link_idx);
+ int append_open_handler(spider_string *str, uint handler_id,
+ SPIDER_CONN *conn, int link_idx);
+ int append_close_handler_part(ulong sql_type, int link_idx);
+ int append_close_handler(spider_string *str, int link_idx);
+ int append_insert_terminator_part(ulong sql_type);
+ int append_insert_terminator(spider_string *str);
+ int append_insert_values_part(ulong sql_type);
+ int append_insert_values(spider_string *str);
+ int append_into_part(ulong sql_type);
+ int append_into(spider_string *str);
+ void set_insert_to_pos(ulong sql_type);
+ int append_from_part(ulong sql_type, int link_idx);
+ int append_from(spider_string *str, ulong sql_type, int link_idx);
+ int append_flush_tables_part(ulong sql_type, int link_idx, bool lock);
+ int append_flush_tables(spider_string *str, int link_idx, bool lock);
+ int append_optimize_table_part(ulong sql_type, int link_idx);
+ int append_optimize_table(spider_string *str, int link_idx);
+ int append_analyze_table_part(ulong sql_type, int link_idx);
+ int append_analyze_table(spider_string *str, int link_idx);
+ int append_repair_table_part(ulong sql_type, int link_idx,
+ HA_CHECK_OPT *check_opt);
+ int append_repair_table(spider_string *str, int link_idx,
+ HA_CHECK_OPT *check_opt);
+ int append_check_table_part(ulong sql_type, int link_idx,
+ HA_CHECK_OPT *check_opt);
+ int append_check_table(spider_string *str, int link_idx,
+ HA_CHECK_OPT *check_opt);
+ int append_enable_keys_part(ulong sql_type, int link_idx);
+ int append_enable_keys(spider_string *str, int link_idx);
+ int append_disable_keys_part(ulong sql_type, int link_idx);
+ int append_disable_keys(spider_string *str, int link_idx);
+ int append_delete_all_rows_part(ulong sql_type);
+ int append_delete_all_rows(spider_string *str, ulong sql_type);
+ int append_truncate(spider_string *str, ulong sql_type, int link_idx);
+ int append_explain_select_part(const key_range *start_key,
+ const key_range *end_key, ulong sql_type,
+ int link_idx);
+ int append_explain_select(spider_string *str, const key_range *start_key,
+ const key_range *end_key, ulong sql_type,
+ int link_idx);
+ bool is_sole_projection_field(uint16 field_index);
+ bool is_bulk_insert_exec_period(bool bulk_end);
+ bool sql_is_filled_up(ulong sql_type);
+ bool sql_is_empty(ulong sql_type);
bool support_multi_split_read();
bool support_bulk_update();
int bulk_tmp_table_insert();
- int bulk_tmp_table_insert(
- int link_idx
- );
+ int bulk_tmp_table_insert(int link_idx);
int bulk_tmp_table_end_bulk_insert();
int bulk_tmp_table_rnd_init();
int bulk_tmp_table_rnd_next();
int bulk_tmp_table_rnd_end();
- bool need_copy_for_update(
- int link_idx
- );
+ bool need_copy_for_update(int link_idx);
bool bulk_tmp_table_created();
int mk_bulk_tmp_table_and_bulk_start();
void rm_bulk_tmp_table();
- int store_sql_to_bulk_tmp_table(
- spider_string *str,
- TABLE *tmp_table
- );
- int restore_sql_from_bulk_tmp_table(
- spider_string *str,
- TABLE *tmp_table
- );
- int insert_lock_tables_list(
- SPIDER_CONN *conn,
- int link_idx
- );
- int append_lock_tables_list(
- SPIDER_CONN *conn,
- int link_idx,
- int *appended
- );
- int realloc_sql(
- ulong *realloced
- );
- int reset_sql(
- ulong sql_type
- );
+ int store_sql_to_bulk_tmp_table(spider_string *str, TABLE *tmp_table);
+ int restore_sql_from_bulk_tmp_table(spider_string *str, TABLE *tmp_table);
+ int insert_lock_tables_list(SPIDER_CONN *conn, int link_idx);
+ int append_lock_tables_list(SPIDER_CONN *conn, int link_idx, int *appended);
+ int realloc_sql(ulong *realloced);
+ int reset_sql(ulong sql_type);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- int reset_keys(
- ulong sql_type
- );
- int reset_upds(
- ulong sql_type
- );
- int reset_strs(
- ulong sql_type
- );
- int reset_strs_pos(
- ulong sql_type
- );
- int push_back_upds(
- SPIDER_HS_STRING_REF &info
- );
+ int reset_keys(ulong sql_type);
+ int reset_upds(ulong sql_type);
+ int reset_strs(ulong sql_type);
+ int reset_strs_pos(ulong sql_type);
+ int push_back_upds(SPIDER_HS_STRING_REF &info);
#endif
- bool need_lock_before_set_sql_for_exec(
- ulong sql_type
- );
+ bool need_lock_before_set_sql_for_exec(ulong sql_type);
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- int set_sql_for_exec(
- ulong sql_type,
- int link_idx,
- SPIDER_LINK_IDX_CHAIN *link_idx_chain
- );
+ int set_sql_for_exec(ulong sql_type, int link_idx,
+ SPIDER_LINK_IDX_CHAIN *link_idx_chain);
#endif
- int set_sql_for_exec(
- ulong sql_type,
- int link_idx
- );
- int set_sql_for_exec(
- spider_db_copy_table *tgt_ct,
- ulong sql_type
- );
- int execute_sql(
- ulong sql_type,
- SPIDER_CONN *conn,
- int quick_mode,
- int *need_mon
- );
+ int set_sql_for_exec(ulong sql_type, int link_idx);
+ int set_sql_for_exec(spider_db_copy_table *tgt_ct, ulong sql_type);
+ int execute_sql(ulong sql_type, SPIDER_CONN *conn, int quick_mode,
+ int *need_mon);
int reset();
- int sts_mode_exchange(
- int sts_mode
- );
- int show_table_status(
- int link_idx,
- int sts_mode,
- uint flag
- );
- int crd_mode_exchange(
- int crd_mode
- );
- int show_index(
- int link_idx,
- int crd_mode
- );
- int simple_action(
- uint simple_action,
- int link_idx
- );
- int show_records(
- int link_idx
- );
+ int sts_mode_exchange(int sts_mode);
+ int show_table_status(int link_idx, int sts_mode, uint flag);
+ int crd_mode_exchange(int crd_mode);
+ int show_index(int link_idx, int crd_mode);
+ int simple_action(uint simple_action, int link_idx);
+ int show_records(int link_idx);
#ifdef HA_HAS_CHECKSUM_EXTENDED
- int checksum_table(
- int link_idx
- );
+ int checksum_table(int link_idx);
#endif
- int show_last_insert_id(
- int link_idx,
- ulonglong &last_insert_id
- );
- ha_rows explain_select(
- const key_range *start_key,
- const key_range *end_key,
- int link_idx
- );
- int lock_tables(
- int link_idx
- );
- int unlock_tables(
- int link_idx
- );
- int disable_keys(
- SPIDER_CONN *conn,
- int link_idx
- );
- int enable_keys(
- SPIDER_CONN *conn,
- int link_idx
- );
- int check_table(
- SPIDER_CONN *conn,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int repair_table(
- SPIDER_CONN *conn,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int analyze_table(
- SPIDER_CONN *conn,
- int link_idx
- );
- int optimize_table(
- SPIDER_CONN *conn,
- int link_idx
- );
- int flush_tables(
- SPIDER_CONN *conn,
- int link_idx,
- bool lock
- );
- int flush_logs(
- SPIDER_CONN *conn,
- int link_idx
- );
- int insert_opened_handler(
- SPIDER_CONN *conn,
- int link_idx
- );
- int delete_opened_handler(
- SPIDER_CONN *conn,
- int link_idx
- );
- int sync_from_clone_source(
- spider_db_handler *dbton_hdl
- );
- bool support_use_handler(
- int use_handler
- );
+ int show_last_insert_id(int link_idx, ulonglong &last_insert_id);
+ ha_rows explain_select(const key_range *start_key, const key_range *end_key,
+ int link_idx);
+ int lock_tables(int link_idx);
+ int unlock_tables(int link_idx);
+ int disable_keys(SPIDER_CONN *conn, int link_idx);
+ int enable_keys(SPIDER_CONN *conn, int link_idx);
+ int check_table(SPIDER_CONN *conn, int link_idx, HA_CHECK_OPT *check_opt);
+ int repair_table(SPIDER_CONN *conn, int link_idx, HA_CHECK_OPT *check_opt);
+ int analyze_table(SPIDER_CONN *conn, int link_idx);
+ int optimize_table(SPIDER_CONN *conn, int link_idx);
+ int flush_tables(SPIDER_CONN *conn, int link_idx, bool lock);
+ int flush_logs(SPIDER_CONN *conn, int link_idx);
+ int insert_opened_handler(SPIDER_CONN *conn, int link_idx);
+ int delete_opened_handler(SPIDER_CONN *conn, int link_idx);
+ int sync_from_clone_source(spider_db_handler *dbton_hdl);
+ bool support_use_handler(int use_handler);
void minimum_select_bitmap_create();
- bool minimum_select_bit_is_set(
- uint field_index
- );
- void copy_minimum_select_bitmap(
- uchar *bitmap
- );
+ bool minimum_select_bit_is_set(uint field_index);
+ void copy_minimum_select_bitmap(uchar *bitmap);
int init_union_table_name_pos();
int set_union_table_name_pos();
- int reset_union_table_name(
- spider_string *str,
- int link_idx,
- ulong sql_type
- );
+ int reset_union_table_name(spider_string *str, int link_idx, ulong sql_type);
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- int append_from_and_tables_part(
- spider_fields *fields,
- ulong sql_type
- );
- int reappend_tables_part(
- spider_fields *fields,
- ulong sql_type
- );
- int append_where_part(
- ulong sql_type
- );
- int append_having_part(
- ulong sql_type
- );
- int append_item_type_part(
- Item *item,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- );
- int append_list_item_select_part(
- List<Item> *select,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- );
- int append_list_item_select(
- List<Item> *select,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- );
- int append_group_by_part(
- ORDER *order,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- );
- int append_group_by(
- ORDER *order,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- );
- int append_order_by_part(
- ORDER *order,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- );
- int append_order_by(
- ORDER *order,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- );
+ int append_from_and_tables_part(spider_fields *fields, ulong sql_type);
+ int reappend_tables_part(spider_fields *fields, ulong sql_type);
+ int append_where_part(ulong sql_type);
+ int append_having_part(ulong sql_type);
+ int append_item_type_part(Item *item, const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields,
+ ulong sql_type);
+ int append_list_item_select_part(List<Item> *select, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields, ulong sql_type);
+ int append_list_item_select(List<Item> *select, spider_string *str,
+ const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields);
+ int append_group_by_part(ORDER *order, const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields,
+ ulong sql_type);
+ int append_group_by(ORDER *order, spider_string *str, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields);
+ int append_order_by_part(ORDER *order, const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields,
+ ulong sql_type);
+ int append_order_by(ORDER *order, spider_string *str, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields);
#endif
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- bool check_direct_update(
- st_select_lex *select_lex,
- longlong select_limit,
- longlong offset_limit
- );
- bool check_direct_delete(
- st_select_lex *select_lex,
- longlong select_limit,
- longlong offset_limit
- );
+ bool check_direct_update(st_select_lex *select_lex, longlong select_limit,
+ longlong offset_limit);
+ bool check_direct_delete(st_select_lex *select_lex, longlong select_limit,
+ longlong offset_limit);
#endif
};
-class spider_mysql_handler: public spider_mbase_handler
-{
-public:
- spider_mysql_handler(
- ha_spider *spider,
- spider_mbase_share *share
- );
+class spider_mysql_handler : public spider_mbase_handler {
+ public:
+ spider_mysql_handler(ha_spider *spider, spider_mbase_share *share);
~spider_mysql_handler();
};
-class spider_mariadb_handler: public spider_mbase_handler
-{
-public:
- spider_mariadb_handler(
- ha_spider *spider,
- spider_mbase_share *share
- );
+class spider_mariadb_handler : public spider_mbase_handler {
+ public:
+ spider_mariadb_handler(ha_spider *spider, spider_mbase_share *share);
~spider_mariadb_handler();
};
-class spider_mbase_copy_table: public spider_db_copy_table
-{
-public:
- spider_mbase_share *mysql_share;
- spider_string sql;
- uint pos;
- spider_mbase_copy_table(
- spider_mbase_share *db_share
- );
+class spider_mbase_copy_table : public spider_db_copy_table {
+ public:
+ spider_mbase_share *mysql_share;
+ spider_string sql;
+ uint pos;
+ spider_mbase_copy_table(spider_mbase_share *db_share);
virtual ~spider_mbase_copy_table();
int init();
- void set_sql_charset(
- CHARSET_INFO *cs
- );
+ void set_sql_charset(CHARSET_INFO *cs);
int append_select_str();
- int append_insert_str(
- int insert_flg
- );
- int append_table_columns(
- TABLE_SHARE *table_share
- );
+ int append_insert_str(int insert_flg);
+ int append_table_columns(TABLE_SHARE *table_share);
int append_from_str();
- int append_table_name(
- int link_idx
- );
+ int append_table_name(int link_idx);
void set_sql_pos();
void set_sql_to_pos();
- int append_copy_where(
- spider_db_copy_table *source_ct,
- KEY *key_info,
- ulong *last_row_pos,
- ulong *last_lengths
- );
- int append_key_order_str(
- KEY *key_info,
- int start_pos,
- bool desc_flg
- );
- int append_limit(
- longlong offset,
- longlong limit
- );
+ int append_copy_where(spider_db_copy_table *source_ct, KEY *key_info,
+ ulong *last_row_pos, ulong *last_lengths);
+ int append_key_order_str(KEY *key_info, int start_pos, bool desc_flg);
+ int append_limit(longlong offset, longlong limit);
int append_into_str();
int append_open_paren_str();
int append_values_str();
- int append_select_lock_str(
- int lock_mode
- );
- int exec_query(
- SPIDER_CONN *conn,
- int quick_mode,
- int *need_mon
- );
- int copy_key_row(
- spider_db_copy_table *source_ct,
- Field *field,
- ulong *row_pos,
- ulong *length,
- const char *joint_str,
- const int joint_length
- );
- int copy_row(
- Field *field,
- SPIDER_DB_ROW *row
- );
- int copy_rows(
- TABLE *table,
- SPIDER_DB_ROW *row,
- ulong **last_row_pos,
- ulong **last_lengths
- );
- int copy_rows(
- TABLE *table,
- SPIDER_DB_ROW *row
- );
+ int append_select_lock_str(int lock_mode);
+ int exec_query(SPIDER_CONN *conn, int quick_mode, int *need_mon);
+ int copy_key_row(spider_db_copy_table *source_ct, Field *field,
+ ulong *row_pos, ulong *length, const char *joint_str,
+ const int joint_length);
+ int copy_row(Field *field, SPIDER_DB_ROW *row);
+ int copy_rows(TABLE *table, SPIDER_DB_ROW *row, ulong **last_row_pos,
+ ulong **last_lengths);
+ int copy_rows(TABLE *table, SPIDER_DB_ROW *row);
int append_insert_terminator();
- int copy_insert_values(
- spider_db_copy_table *source_ct
- );
+ int copy_insert_values(spider_db_copy_table *source_ct);
};
-class spider_mysql_copy_table: public spider_mbase_copy_table
-{
-public:
- spider_mysql_copy_table(
- spider_mbase_share *db_share
- );
+class spider_mysql_copy_table : public spider_mbase_copy_table {
+ public:
+ spider_mysql_copy_table(spider_mbase_share *db_share);
~spider_mysql_copy_table();
};
-class spider_mariadb_copy_table: public spider_mbase_copy_table
-{
-public:
- spider_mariadb_copy_table(
- spider_mbase_share *db_share
- );
+class spider_mariadb_copy_table : public spider_mbase_copy_table {
+ public:
+ spider_mariadb_copy_table(spider_mbase_share *db_share);
~spider_mariadb_copy_table();
};
diff --git a/storage/spider/spd_db_oracle.h b/storage/spider/spd_db_oracle.h
index c8c1522599f..81caa626ae6 100644
--- a/storage/spider/spd_db_oracle.h
+++ b/storage/spider/spd_db_oracle.h
@@ -11,216 +11,111 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
class spider_db_oracle;
class spider_db_oracle_result;
-class spider_db_oracle_util: public spider_db_util
-{
-public:
+class spider_db_oracle_util : public spider_db_util {
+ public:
spider_db_oracle_util();
~spider_db_oracle_util();
- int append_name(
- spider_string *str,
- const char *name,
- uint name_length
- );
- int append_name_with_charset(
- spider_string *str,
- const char *name,
- uint name_length,
- CHARSET_INFO *name_charset
- );
- int append_escaped_name(
- spider_string *str,
- const char *name,
- uint name_length
- );
- int append_escaped_name_with_charset(
- spider_string *str,
- const char *name,
- uint name_length,
- CHARSET_INFO *name_charset
- );
- bool is_name_quote(
- const char head_code
- );
- int append_escaped_name_quote(
- spider_string *str
- );
- int append_column_value(
- ha_spider *spider,
- spider_string *str,
- Field *field,
- const uchar *new_ptr,
- CHARSET_INFO *access_charset
- );
- int append_from_with_alias(
- spider_string *str,
- const char **table_names,
- uint *table_name_lengths,
- const char **table_aliases,
- uint *table_alias_lengths,
- uint table_count,
- int *table_name_pos,
- bool over_write
- );
- int append_trx_isolation(
- spider_string *str,
- int trx_isolation
- );
- int append_autocommit(
- spider_string *str,
- bool autocommit
- );
- int append_sql_log_off(
- spider_string *str,
- bool sql_log_off
- );
- int append_wait_timeout(
- spider_string *str,
- int wait_timeout
- );
- int append_sql_mode(
- spider_string *str,
- sql_mode_t sql_mode
- );
- int append_time_zone(
- spider_string *str,
- Time_zone *time_zone
- );
- int append_start_transaction(
- spider_string *str
- );
- int append_xa_start(
- spider_string *str,
- XID *xid
- );
- int append_lock_table_head(
- spider_string *str
- );
- int append_lock_table_body(
- spider_string *str,
- const char *db_name,
- uint db_name_length,
- CHARSET_INFO *db_name_charset,
- const char *table_name,
- uint table_name_length,
- CHARSET_INFO *table_name_charset,
- int lock_type
- );
- int append_lock_table_tail(
- spider_string *str
- );
- int append_unlock_table(
- spider_string *str
- );
- int open_item_func(
- Item_func *item_func,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- );
+ int append_name(spider_string *str, const char *name, uint name_length);
+ int append_name_with_charset(spider_string *str, const char *name,
+ uint name_length, CHARSET_INFO *name_charset);
+ int append_escaped_name(spider_string *str, const char *name,
+ uint name_length);
+ int append_escaped_name_with_charset(spider_string *str, const char *name,
+ uint name_length,
+ CHARSET_INFO *name_charset);
+ bool is_name_quote(const char head_code);
+ int append_escaped_name_quote(spider_string *str);
+ int append_column_value(ha_spider *spider, spider_string *str, Field *field,
+ const uchar *new_ptr, CHARSET_INFO *access_charset);
+ int append_from_with_alias(spider_string *str, const char **table_names,
+ uint *table_name_lengths,
+ const char **table_aliases,
+ uint *table_alias_lengths, uint table_count,
+ int *table_name_pos, bool over_write);
+ int append_trx_isolation(spider_string *str, int trx_isolation);
+ int append_autocommit(spider_string *str, bool autocommit);
+ int append_sql_log_off(spider_string *str, bool sql_log_off);
+ int append_wait_timeout(spider_string *str, int wait_timeout);
+ int append_sql_mode(spider_string *str, sql_mode_t sql_mode);
+ int append_time_zone(spider_string *str, Time_zone *time_zone);
+ int append_start_transaction(spider_string *str);
+ int append_xa_start(spider_string *str, XID *xid);
+ int append_lock_table_head(spider_string *str);
+ int append_lock_table_body(spider_string *str, const char *db_name,
+ uint db_name_length, CHARSET_INFO *db_name_charset,
+ const char *table_name, uint table_name_length,
+ CHARSET_INFO *table_name_charset, int lock_type);
+ int append_lock_table_tail(spider_string *str);
+ int append_unlock_table(spider_string *str);
+ int open_item_func(Item_func *item_func, ha_spider *spider,
+ spider_string *str, const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- int open_item_sum_func(
- Item_sum *item_sum,
- ha_spider *spider,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- );
+ int open_item_sum_func(Item_sum *item_sum, ha_spider *spider,
+ spider_string *str, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields);
#endif
- size_t escape_string(
- char *to,
- const char *from,
- size_t from_length,
- CHARSET_INFO *access_charset
- );
- int append_escaped_util(
- spider_string *to,
- String *from
- );
+ size_t escape_string(char *to, const char *from, size_t from_length,
+ CHARSET_INFO *access_charset);
+ int append_escaped_util(spider_string *to, String *from);
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- int append_from_and_tables(
- ha_spider *spider,
- spider_fields *fields,
- spider_string *str,
- TABLE_LIST *table_list,
- uint table_count
- );
- int reappend_tables(
- spider_fields *fields,
- SPIDER_LINK_IDX_CHAIN *link_idx_chain,
- spider_string *str
- );
- int append_where(
- spider_string *str
- );
- int append_having(
- spider_string *str
- );
+ int append_from_and_tables(ha_spider *spider, spider_fields *fields,
+ spider_string *str, TABLE_LIST *table_list,
+ uint table_count);
+ int reappend_tables(spider_fields *fields,
+ SPIDER_LINK_IDX_CHAIN *link_idx_chain,
+ spider_string *str);
+ int append_where(spider_string *str);
+ int append_having(spider_string *str);
#endif
};
-class spider_db_oracle_row: public spider_db_row
-{
-public:
- spider_db_oracle *db_conn;
+class spider_db_oracle_row : public spider_db_row {
+ public:
+ spider_db_oracle *db_conn;
spider_db_oracle_result *result;
- sb2 *ind;
- char **val;
- ub2 *rlen;
- sb2 *ind_first;
- char **val_first;
- ub2 *rlen_first;
- spider_string *val_str;
- spider_string *val_str_first;
- OCIDefine **defnp;
- OCILobLocator **lobhp;
- OCIParam **colhp;
- ub2 *coltp;
- ub2 *colsz;
- uint field_count;
- uint record_size;
- ulong *row_size;
- ulong *row_size_first;
- CHARSET_INFO *access_charset;
- bool cloned;
- spider_db_oracle_util util;
+ sb2 *ind;
+ char **val;
+ ub2 *rlen;
+ sb2 *ind_first;
+ char **val_first;
+ ub2 *rlen_first;
+ spider_string *val_str;
+ spider_string *val_str_first;
+ OCIDefine **defnp;
+ OCILobLocator **lobhp;
+ OCIParam **colhp;
+ ub2 *coltp;
+ ub2 *colsz;
+ uint field_count;
+ uint record_size;
+ ulong *row_size;
+ ulong *row_size_first;
+ CHARSET_INFO *access_charset;
+ bool cloned;
+ spider_db_oracle_util util;
spider_db_oracle_row();
~spider_db_oracle_row();
- int store_to_field(
- Field *field,
- CHARSET_INFO *access_charset
- );
- int append_to_str(
- spider_string *str
- );
- int append_escaped_to_str(
- spider_string *str,
- uint dbton_id
- );
+ int store_to_field(Field *field, CHARSET_INFO *access_charset);
+ int append_to_str(spider_string *str);
+ int append_escaped_to_str(spider_string *str, uint dbton_id);
void first();
void next();
bool is_null();
int val_int();
double val_real();
- my_decimal *val_decimal(
- my_decimal *decimal_value,
- CHARSET_INFO *access_charset
- );
+ my_decimal *val_decimal(my_decimal *decimal_value,
+ CHARSET_INFO *access_charset);
SPIDER_DB_ROW *clone();
- int store_to_tmp_table(
- TABLE *tmp_table,
- spider_string *str
- );
+ int store_to_tmp_table(TABLE *tmp_table, spider_string *str);
uint get_byte_size();
/* for oracle */
int init();
@@ -229,16 +124,15 @@ public:
int fetch();
};
-class spider_db_oracle_result: public spider_db_result
-{
-public:
+class spider_db_oracle_result : public spider_db_result {
+ public:
spider_db_oracle *db_conn;
- OCIStmt *stmtp;
- uint field_count;
- CHARSET_INFO *access_charset;
- bool fetched;
+ OCIStmt *stmtp;
+ uint field_count;
+ CHARSET_INFO *access_charset;
+ bool fetched;
spider_db_oracle_row row;
- int store_error_num;
+ int store_error_num;
spider_db_oracle_result(SPIDER_DB_CONN *in_db_conn);
~spider_db_oracle_result();
@@ -247,379 +141,210 @@ public:
SPIDER_DB_ROW *current_row();
SPIDER_DB_ROW *fetch_row();
SPIDER_DB_ROW *fetch_row_from_result_buffer(
- spider_db_result_buffer *spider_res_buf
- );
- SPIDER_DB_ROW *fetch_row_from_tmp_table(
- TABLE *tmp_table
- );
- int fetch_table_status(
- int mode,
- ha_statistics &stat
- );
- int fetch_table_records(
- int mode,
- ha_rows &records
- );
- int fetch_table_cardinality(
- int mode,
- TABLE *table,
- longlong *cardinality,
- uchar *cardinality_upd,
- int bitmap_size
- );
- int fetch_table_mon_status(
- int &status
- );
+ spider_db_result_buffer *spider_res_buf);
+ SPIDER_DB_ROW *fetch_row_from_tmp_table(TABLE *tmp_table);
+ int fetch_table_status(int mode, ha_statistics &stat);
+ int fetch_table_records(int mode, ha_rows &records);
+ int fetch_table_cardinality(int mode, TABLE *table, longlong *cardinality,
+ uchar *cardinality_upd, int bitmap_size);
+ int fetch_table_mon_status(int &status);
longlong num_rows();
uint num_fields();
- void move_to_pos(
- longlong pos
- );
+ void move_to_pos(longlong pos);
int get_errno();
#ifdef SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
- int fetch_columns_for_discover_table_structure(
- spider_string *str,
- CHARSET_INFO *access_charset
- );
- int fetch_index_for_discover_table_structure(
- spider_string *str,
- CHARSET_INFO *access_charset
- );
- int fetch_table_for_discover_table_structure(
- spider_string *str,
- SPIDER_SHARE *spider_share,
- CHARSET_INFO *access_charset
- );
+ int fetch_columns_for_discover_table_structure(spider_string *str,
+ CHARSET_INFO *access_charset);
+ int fetch_index_for_discover_table_structure(spider_string *str,
+ CHARSET_INFO *access_charset);
+ int fetch_table_for_discover_table_structure(spider_string *str,
+ SPIDER_SHARE *spider_share,
+ CHARSET_INFO *access_charset);
#endif
/* for oracle */
int set_column_info();
};
-class spider_db_oracle: public spider_db_conn
-{
-public:
- OCIEnv *envhp;
- OCIError *errhp;
- OCIServer *srvhp;
- OCISvcCtx *svchp;
+class spider_db_oracle : public spider_db_conn {
+ public:
+ OCIEnv *envhp;
+ OCIError *errhp;
+ OCIServer *srvhp;
+ OCISvcCtx *svchp;
OCISession *usrhp;
- OCIStmt *stmtp;
- OCITrans *txnhp;
+ OCIStmt *stmtp;
+ OCITrans *txnhp;
spider_db_oracle_result *result;
- int stored_error_num;
- const char *stored_error;
- uint update_rows;
- int table_lock_mode;
- spider_string *exec_lock_sql;
- spider_db_oracle_util util;
- ulonglong stored_last_insert_id;
- HASH lock_table_hash;
- bool lock_table_hash_inited;
- uint lock_table_hash_id;
- const char *lock_table_hash_func_name;
- const char *lock_table_hash_file_name;
- ulong lock_table_hash_line_no;
- DYNAMIC_ARRAY handler_open_array;
- bool handler_open_array_inited;
- uint handler_open_array_id;
- const char *handler_open_array_func_name;
- const char *handler_open_array_file_name;
- ulong handler_open_array_line_no;
+ int stored_error_num;
+ const char *stored_error;
+ uint update_rows;
+ int table_lock_mode;
+ spider_string *exec_lock_sql;
+ spider_db_oracle_util util;
+ ulonglong stored_last_insert_id;
+ HASH lock_table_hash;
+ bool lock_table_hash_inited;
+ uint lock_table_hash_id;
+ const char *lock_table_hash_func_name;
+ const char *lock_table_hash_file_name;
+ ulong lock_table_hash_line_no;
+ DYNAMIC_ARRAY handler_open_array;
+ bool handler_open_array_inited;
+ uint handler_open_array_id;
+ const char *handler_open_array_func_name;
+ const char *handler_open_array_file_name;
+ ulong handler_open_array_line_no;
/* for bg_connect */
- char stored_error_msg[MYSQL_ERRMSG_SIZE];
- char *tgt_host;
- char *tgt_username;
- char *tgt_password;
- long tgt_port;
- char *tgt_socket;
- char *server_name;
- int connect_retry_count;
- longlong connect_retry_interval;
+ char stored_error_msg[MYSQL_ERRMSG_SIZE];
+ char *tgt_host;
+ char *tgt_username;
+ char *tgt_password;
+ long tgt_port;
+ char *tgt_socket;
+ char *server_name;
+ int connect_retry_count;
+ longlong connect_retry_interval;
- spider_db_oracle(
- SPIDER_CONN *conn
- );
+ spider_db_oracle(SPIDER_CONN *conn);
~spider_db_oracle();
int init();
bool is_connected();
void bg_connect();
- int connect(
- char *tgt_host,
- char *tgt_username,
- char *tgt_password,
- long tgt_port,
- char *tgt_socket,
- char *server_name,
- int connect_retry_count,
- longlong connect_retry_interval
- );
+ int connect(char *tgt_host, char *tgt_username, char *tgt_password,
+ long tgt_port, char *tgt_socket, char *server_name,
+ int connect_retry_count, longlong connect_retry_interval);
int ping();
void bg_disconnect();
void disconnect();
int set_net_timeout();
- int exec_query(
- const char *query,
- uint length,
- int quick_mode
- );
+ int exec_query(const char *query, uint length, int quick_mode);
int get_errno();
const char *get_error();
- bool is_server_gone_error(
- int error_num
- );
- bool is_dup_entry_error(
- int error_num
- );
- bool is_xa_nota_error(
- int error_num
- );
- spider_db_result *store_result(
- spider_db_result_buffer **spider_res_buf,
- st_spider_db_request_key *request_key,
- int *error_num
- );
- spider_db_result *use_result(
- ha_spider *spider,
- st_spider_db_request_key *request_key,
- int *error_num
- );
+ bool is_server_gone_error(int error_num);
+ bool is_dup_entry_error(int error_num);
+ bool is_xa_nota_error(int error_num);
+ spider_db_result *store_result(spider_db_result_buffer **spider_res_buf,
+ st_spider_db_request_key *request_key,
+ int *error_num);
+ spider_db_result *use_result(ha_spider *spider,
+ st_spider_db_request_key *request_key,
+ int *error_num);
int next_result();
uint affected_rows();
uint matched_rows();
- bool inserted_info(
- spider_db_handler *handler,
- ha_copy_info *copy_info
- );
+ bool inserted_info(spider_db_handler *handler, ha_copy_info *copy_info);
ulonglong last_insert_id();
- int set_character_set(
- const char *csname
- );
- int select_db(
- const char *dbname
- );
- int consistent_snapshot(
- int *need_mon
- );
+ int set_character_set(const char *csname);
+ int select_db(const char *dbname);
+ int consistent_snapshot(int *need_mon);
bool trx_start_in_bulk_sql();
- int start_transaction(
- int *need_mon
- );
- int commit(
- int *need_mon
- );
- int rollback(
- int *need_mon
- );
+ int start_transaction(int *need_mon);
+ int commit(int *need_mon);
+ int rollback(int *need_mon);
bool xa_start_in_bulk_sql();
- int xa_start(
- XID *xid,
- int *need_mon
- );
- int xa_end(
- XID *xid,
- int *need_mon
- );
- int xa_prepare(
- XID *xid,
- int *need_mon
- );
- int xa_commit(
- XID *xid,
- int *need_mon
- );
- int xa_rollback(
- XID *xid,
- int *need_mon
- );
+ int xa_start(XID *xid, int *need_mon);
+ int xa_end(XID *xid, int *need_mon);
+ int xa_prepare(XID *xid, int *need_mon);
+ int xa_commit(XID *xid, int *need_mon);
+ int xa_rollback(XID *xid, int *need_mon);
bool set_trx_isolation_in_bulk_sql();
- int set_trx_isolation(
- int trx_isolation,
- int *need_mon
- );
+ int set_trx_isolation(int trx_isolation, int *need_mon);
bool set_autocommit_in_bulk_sql();
- int set_autocommit(
- bool autocommit,
- int *need_mon
- );
+ int set_autocommit(bool autocommit, int *need_mon);
bool set_sql_log_off_in_bulk_sql();
- int set_sql_log_off(
- bool sql_log_off,
- int *need_mon
- );
+ int set_sql_log_off(bool sql_log_off, int *need_mon);
bool set_wait_timeout_in_bulk_sql();
- int set_wait_timeout(
- int wait_timeout,
- int *need_mon
- );
+ int set_wait_timeout(int wait_timeout, int *need_mon);
bool set_sql_mode_in_bulk_sql();
- int set_sql_mode(
- sql_mode_t sql_mode,
- int *need_mon
- );
+ int set_sql_mode(sql_mode_t sql_mode, int *need_mon);
bool set_time_zone_in_bulk_sql();
- int set_time_zone(
- Time_zone *time_zone,
- int *need_mon
- );
- int show_master_status(
- SPIDER_TRX *trx,
- SPIDER_SHARE *share,
- int all_link_idx,
- int *need_mon,
- TABLE *table,
- spider_string *str,
- int mode,
- SPIDER_DB_RESULT **res1,
- SPIDER_DB_RESULT **res2
- );
+ int set_time_zone(Time_zone *time_zone, int *need_mon);
+ int show_master_status(SPIDER_TRX *trx, SPIDER_SHARE *share, int all_link_idx,
+ int *need_mon, TABLE *table, spider_string *str,
+ int mode, SPIDER_DB_RESULT **res1,
+ SPIDER_DB_RESULT **res2);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- int append_sql(
- char *sql,
- ulong sql_length,
- st_spider_db_request_key *request_key
- );
- int append_open_handler(
- uint handler_id,
- const char *db_name,
- const char *table_name,
- const char *index_name,
- const char *sql,
- st_spider_db_request_key *request_key
- );
- int append_select(
- uint handler_id,
- spider_string *sql,
- SPIDER_DB_HS_STRING_REF_BUFFER *keys,
- int limit,
- int skip,
- st_spider_db_request_key *request_key
- );
- int append_insert(
- uint handler_id,
- SPIDER_DB_HS_STRING_REF_BUFFER *upds,
- st_spider_db_request_key *request_key
- );
- int append_update(
- uint handler_id,
- spider_string *sql,
- SPIDER_DB_HS_STRING_REF_BUFFER *keys,
- SPIDER_DB_HS_STRING_REF_BUFFER *upds,
- int limit,
- int skip,
- bool increment,
- bool decrement,
- st_spider_db_request_key *request_key
- );
- int append_delete(
- uint handler_id,
- spider_string *sql,
- SPIDER_DB_HS_STRING_REF_BUFFER *keys,
- int limit,
- int skip,
- st_spider_db_request_key *request_key
- );
+ int append_sql(char *sql, ulong sql_length,
+ st_spider_db_request_key *request_key);
+ int append_open_handler(uint handler_id, const char *db_name,
+ const char *table_name, const char *index_name,
+ const char *sql,
+ st_spider_db_request_key *request_key);
+ int append_select(uint handler_id, spider_string *sql,
+ SPIDER_DB_HS_STRING_REF_BUFFER *keys, int limit, int skip,
+ st_spider_db_request_key *request_key);
+ int append_insert(uint handler_id, SPIDER_DB_HS_STRING_REF_BUFFER *upds,
+ st_spider_db_request_key *request_key);
+ int append_update(uint handler_id, spider_string *sql,
+ SPIDER_DB_HS_STRING_REF_BUFFER *keys,
+ SPIDER_DB_HS_STRING_REF_BUFFER *upds, int limit, int skip,
+ bool increment, bool decrement,
+ st_spider_db_request_key *request_key);
+ int append_delete(uint handler_id, spider_string *sql,
+ SPIDER_DB_HS_STRING_REF_BUFFER *keys, int limit, int skip,
+ st_spider_db_request_key *request_key);
void reset_request_queue();
#endif
- size_t escape_string(
- char *to,
- const char *from,
- size_t from_length
- );
+ size_t escape_string(char *to, const char *from, size_t from_length);
bool have_lock_table_list();
- int append_lock_tables(
- spider_string *str
- );
- int append_unlock_tables(
- spider_string *str
- );
+ int append_lock_tables(spider_string *str);
+ int append_unlock_tables(spider_string *str);
uint get_lock_table_hash_count();
void reset_lock_table_hash();
uint get_opened_handler_count();
void reset_opened_handler();
- void set_dup_key_idx(
- ha_spider *spider,
- int link_idx
- );
- bool cmp_request_key_to_snd(
- st_spider_db_request_key *request_key
- );
-private:
- int set_error(
- sword res,
- dvoid *hndlp,
- int error_num,
- const char *error1,
- const char *error2
- );
+ void set_dup_key_idx(ha_spider *spider, int link_idx);
+ bool cmp_request_key_to_snd(st_spider_db_request_key *request_key);
+
+ private:
+ int set_error(sword res, dvoid *hndlp, int error_num, const char *error1,
+ const char *error2);
};
-class spider_oracle_share: public spider_db_share
-{
-public:
- spider_string *table_select;
- int table_select_pos;
- spider_string *key_select;
- int *key_select_pos;
- spider_string *key_hint;
- spider_string *show_table_status;
- spider_string *show_records;
- spider_string *show_autoinc;
- spider_string *show_last_insert_id;
- spider_string *show_index;
- spider_string *table_names_str;
- spider_string *db_names_str;
- spider_string *db_table_str;
- spider_string *nextval_str;
+class spider_oracle_share : public spider_db_share {
+ public:
+ spider_string *table_select;
+ int table_select_pos;
+ spider_string *key_select;
+ int *key_select_pos;
+ spider_string *key_hint;
+ spider_string *show_table_status;
+ spider_string *show_records;
+ spider_string *show_autoinc;
+ spider_string *show_last_insert_id;
+ spider_string *show_index;
+ spider_string *table_names_str;
+ spider_string *db_names_str;
+ spider_string *db_table_str;
+ spider_string *nextval_str;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type *db_table_str_hash_value;
#endif
- uint table_nm_max_length;
- uint db_nm_max_length;
- uint nextval_max_length;
- spider_string *column_name_str;
- bool same_db_table_name;
- int first_all_link_idx;
+ uint table_nm_max_length;
+ uint db_nm_max_length;
+ uint nextval_max_length;
+ spider_string *column_name_str;
+ bool same_db_table_name;
+ int first_all_link_idx;
- spider_oracle_share(
- st_spider_share *share
- );
+ spider_oracle_share(st_spider_share *share);
~spider_oracle_share();
int init();
- uint get_column_name_length(
- uint field_index
- );
- int append_column_name(
- spider_string *str,
- uint field_index
- );
- int append_column_name_with_alias(
- spider_string *str,
- uint field_index,
- const char *alias,
- uint alias_length
- );
- int append_table_name(
- spider_string *str,
- int all_link_idx
- );
- int append_table_name_with_adjusting(
- spider_string *str,
- int all_link_idx
- );
- int append_from_with_adjusted_table_name(
- spider_string *str,
- int *table_name_pos
- );
+ uint get_column_name_length(uint field_index);
+ int append_column_name(spider_string *str, uint field_index);
+ int append_column_name_with_alias(spider_string *str, uint field_index,
+ const char *alias, uint alias_length);
+ int append_table_name(spider_string *str, int all_link_idx);
+ int append_table_name_with_adjusting(spider_string *str, int all_link_idx);
+ int append_from_with_adjusted_table_name(spider_string *str,
+ int *table_name_pos);
bool need_change_db_table_name();
#ifdef SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
- int discover_table_structure(
- SPIDER_TRX *trx,
- SPIDER_SHARE *spider_share,
- spider_string *str
- );
+ int discover_table_structure(SPIDER_TRX *trx, SPIDER_SHARE *spider_share,
+ spider_string *str);
#endif
-private:
+ private:
int create_table_names_str();
void free_table_names_str();
int create_column_name_str();
@@ -636,1000 +361,418 @@ private:
int append_show_index();
void free_show_index();
int append_table_select();
- int append_key_select(
- uint idx
- );
+ int append_key_select(uint idx);
};
-class spider_oracle_handler: public spider_db_handler
-{
- spider_string sql;
- spider_string sql_part;
- spider_string sql_part2;
- spider_string ha_sql;
- int where_pos;
- int order_pos;
- int limit_pos;
-public:
- int table_name_pos;
-private:
- int update_set_pos;
- int ha_read_pos;
- int ha_next_pos;
- int ha_where_pos;
- int ha_limit_pos;
- int ha_table_name_pos;
- uint ha_sql_handler_id;
- spider_string insert_sql;
- int insert_pos;
- int insert_table_name_pos;
- int nextval_pos;
- spider_string update_sql;
- TABLE *upd_tmp_tbl;
- TMP_TABLE_PARAM upd_tmp_tbl_prm;
- spider_string tmp_sql;
- int tmp_sql_pos1; /* drop db nm pos at tmp_table_join */
- int tmp_sql_pos2; /* create db nm pos at tmp_table_join */
- int tmp_sql_pos3; /* insert db nm pos at tmp_table_join */
- int tmp_sql_pos4; /* insert val pos at tmp_table_join */
- int tmp_sql_pos5; /* end of drop tbl at tmp_table_join */
- spider_string dup_update_sql;
- spider_string *exec_sql;
- spider_string *exec_insert_sql;
- spider_string *exec_update_sql;
- spider_string *exec_tmp_sql;
- spider_string *exec_ha_sql;
- spider_string *exec_lock_sql;
- int table_lock_mode;
- bool reading_from_bulk_tmp_table;
- bool filled_up;
- bool select_rownum_appended;
- bool update_rownum_appended;
+class spider_oracle_handler : public spider_db_handler {
+ spider_string sql;
+ spider_string sql_part;
+ spider_string sql_part2;
+ spider_string ha_sql;
+ int where_pos;
+ int order_pos;
+ int limit_pos;
+
+ public:
+ int table_name_pos;
+
+ private:
+ int update_set_pos;
+ int ha_read_pos;
+ int ha_next_pos;
+ int ha_where_pos;
+ int ha_limit_pos;
+ int ha_table_name_pos;
+ uint ha_sql_handler_id;
+ spider_string insert_sql;
+ int insert_pos;
+ int insert_table_name_pos;
+ int nextval_pos;
+ spider_string update_sql;
+ TABLE *upd_tmp_tbl;
+ TMP_TABLE_PARAM upd_tmp_tbl_prm;
+ spider_string tmp_sql;
+ int tmp_sql_pos1; /* drop db nm pos at tmp_table_join */
+ int tmp_sql_pos2; /* create db nm pos at tmp_table_join */
+ int tmp_sql_pos3; /* insert db nm pos at tmp_table_join */
+ int tmp_sql_pos4; /* insert val pos at tmp_table_join */
+ int tmp_sql_pos5; /* end of drop tbl at tmp_table_join */
+ spider_string dup_update_sql;
+ spider_string *exec_sql;
+ spider_string *exec_insert_sql;
+ spider_string *exec_update_sql;
+ spider_string *exec_tmp_sql;
+ spider_string *exec_ha_sql;
+ spider_string *exec_lock_sql;
+ int table_lock_mode;
+ bool reading_from_bulk_tmp_table;
+ bool filled_up;
+ bool select_rownum_appended;
+ bool update_rownum_appended;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
SPIDER_DB_HS_STRING_REF_BUFFER hs_upds;
#endif
- SPIDER_INT_HLD *union_table_name_pos_first;
- SPIDER_INT_HLD *union_table_name_pos_current;
-public:
- spider_oracle_share *oracle_share;
- SPIDER_LINK_FOR_HASH *link_for_hash;
- uchar *minimum_select_bitmap;
- spider_oracle_handler(
- ha_spider *spider,
- spider_oracle_share *share
- );
+ SPIDER_INT_HLD *union_table_name_pos_first;
+ SPIDER_INT_HLD *union_table_name_pos_current;
+
+ public:
+ spider_oracle_share *oracle_share;
+ SPIDER_LINK_FOR_HASH *link_for_hash;
+ uchar *minimum_select_bitmap;
+ spider_oracle_handler(ha_spider *spider, spider_oracle_share *share);
~spider_oracle_handler();
int init();
- int spider_oracle_handler::append_index_hint(
- spider_string *str,
- int link_idx,
- ulong sql_type
- );
- int append_table_name_with_adjusting(
- spider_string *str,
- int link_idx,
- ulong sql_type
- );
- int append_key_column_types(
- const key_range *start_key,
- spider_string *str
- );
- int append_key_join_columns_for_bka(
- const key_range *start_key,
- spider_string *str,
- const char **table_aliases,
- uint *table_alias_lengths
- );
- int append_tmp_table_and_sql_for_bka(
- const key_range *start_key
- );
+ int spider_oracle_handler::append_index_hint(spider_string *str, int link_idx,
+ ulong sql_type);
+ int append_table_name_with_adjusting(spider_string *str, int link_idx,
+ ulong sql_type);
+ int append_key_column_types(const key_range *start_key, spider_string *str);
+ int append_key_join_columns_for_bka(const key_range *start_key,
+ spider_string *str,
+ const char **table_aliases,
+ uint *table_alias_lengths);
+ int append_tmp_table_and_sql_for_bka(const key_range *start_key);
int reuse_tmp_table_and_sql_for_bka();
- void create_tmp_bka_table_name(
- char *tmp_table_name,
- int *tmp_table_name_length,
- int link_idx
- );
- int append_create_tmp_bka_table(
- const key_range *start_key,
- spider_string *str,
- char *tmp_table_name,
- int tmp_table_name_length,
- int *db_name_pos,
- CHARSET_INFO *table_charset
- );
- int append_drop_tmp_bka_table(
- spider_string *str,
- char *tmp_table_name,
- int tmp_table_name_length,
- int *db_name_pos,
- int *drop_table_end_pos,
- bool with_semicolon
- );
- int append_insert_tmp_bka_table(
- const key_range *start_key,
- spider_string *str,
- char *tmp_table_name,
- int tmp_table_name_length,
- int *db_name_pos
- );
- int append_union_table_and_sql_for_bka(
- const key_range *start_key
- );
+ void create_tmp_bka_table_name(char *tmp_table_name,
+ int *tmp_table_name_length, int link_idx);
+ int append_create_tmp_bka_table(const key_range *start_key,
+ spider_string *str, char *tmp_table_name,
+ int tmp_table_name_length, int *db_name_pos,
+ CHARSET_INFO *table_charset);
+ int append_drop_tmp_bka_table(spider_string *str, char *tmp_table_name,
+ int tmp_table_name_length, int *db_name_pos,
+ int *drop_table_end_pos, bool with_semicolon);
+ int append_insert_tmp_bka_table(const key_range *start_key,
+ spider_string *str, char *tmp_table_name,
+ int tmp_table_name_length, int *db_name_pos);
+ int append_union_table_and_sql_for_bka(const key_range *start_key);
int reuse_union_table_and_sql_for_bka();
- int append_insert_for_recovery(
- ulong sql_type,
- int link_idx
- );
- int append_update(
- const TABLE *table,
- my_ptrdiff_t ptr_diff
- );
- int append_update(
- const TABLE *table,
- my_ptrdiff_t ptr_diff,
- int link_idx
- );
- int append_delete(
- const TABLE *table,
- my_ptrdiff_t ptr_diff
- );
- int append_delete(
- const TABLE *table,
- my_ptrdiff_t ptr_diff,
- int link_idx
- );
+ int append_insert_for_recovery(ulong sql_type, int link_idx);
+ int append_update(const TABLE *table, my_ptrdiff_t ptr_diff);
+ int append_update(const TABLE *table, my_ptrdiff_t ptr_diff, int link_idx);
+ int append_delete(const TABLE *table, my_ptrdiff_t ptr_diff);
+ int append_delete(const TABLE *table, my_ptrdiff_t ptr_diff, int link_idx);
int append_insert_part();
- int append_insert(
- spider_string *str,
- int link_idx
- );
+ int append_insert(spider_string *str, int link_idx);
int append_update_part();
- int append_update(
- spider_string *str,
- int link_idx
- );
+ int append_update(spider_string *str, int link_idx);
int append_delete_part();
- int append_delete(
- spider_string *str
- );
- #if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
+ int append_delete(spider_string *str);
+#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
+#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
int append_increment_update_set_part();
- int append_increment_update_set(
- spider_string *str
- );
- #endif
- #endif
+ int append_increment_update_set(spider_string *str);
+#endif
+#endif
int append_update_set_part();
- int append_update_set(
- spider_string *str
- );
- #ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
+ int append_update_set(spider_string *str);
+#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
int append_direct_update_set_part();
- int append_direct_update_set(
- spider_string *str
- );
- int append_dup_update_pushdown_part(
- const char *alias,
- uint alias_length
- );
- int append_update_columns_part(
- const char *alias,
- uint alias_length
- );
+ int append_direct_update_set(spider_string *str);
+ int append_dup_update_pushdown_part(const char *alias, uint alias_length);
+ int append_update_columns_part(const char *alias, uint alias_length);
int check_update_columns_part();
- int append_update_columns(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- #endif
- int append_select_part(
- ulong sql_type
- );
- int append_select(
- spider_string *str,
- ulong sql_type
- );
- int append_table_select_part(
- ulong sql_type
- );
- int append_table_select(
- spider_string *str
- );
- int append_key_select_part(
- ulong sql_type,
- uint idx
- );
- int append_key_select(
- spider_string *str,
- uint idx
- );
- int append_minimum_select_part(
- ulong sql_type
- );
- int append_minimum_select(
- spider_string *str,
- ulong sql_type
- );
- int append_table_select_with_alias(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_key_select_with_alias(
- spider_string *str,
- const KEY *key_info,
- const char *alias,
- uint alias_length
- );
- int append_minimum_select_with_alias(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_select_columns_with_alias(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_hint_after_table_part(
- ulong sql_type
- );
- int append_hint_after_table(
- spider_string *str
- );
- void set_where_pos(
- ulong sql_type
- );
- void set_where_to_pos(
- ulong sql_type
- );
- int check_item_type(
- Item *item
- );
- int append_values_connector_part(
- ulong sql_type
- );
- int append_values_connector(
- spider_string *str
- );
- int append_values_terminator_part(
- ulong sql_type
- );
- int append_values_terminator(
- spider_string *str
- );
- int append_union_table_connector_part(
- ulong sql_type
- );
- int append_union_table_connector(
- spider_string *str
- );
- int append_union_table_terminator_part(
- ulong sql_type
- );
- int append_union_table_terminator(
- spider_string *str
- );
- int append_key_column_values_part(
- const key_range *start_key,
- ulong sql_type
- );
- int append_key_column_values(
- spider_string *str,
- const key_range *start_key
- );
- int append_key_column_values_with_name_part(
- const key_range *start_key,
- ulong sql_type
- );
- int append_key_column_values_with_name(
- spider_string *str,
- const key_range *start_key
- );
- int append_key_where_part(
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type
- );
- int append_key_where(
- spider_string *str,
- spider_string *str_part,
- spider_string *str_part2,
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type,
- bool set_order
- );
- int append_is_null_part(
- ulong sql_type,
- KEY_PART_INFO *key_part,
- const key_range *key,
- const uchar **ptr,
- bool key_eq,
- bool tgt_final
- );
- int append_is_null(
- ulong sql_type,
- spider_string *str,
- spider_string *str_part,
- spider_string *str_part2,
- KEY_PART_INFO *key_part,
- const key_range *key,
- const uchar **ptr,
- bool key_eq,
- bool tgt_final
- );
- int append_where_terminator_part(
- ulong sql_type,
- bool set_order,
- int key_count
- );
- int append_where_terminator(
- ulong sql_type,
- spider_string *str,
- spider_string *str_part,
- spider_string *str_part2,
- bool set_order,
- int key_count
- );
- int append_match_where_part(
- ulong sql_type
- );
- int append_match_where(
- spider_string *str
- );
- int append_update_where(
- spider_string *str,
- const TABLE *table,
- my_ptrdiff_t ptr_diff
- );
- int append_condition_part(
- const char *alias,
- uint alias_length,
- ulong sql_type,
- bool test_flg
- );
- int append_condition(
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool start_where,
- ulong sql_type
- );
- int append_match_against_part(
- ulong sql_type,
- st_spider_ft_info *ft_info,
- const char *alias,
- uint alias_length
- );
- int append_match_against(
- spider_string *str,
- st_spider_ft_info *ft_info,
- const char *alias,
- uint alias_length
- );
- int append_match_select_part(
- ulong sql_type,
- const char *alias,
- uint alias_length
- );
- int append_match_select(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
+ int append_update_columns(spider_string *str, const char *alias,
+ uint alias_length);
+#endif
+ int append_select_part(ulong sql_type);
+ int append_select(spider_string *str, ulong sql_type);
+ int append_table_select_part(ulong sql_type);
+ int append_table_select(spider_string *str);
+ int append_key_select_part(ulong sql_type, uint idx);
+ int append_key_select(spider_string *str, uint idx);
+ int append_minimum_select_part(ulong sql_type);
+ int append_minimum_select(spider_string *str, ulong sql_type);
+ int append_table_select_with_alias(spider_string *str, const char *alias,
+ uint alias_length);
+ int append_key_select_with_alias(spider_string *str, const KEY *key_info,
+ const char *alias, uint alias_length);
+ int append_minimum_select_with_alias(spider_string *str, const char *alias,
+ uint alias_length);
+ int append_select_columns_with_alias(spider_string *str, const char *alias,
+ uint alias_length);
+ int append_hint_after_table_part(ulong sql_type);
+ int append_hint_after_table(spider_string *str);
+ void set_where_pos(ulong sql_type);
+ void set_where_to_pos(ulong sql_type);
+ int check_item_type(Item *item);
+ int append_values_connector_part(ulong sql_type);
+ int append_values_connector(spider_string *str);
+ int append_values_terminator_part(ulong sql_type);
+ int append_values_terminator(spider_string *str);
+ int append_union_table_connector_part(ulong sql_type);
+ int append_union_table_connector(spider_string *str);
+ int append_union_table_terminator_part(ulong sql_type);
+ int append_union_table_terminator(spider_string *str);
+ int append_key_column_values_part(const key_range *start_key, ulong sql_type);
+ int append_key_column_values(spider_string *str, const key_range *start_key);
+ int append_key_column_values_with_name_part(const key_range *start_key,
+ ulong sql_type);
+ int append_key_column_values_with_name(spider_string *str,
+ const key_range *start_key);
+ int append_key_where_part(const key_range *start_key,
+ const key_range *end_key, ulong sql_type);
+ int append_key_where(spider_string *str, spider_string *str_part,
+ spider_string *str_part2, const key_range *start_key,
+ const key_range *end_key, ulong sql_type,
+ bool set_order);
+ int append_is_null_part(ulong sql_type, KEY_PART_INFO *key_part,
+ const key_range *key, const uchar **ptr, bool key_eq,
+ bool tgt_final);
+ int append_is_null(ulong sql_type, spider_string *str,
+ spider_string *str_part, spider_string *str_part2,
+ KEY_PART_INFO *key_part, const key_range *key,
+ const uchar **ptr, bool key_eq, bool tgt_final);
+ int append_where_terminator_part(ulong sql_type, bool set_order,
+ int key_count);
+ int append_where_terminator(ulong sql_type, spider_string *str,
+ spider_string *str_part, spider_string *str_part2,
+ bool set_order, int key_count);
+ int append_match_where_part(ulong sql_type);
+ int append_match_where(spider_string *str);
+ int append_update_where(spider_string *str, const TABLE *table,
+ my_ptrdiff_t ptr_diff);
+ int append_condition_part(const char *alias, uint alias_length,
+ ulong sql_type, bool test_flg);
+ int append_condition(spider_string *str, const char *alias, uint alias_length,
+ bool start_where, ulong sql_type);
+ int append_match_against_part(ulong sql_type, st_spider_ft_info *ft_info,
+ const char *alias, uint alias_length);
+ int append_match_against(spider_string *str, st_spider_ft_info *ft_info,
+ const char *alias, uint alias_length);
+ int append_match_select_part(ulong sql_type, const char *alias,
+ uint alias_length);
+ int append_match_select(spider_string *str, const char *alias,
+ uint alias_length);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- int append_sum_select_part(
- ulong sql_type,
- const char *alias,
- uint alias_length
- );
- int append_sum_select(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
+ int append_sum_select_part(ulong sql_type, const char *alias,
+ uint alias_length);
+ int append_sum_select(spider_string *str, const char *alias,
+ uint alias_length);
#endif
- void set_order_pos(
- ulong sql_type
- );
- void set_order_to_pos(
- ulong sql_type
- );
+ void set_order_pos(ulong sql_type);
+ void set_order_to_pos(ulong sql_type);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
- int append_group_by_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_group_by(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
+ int append_group_by_part(const char *alias, uint alias_length,
+ ulong sql_type);
+ int append_group_by(spider_string *str, const char *alias, uint alias_length);
#endif
- int append_key_order_for_merge_with_alias_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_key_order_for_merge_with_alias(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_key_order_for_direct_order_limit_with_alias_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_key_order_for_direct_order_limit_with_alias(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_key_order_with_alias_part(
- const char *alias,
- uint alias_length,
- ulong sql_type
- );
- int append_key_order_for_handler(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_key_order_with_alias(
- spider_string *str,
- const char *alias,
- uint alias_length
- );
- int append_limit_part(
- longlong offset,
- longlong limit,
- ulong sql_type
- );
- int reappend_limit_part(
- longlong offset,
- longlong limit,
- ulong sql_type
- );
- int append_limit(
- spider_string *str,
- longlong offset,
- longlong limit
- );
- int append_select_lock_part(
- ulong sql_type
- );
- int append_select_lock(
- spider_string *str
- );
- int append_union_all_start_part(
- ulong sql_type
- );
- int append_union_all_start(
- spider_string *str
- );
- int append_union_all_part(
- ulong sql_type
- );
- int append_union_all(
- spider_string *str
- );
- int append_union_all_end_part(
- ulong sql_type
- );
- int append_union_all_end(
- spider_string *str
- );
- int append_multi_range_cnt_part(
- ulong sql_type,
- uint multi_range_cnt,
- bool with_comma
- );
- int append_multi_range_cnt(
- spider_string *str,
- uint multi_range_cnt,
- bool with_comma
- );
- int append_multi_range_cnt_with_name_part(
- ulong sql_type,
- uint multi_range_cnt
- );
- int append_multi_range_cnt_with_name(
- spider_string *str,
- uint multi_range_cnt
- );
- int append_open_handler_part(
- ulong sql_type,
- uint handler_id,
- SPIDER_CONN *conn,
- int link_idx
- );
- int append_open_handler(
- spider_string *str,
- uint handler_id,
- SPIDER_CONN *conn,
- int link_idx
- );
- int append_close_handler_part(
- ulong sql_type,
- int link_idx
- );
- int append_close_handler(
- spider_string *str,
- int link_idx
- );
- int append_insert_terminator_part(
- ulong sql_type
- );
- int append_insert_terminator(
- spider_string *str
- );
- int append_insert_values_part(
- ulong sql_type
- );
- int append_insert_values(
- spider_string *str
- );
- int append_into_part(
- ulong sql_type
- );
- int append_into(
- spider_string *str
- );
- void set_insert_to_pos(
- ulong sql_type
- );
- int append_from_part(
- ulong sql_type,
- int link_idx
- );
- int append_from(
- spider_string *str,
- ulong sql_type,
- int link_idx
- );
- int append_flush_tables_part(
- ulong sql_type,
- int link_idx,
- bool lock
- );
- int append_flush_tables(
- spider_string *str,
- int link_idx,
- bool lock
- );
- int append_optimize_table_part(
- ulong sql_type,
- int link_idx
- );
- int append_optimize_table(
- spider_string *str,
- int link_idx
- );
- int append_analyze_table_part(
- ulong sql_type,
- int link_idx
- );
- int append_analyze_table(
- spider_string *str,
- int link_idx
- );
- int append_repair_table_part(
- ulong sql_type,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int append_repair_table(
- spider_string *str,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int append_check_table_part(
- ulong sql_type,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int append_check_table(
- spider_string *str,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int append_enable_keys_part(
- ulong sql_type,
- int link_idx
- );
- int append_enable_keys(
- spider_string *str,
- int link_idx
- );
- int append_disable_keys_part(
- ulong sql_type,
- int link_idx
- );
- int append_disable_keys(
- spider_string *str,
- int link_idx
- );
- int append_delete_all_rows_part(
- ulong sql_type
- );
- int append_delete_all_rows(
- spider_string *str,
- ulong sql_type
- );
- int append_truncate(
- spider_string *str,
- ulong sql_type,
- int link_idx
- );
- int append_explain_select_part(
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type,
- int link_idx
- );
- int append_explain_select(
- spider_string *str,
- const key_range *start_key,
- const key_range *end_key,
- ulong sql_type,
- int link_idx
- );
- bool is_sole_projection_field(
- uint16 field_index
- );
- bool is_bulk_insert_exec_period(
- bool bulk_end
- );
- bool sql_is_filled_up(
- ulong sql_type
- );
- bool sql_is_empty(
- ulong sql_type
- );
+ int append_key_order_for_merge_with_alias_part(const char *alias,
+ uint alias_length,
+ ulong sql_type);
+ int append_key_order_for_merge_with_alias(spider_string *str,
+ const char *alias,
+ uint alias_length);
+ int append_key_order_for_direct_order_limit_with_alias_part(const char *alias,
+ uint alias_length,
+ ulong sql_type);
+ int append_key_order_for_direct_order_limit_with_alias(spider_string *str,
+ const char *alias,
+ uint alias_length);
+ int append_key_order_with_alias_part(const char *alias, uint alias_length,
+ ulong sql_type);
+ int append_key_order_for_handler(spider_string *str, const char *alias,
+ uint alias_length);
+ int append_key_order_with_alias(spider_string *str, const char *alias,
+ uint alias_length);
+ int append_limit_part(longlong offset, longlong limit, ulong sql_type);
+ int reappend_limit_part(longlong offset, longlong limit, ulong sql_type);
+ int append_limit(spider_string *str, longlong offset, longlong limit);
+ int append_select_lock_part(ulong sql_type);
+ int append_select_lock(spider_string *str);
+ int append_union_all_start_part(ulong sql_type);
+ int append_union_all_start(spider_string *str);
+ int append_union_all_part(ulong sql_type);
+ int append_union_all(spider_string *str);
+ int append_union_all_end_part(ulong sql_type);
+ int append_union_all_end(spider_string *str);
+ int append_multi_range_cnt_part(ulong sql_type, uint multi_range_cnt,
+ bool with_comma);
+ int append_multi_range_cnt(spider_string *str, uint multi_range_cnt,
+ bool with_comma);
+ int append_multi_range_cnt_with_name_part(ulong sql_type,
+ uint multi_range_cnt);
+ int append_multi_range_cnt_with_name(spider_string *str,
+ uint multi_range_cnt);
+ int append_open_handler_part(ulong sql_type, uint handler_id,
+ SPIDER_CONN *conn, int link_idx);
+ int append_open_handler(spider_string *str, uint handler_id,
+ SPIDER_CONN *conn, int link_idx);
+ int append_close_handler_part(ulong sql_type, int link_idx);
+ int append_close_handler(spider_string *str, int link_idx);
+ int append_insert_terminator_part(ulong sql_type);
+ int append_insert_terminator(spider_string *str);
+ int append_insert_values_part(ulong sql_type);
+ int append_insert_values(spider_string *str);
+ int append_into_part(ulong sql_type);
+ int append_into(spider_string *str);
+ void set_insert_to_pos(ulong sql_type);
+ int append_from_part(ulong sql_type, int link_idx);
+ int append_from(spider_string *str, ulong sql_type, int link_idx);
+ int append_flush_tables_part(ulong sql_type, int link_idx, bool lock);
+ int append_flush_tables(spider_string *str, int link_idx, bool lock);
+ int append_optimize_table_part(ulong sql_type, int link_idx);
+ int append_optimize_table(spider_string *str, int link_idx);
+ int append_analyze_table_part(ulong sql_type, int link_idx);
+ int append_analyze_table(spider_string *str, int link_idx);
+ int append_repair_table_part(ulong sql_type, int link_idx,
+ HA_CHECK_OPT *check_opt);
+ int append_repair_table(spider_string *str, int link_idx,
+ HA_CHECK_OPT *check_opt);
+ int append_check_table_part(ulong sql_type, int link_idx,
+ HA_CHECK_OPT *check_opt);
+ int append_check_table(spider_string *str, int link_idx,
+ HA_CHECK_OPT *check_opt);
+ int append_enable_keys_part(ulong sql_type, int link_idx);
+ int append_enable_keys(spider_string *str, int link_idx);
+ int append_disable_keys_part(ulong sql_type, int link_idx);
+ int append_disable_keys(spider_string *str, int link_idx);
+ int append_delete_all_rows_part(ulong sql_type);
+ int append_delete_all_rows(spider_string *str, ulong sql_type);
+ int append_truncate(spider_string *str, ulong sql_type, int link_idx);
+ int append_explain_select_part(const key_range *start_key,
+ const key_range *end_key, ulong sql_type,
+ int link_idx);
+ int append_explain_select(spider_string *str, const key_range *start_key,
+ const key_range *end_key, ulong sql_type,
+ int link_idx);
+ bool is_sole_projection_field(uint16 field_index);
+ bool is_bulk_insert_exec_period(bool bulk_end);
+ bool sql_is_filled_up(ulong sql_type);
+ bool sql_is_empty(ulong sql_type);
bool support_multi_split_read();
bool support_bulk_update();
int bulk_tmp_table_insert();
- int bulk_tmp_table_insert(
- int link_idx
- );
+ int bulk_tmp_table_insert(int link_idx);
int bulk_tmp_table_end_bulk_insert();
int bulk_tmp_table_rnd_init();
int bulk_tmp_table_rnd_next();
int bulk_tmp_table_rnd_end();
- bool need_copy_for_update(
- int link_idx
- );
+ bool need_copy_for_update(int link_idx);
bool bulk_tmp_table_created();
int mk_bulk_tmp_table_and_bulk_start();
void rm_bulk_tmp_table();
- int store_sql_to_bulk_tmp_table(
- spider_string *str,
- TABLE *tmp_table
- );
- int restore_sql_from_bulk_tmp_table(
- spider_string *str,
- TABLE *tmp_table
- );
- int insert_lock_tables_list(
- SPIDER_CONN *conn,
- int link_idx
- );
- int append_lock_tables_list(
- SPIDER_CONN *conn,
- int link_idx,
- int *appended
- );
- int realloc_sql(
- ulong *realloced
- );
- int reset_sql(
- ulong sql_type
- );
+ int store_sql_to_bulk_tmp_table(spider_string *str, TABLE *tmp_table);
+ int restore_sql_from_bulk_tmp_table(spider_string *str, TABLE *tmp_table);
+ int insert_lock_tables_list(SPIDER_CONN *conn, int link_idx);
+ int append_lock_tables_list(SPIDER_CONN *conn, int link_idx, int *appended);
+ int realloc_sql(ulong *realloced);
+ int reset_sql(ulong sql_type);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- int reset_keys(
- ulong sql_type
- );
- int reset_upds(
- ulong sql_type
- );
- int reset_strs(
- ulong sql_type
- );
- int reset_strs_pos(
- ulong sql_type
- );
- int push_back_upds(
- SPIDER_HS_STRING_REF &info
- );
+ int reset_keys(ulong sql_type);
+ int reset_upds(ulong sql_type);
+ int reset_strs(ulong sql_type);
+ int reset_strs_pos(ulong sql_type);
+ int push_back_upds(SPIDER_HS_STRING_REF &info);
#endif
- bool need_lock_before_set_sql_for_exec(
- ulong sql_type
- );
+ bool need_lock_before_set_sql_for_exec(ulong sql_type);
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- int set_sql_for_exec(
- ulong sql_type,
- int link_idx,
- SPIDER_LINK_IDX_CHAIN *link_idx_chain
- );
+ int set_sql_for_exec(ulong sql_type, int link_idx,
+ SPIDER_LINK_IDX_CHAIN *link_idx_chain);
#endif
- int set_sql_for_exec(
- ulong sql_type,
- int link_idx
- );
- int set_sql_for_exec(
- spider_db_copy_table *tgt_ct,
- ulong sql_type
- );
- int execute_sql(
- ulong sql_type,
- SPIDER_CONN *conn,
- int quick_mode,
- int *need_mon
- );
+ int set_sql_for_exec(ulong sql_type, int link_idx);
+ int set_sql_for_exec(spider_db_copy_table *tgt_ct, ulong sql_type);
+ int execute_sql(ulong sql_type, SPIDER_CONN *conn, int quick_mode,
+ int *need_mon);
int reset();
- int sts_mode_exchange(
- int sts_mode
- );
- int show_table_status(
- int link_idx,
- int sts_mode,
- uint flag
- );
- int crd_mode_exchange(
- int crd_mode
- );
- int show_index(
- int link_idx,
- int crd_mode
- );
- int show_records(
- int link_idx
- );
- int show_autoinc(
- int link_idx
- );
- int show_last_insert_id(
- int link_idx,
- ulonglong &last_insert_id
- );
- ha_rows explain_select(
- const key_range *start_key,
- const key_range *end_key,
- int link_idx
- );
- int lock_tables(
- int link_idx
- );
- int unlock_tables(
- int link_idx
- );
- int disable_keys(
- SPIDER_CONN *conn,
- int link_idx
- );
- int enable_keys(
- SPIDER_CONN *conn,
- int link_idx
- );
- int check_table(
- SPIDER_CONN *conn,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int repair_table(
- SPIDER_CONN *conn,
- int link_idx,
- HA_CHECK_OPT* check_opt
- );
- int analyze_table(
- SPIDER_CONN *conn,
- int link_idx
- );
- int optimize_table(
- SPIDER_CONN *conn,
- int link_idx
- );
- int flush_tables(
- SPIDER_CONN *conn,
- int link_idx,
- bool lock
- );
- int flush_logs(
- SPIDER_CONN *conn,
- int link_idx
- );
- int insert_opened_handler(
- SPIDER_CONN *conn,
- int link_idx
- );
- int delete_opened_handler(
- SPIDER_CONN *conn,
- int link_idx
- );
- int sync_from_clone_source(
- spider_db_handler *dbton_hdl
- );
- bool support_use_handler(
- int use_handler
- );
+ int sts_mode_exchange(int sts_mode);
+ int show_table_status(int link_idx, int sts_mode, uint flag);
+ int crd_mode_exchange(int crd_mode);
+ int show_index(int link_idx, int crd_mode);
+ int show_records(int link_idx);
+ int show_autoinc(int link_idx);
+ int show_last_insert_id(int link_idx, ulonglong &last_insert_id);
+ ha_rows explain_select(const key_range *start_key, const key_range *end_key,
+ int link_idx);
+ int lock_tables(int link_idx);
+ int unlock_tables(int link_idx);
+ int disable_keys(SPIDER_CONN *conn, int link_idx);
+ int enable_keys(SPIDER_CONN *conn, int link_idx);
+ int check_table(SPIDER_CONN *conn, int link_idx, HA_CHECK_OPT *check_opt);
+ int repair_table(SPIDER_CONN *conn, int link_idx, HA_CHECK_OPT *check_opt);
+ int analyze_table(SPIDER_CONN *conn, int link_idx);
+ int optimize_table(SPIDER_CONN *conn, int link_idx);
+ int flush_tables(SPIDER_CONN *conn, int link_idx, bool lock);
+ int flush_logs(SPIDER_CONN *conn, int link_idx);
+ int insert_opened_handler(SPIDER_CONN *conn, int link_idx);
+ int delete_opened_handler(SPIDER_CONN *conn, int link_idx);
+ int sync_from_clone_source(spider_db_handler *dbton_hdl);
+ bool support_use_handler(int use_handler);
void minimum_select_bitmap_create();
- bool minimum_select_bit_is_set(
- uint field_index
- );
- void copy_minimum_select_bitmap(
- uchar *bitmap
- );
+ bool minimum_select_bit_is_set(uint field_index);
+ void copy_minimum_select_bitmap(uchar *bitmap);
int init_union_table_name_pos();
int set_union_table_name_pos();
- int reset_union_table_name(
- spider_string *str,
- int link_idx,
- ulong sql_type
- );
+ int reset_union_table_name(spider_string *str, int link_idx, ulong sql_type);
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- int append_from_and_tables_part(
- spider_fields *fields,
- ulong sql_type
- );
- int reappend_tables_part(
- spider_fields *fields,
- ulong sql_type
- );
- int append_where_part(
- ulong sql_type
- );
- int append_having_part(
- ulong sql_type
- );
- int append_item_type_part(
- Item *item,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- );
- int append_list_item_select_part(
- List<Item> *select,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- );
- int append_list_item_select(
- List<Item> *select,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- );
- int append_group_by_part(
- ORDER *order,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- );
- int append_group_by(
- ORDER *order,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- );
- int append_order_by_part(
- ORDER *order,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields,
- ulong sql_type
- );
- int append_order_by(
- ORDER *order,
- spider_string *str,
- const char *alias,
- uint alias_length,
- bool use_fields,
- spider_fields *fields
- );
+ int append_from_and_tables_part(spider_fields *fields, ulong sql_type);
+ int reappend_tables_part(spider_fields *fields, ulong sql_type);
+ int append_where_part(ulong sql_type);
+ int append_having_part(ulong sql_type);
+ int append_item_type_part(Item *item, const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields,
+ ulong sql_type);
+ int append_list_item_select_part(List<Item> *select, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields, ulong sql_type);
+ int append_list_item_select(List<Item> *select, spider_string *str,
+ const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields);
+ int append_group_by_part(ORDER *order, const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields,
+ ulong sql_type);
+ int append_group_by(ORDER *order, spider_string *str, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields);
+ int append_order_by_part(ORDER *order, const char *alias, uint alias_length,
+ bool use_fields, spider_fields *fields,
+ ulong sql_type);
+ int append_order_by(ORDER *order, spider_string *str, const char *alias,
+ uint alias_length, bool use_fields,
+ spider_fields *fields);
#endif
};
-class spider_oracle_copy_table: public spider_db_copy_table
-{
-public:
- spider_oracle_share *oracle_share;
- spider_string sql;
- spider_string sql_part;
- uint pos;
- uint table_name_pos;
- uint pos_diff;
- int table_lock_mode;
- int store_link_idx;
- bool select_rownum_appended;
- spider_string *first_str;
- spider_string *current_str;
- spider_oracle_copy_table(
- spider_oracle_share *db_share
- );
+class spider_oracle_copy_table : public spider_db_copy_table {
+ public:
+ spider_oracle_share *oracle_share;
+ spider_string sql;
+ spider_string sql_part;
+ uint pos;
+ uint table_name_pos;
+ uint pos_diff;
+ int table_lock_mode;
+ int store_link_idx;
+ bool select_rownum_appended;
+ spider_string *first_str;
+ spider_string *current_str;
+ spider_oracle_copy_table(spider_oracle_share *db_share);
~spider_oracle_copy_table();
int init();
- void set_sql_charset(
- CHARSET_INFO *cs
- );
+ void set_sql_charset(CHARSET_INFO *cs);
int append_select_str();
- int append_insert_str(
- int insert_flg
- );
- int append_table_columns(
- TABLE_SHARE *table_share
- );
+ int append_insert_str(int insert_flg);
+ int append_table_columns(TABLE_SHARE *table_share);
int append_from_str();
- int append_table_name(
- int link_idx
- );
+ int append_table_name(int link_idx);
void set_sql_pos();
void set_sql_to_pos();
- int append_copy_where(
- spider_db_copy_table *source_ct,
- KEY *key_info,
- ulong *last_row_pos,
- ulong *last_lengths
- );
- int append_key_order_str(
- KEY *key_info,
- int start_pos,
- bool desc_flg
- );
- int append_limit(
- longlong offset,
- longlong limit
- );
+ int append_copy_where(spider_db_copy_table *source_ct, KEY *key_info,
+ ulong *last_row_pos, ulong *last_lengths);
+ int append_key_order_str(KEY *key_info, int start_pos, bool desc_flg);
+ int append_limit(longlong offset, longlong limit);
int append_into_str();
int append_open_paren_str();
int append_values_str();
- int append_select_lock_str(
- int lock_mode
- );
- int exec_query(
- SPIDER_CONN *conn,
- int quick_mode,
- int *need_mon
- );
- int copy_key_row(
- spider_db_copy_table *source_ct,
- Field *field,
- ulong *row_pos,
- ulong *length,
- const char *joint_str,
- const int joint_length
- );
- int copy_row(
- Field *field,
- SPIDER_DB_ROW *row
- );
- int copy_rows(
- TABLE *table,
- SPIDER_DB_ROW *row,
- ulong **last_row_pos,
- ulong **last_lengths
- );
- int copy_rows(
- TABLE *table,
- SPIDER_DB_ROW *row
- );
+ int append_select_lock_str(int lock_mode);
+ int exec_query(SPIDER_CONN *conn, int quick_mode, int *need_mon);
+ int copy_key_row(spider_db_copy_table *source_ct, Field *field,
+ ulong *row_pos, ulong *length, const char *joint_str,
+ const int joint_length);
+ int copy_row(Field *field, SPIDER_DB_ROW *row);
+ int copy_rows(TABLE *table, SPIDER_DB_ROW *row, ulong **last_row_pos,
+ ulong **last_lengths);
+ int copy_rows(TABLE *table, SPIDER_DB_ROW *row);
int append_insert_terminator();
- int copy_insert_values(
- spider_db_copy_table *source_ct
- );
+ int copy_insert_values(spider_db_copy_table *source_ct);
};
diff --git a/storage/spider/spd_direct_sql.h b/storage/spider/spd_direct_sql.h
index bf3e24caa13..b432439f945 100644
--- a/storage/spider/spd_direct_sql.h
+++ b/storage/spider/spd_direct_sql.h
@@ -11,57 +11,35 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
-uint spider_udf_calc_hash(
- char *key,
- uint mod
-);
+uint spider_udf_calc_hash(char *key, uint mod);
-int spider_udf_direct_sql_create_table_list(
- SPIDER_DIRECT_SQL *direct_sql,
- char *table_name_list,
- uint table_name_list_length
-);
+int spider_udf_direct_sql_create_table_list(SPIDER_DIRECT_SQL *direct_sql,
+ char *table_name_list,
+ uint table_name_list_length);
-int spider_udf_direct_sql_create_conn_key(
- SPIDER_DIRECT_SQL *direct_sql
-);
+int spider_udf_direct_sql_create_conn_key(SPIDER_DIRECT_SQL *direct_sql);
SPIDER_CONN *spider_udf_direct_sql_create_conn(
- const SPIDER_DIRECT_SQL *direct_sql,
- int *error_num
-);
+ const SPIDER_DIRECT_SQL *direct_sql, int *error_num);
-SPIDER_CONN *spider_udf_direct_sql_get_conn(
- const SPIDER_DIRECT_SQL *direct_sql,
- SPIDER_TRX *trx,
- int *error_num
-);
+SPIDER_CONN *spider_udf_direct_sql_get_conn(const SPIDER_DIRECT_SQL *direct_sql,
+ SPIDER_TRX *trx, int *error_num);
-int spider_udf_direct_sql_get_server(
- SPIDER_DIRECT_SQL *direct_sql
-);
+int spider_udf_direct_sql_get_server(SPIDER_DIRECT_SQL *direct_sql);
-int spider_udf_parse_direct_sql_param(
- SPIDER_TRX *trx,
- SPIDER_DIRECT_SQL *direct_sql,
- const char *param,
- int param_length
-);
+int spider_udf_parse_direct_sql_param(SPIDER_TRX *trx,
+ SPIDER_DIRECT_SQL *direct_sql,
+ const char *param, int param_length);
-int spider_udf_set_direct_sql_param_default(
- SPIDER_TRX *trx,
- SPIDER_DIRECT_SQL *direct_sql
-);
+int spider_udf_set_direct_sql_param_default(SPIDER_TRX *trx,
+ SPIDER_DIRECT_SQL *direct_sql);
-void spider_udf_free_direct_sql_alloc(
- SPIDER_DIRECT_SQL *direct_sql,
- my_bool bg
-);
+void spider_udf_free_direct_sql_alloc(SPIDER_DIRECT_SQL *direct_sql,
+ my_bool bg);
#ifndef WITHOUT_SPIDER_BG_SEARCH
-int spider_udf_bg_direct_sql(
- SPIDER_DIRECT_SQL *direct_sql
-);
+int spider_udf_bg_direct_sql(SPIDER_DIRECT_SQL *direct_sql);
#endif
diff --git a/storage/spider/spd_err.h b/storage/spider/spd_err.h
index e9a4a41946e..3c461589743 100644
--- a/storage/spider/spd_err.h
+++ b/storage/spider/spd_err.h
@@ -12,26 +12,35 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
#define ER_SPIDER_INVALID_CONNECT_INFO_NUM 12501
-#define ER_SPIDER_INVALID_CONNECT_INFO_STR "The connect info '%-.64s' is invalid"
+#define ER_SPIDER_INVALID_CONNECT_INFO_STR \
+ "The connect info '%-.64s' is invalid"
#define ER_SPIDER_INVALID_CONNECT_INFO_TOO_LONG_NUM 12502
-#define ER_SPIDER_INVALID_CONNECT_INFO_TOO_LONG_STR "The connect info '%-.64s' for %s is too long"
+#define ER_SPIDER_INVALID_CONNECT_INFO_TOO_LONG_STR \
+ "The connect info '%-.64s' for %s is too long"
#define ER_SPIDER_INVALID_UDF_PARAM_NUM 12503
#define ER_SPIDER_INVALID_UDF_PARAM_STR "The UDF parameter '%-.64s' is invalid"
#define ER_SPIDER_DIFFERENT_LINK_COUNT_NUM 12504
-#define ER_SPIDER_DIFFERENT_LINK_COUNT_STR "Different multiple table link parameter's count"
+#define ER_SPIDER_DIFFERENT_LINK_COUNT_STR \
+ "Different multiple table link parameter's count"
#define ER_SPIDER_UDF_PARAM_TOO_LONG_NUM 12505
-#define ER_SPIDER_UDF_PARAM_TOO_LONG_STR "The UDF parameter '%-.64s' is too long"
+#define ER_SPIDER_UDF_PARAM_TOO_LONG_STR \
+ "The UDF parameter '%-.64s' is too long"
#define ER_SPIDER_UDF_PARAM_REQIRED_NUM 12506
#define ER_SPIDER_UDF_PARAM_REQIRED_STR "The UDF parameter '%-.64s' is required"
#define ER_SPIDER_UDF_CANT_USE_IF_OPEN_TABLE_NUM 12507
-#define ER_SPIDER_UDF_CANT_USE_IF_OPEN_TABLE_STR "This UDF can't execute if other tables are opened"
-#define ER_SPIDER_UDF_CANT_USE_IF_OPEN_TABLE_STR_WITH_NUM "This UDF can't execute if other tables are opened '%s'=%lld"
-#define ER_SPIDER_UDF_CANT_USE_IF_OPEN_TABLE_STR_WITH_PTR "This UDF can't execute if other tables are opened '%s'=%p"
+#define ER_SPIDER_UDF_CANT_USE_IF_OPEN_TABLE_STR \
+ "This UDF can't execute if other tables are opened"
+#define ER_SPIDER_UDF_CANT_USE_IF_OPEN_TABLE_STR_WITH_NUM \
+ "This UDF can't execute if other tables are opened '%s'=%lld"
+#define ER_SPIDER_UDF_CANT_USE_IF_OPEN_TABLE_STR_WITH_PTR \
+ "This UDF can't execute if other tables are opened '%s'=%p"
#define ER_SPIDER_UDF_PING_TABLE_NO_SERVER_ID_NUM 12508
-#define ER_SPIDER_UDF_PING_TABLE_NO_SERVER_ID_STR "Current server_id is not exist"
+#define ER_SPIDER_UDF_PING_TABLE_NO_SERVER_ID_STR \
+ "Current server_id is not exist"
#define ER_SPIDER_UDF_PING_TABLE_DIFFERENT_MON_NUM 12509
#define ER_SPIDER_UDF_PING_TABLE_DIFFERENT_MON_STR "Monitor count is different"
#define ER_SPIDER_LINK_MON_OK_NUM 12510
@@ -39,7 +48,8 @@
#define ER_SPIDER_LINK_MON_NG_NUM 12511
#define ER_SPIDER_LINK_MON_NG_STR "Table '%s.%s' get a problem"
#define ER_SPIDER_LINK_MON_DRAW_FEW_MON_NUM 12512
-#define ER_SPIDER_LINK_MON_DRAW_FEW_MON_STR "Can not judge by enough monitor for table '%s.%s'"
+#define ER_SPIDER_LINK_MON_DRAW_FEW_MON_STR \
+ "Can not judge by enough monitor for table '%s.%s'"
#define ER_SPIDER_LINK_MON_DRAW_NUM 12513
#define ER_SPIDER_LINK_MON_DRAW_STR "Can not judge status for table '%s.%s'"
#define ER_SPIDER_ALL_LINKS_FAILED_NUM 12514
@@ -55,11 +65,15 @@
#define ER_SPIDER_LINK_IS_FAILOVER_NUM 12519
#define ER_SPIDER_LINK_IS_FAILOVER_STR "A link is fail-overed"
#define ER_SPIDER_AUTOINC_VAL_IS_DIFFERENT_NUM 12520
-#define ER_SPIDER_AUTOINC_VAL_IS_DIFFERENT_STR "Binlog's auto-inc value is probably different from linked table's auto-inc value"
+#define ER_SPIDER_AUTOINC_VAL_IS_DIFFERENT_STR \
+ "Binlog's auto-inc value is probably different from linked table's " \
+ "auto-inc value"
#define ER_SPIDER_SQL_WRAPPER_IS_INVALID_NUM 12521
-#define ER_SPIDER_SQL_WRAPPER_IS_INVALID_STR "Can't use wrapper '%s' for SQL connection"
+#define ER_SPIDER_SQL_WRAPPER_IS_INVALID_STR \
+ "Can't use wrapper '%s' for SQL connection"
#define ER_SPIDER_NOSQL_WRAPPER_IS_INVALID_NUM 12522
-#define ER_SPIDER_NOSQL_WRAPPER_IS_INVALID_STR "Can't use wrapper '%s' for NOSQL connection"
+#define ER_SPIDER_NOSQL_WRAPPER_IS_INVALID_STR \
+ "Can't use wrapper '%s' for NOSQL connection"
#define ER_SPIDER_REQUEST_KEY_NUM 12523
#define ER_SPIDER_REQUEST_KEY_STR "Request key not found"
#define ER_SPIDER_CANT_OPEN_SYS_TABLE_NUM 12524
@@ -67,12 +81,16 @@
#define ER_SPIDER_LINK_MON_JUST_NG_NUM 12525
#define ER_SPIDER_LINK_MON_JUST_NG_STR "Table '%s.%s' just got a problem"
#define ER_SPIDER_INVALID_CONNECT_INFO_START_WITH_NUM_NUM 12526
-#define ER_SPIDER_INVALID_CONNECT_INFO_START_WITH_NUM_STR "The connect info '%-.64s' for %s cannot start with number"
+#define ER_SPIDER_INVALID_CONNECT_INFO_START_WITH_NUM_STR \
+ "The connect info '%-.64s' for %s cannot start with number"
#define ER_SPIDER_INVALID_CONNECT_INFO_SAME_NUM 12527
-#define ER_SPIDER_INVALID_CONNECT_INFO_SAME_STR "The connect info '%-.64s' for %s cannot use same name in same table"
+#define ER_SPIDER_INVALID_CONNECT_INFO_SAME_STR \
+ "The connect info '%-.64s' for %s cannot use same name in same table"
#define ER_SPIDER_CANT_USE_BOTH_INNER_XA_AND_SNAPSHOT_NUM 12601
-#define ER_SPIDER_CANT_USE_BOTH_INNER_XA_AND_SNAPSHOT_STR "Can't use both spider_use_consistent_snapshot = 1 and spider_internal_xa = 1"
+#define ER_SPIDER_CANT_USE_BOTH_INNER_XA_AND_SNAPSHOT_STR \
+ "Can't use both spider_use_consistent_snapshot = 1 and spider_internal_xa " \
+ "= 1"
#define ER_SPIDER_XA_LOCKED_NUM 12602
#define ER_SPIDER_XA_LOCKED_STR "This xid is now locked"
#define ER_SPIDER_XA_NOT_PREPARED_NUM 12603
@@ -92,30 +110,38 @@
#define ER_SPIDER_WRONG_CHARACTER_IN_NAME_NUM 12611
#define ER_SPIDER_WRONG_CHARACTER_IN_NAME_STR "Wrong character in name string"
#define ER_SPIDER_LOW_MEM_READ_PREV_NUM 12621
-#define ER_SPIDER_LOW_MEM_READ_PREV_STR "Can't use this operation at low mem read mode"
+#define ER_SPIDER_LOW_MEM_READ_PREV_STR \
+ "Can't use this operation at low mem read mode"
#define ER_SPIDER_ALTER_BEFORE_UNLOCK_NUM 12622
-#define ER_SPIDER_ALTER_BEFORE_UNLOCK_STR "Can't use this operation before executing 'unlock tables'"
+#define ER_SPIDER_ALTER_BEFORE_UNLOCK_STR \
+ "Can't use this operation before executing 'unlock tables'"
#define ER_SPIDER_REMOTE_SERVER_GONE_AWAY_NUM 12701
-#define ER_SPIDER_REMOTE_SERVER_GONE_AWAY_STR "Remote MariaDB server has gone away"
-#define ER_SPIDER_REMOTE_SERVER_GONE_AWAY_LEN (sizeof(ER_SPIDER_REMOTE_SERVER_GONE_AWAY_STR) - 1)
+#define ER_SPIDER_REMOTE_SERVER_GONE_AWAY_STR \
+ "Remote MariaDB server has gone away"
+#define ER_SPIDER_REMOTE_SERVER_GONE_AWAY_LEN \
+ (sizeof(ER_SPIDER_REMOTE_SERVER_GONE_AWAY_STR) - 1)
#define ER_SPIDER_REMOTE_TABLE_NOT_FOUND_NUM 12702
#define ER_SPIDER_REMOTE_TABLE_NOT_FOUND_STR "Remote table '%s.%s' is not found"
#define ER_SPIDER_UDF_TMP_TABLE_NOT_FOUND_NUM 12703
-#define ER_SPIDER_UDF_TMP_TABLE_NOT_FOUND_STR "Temporary table '%s.%s' is not found"
+#define ER_SPIDER_UDF_TMP_TABLE_NOT_FOUND_STR \
+ "Temporary table '%s.%s' is not found"
#define ER_SPIDER_UDF_COPY_TABLE_SRC_NOT_FOUND_NUM 12704
#define ER_SPIDER_UDF_COPY_TABLE_SRC_NOT_FOUND_STR "Source table is not found"
#define ER_SPIDER_UDF_COPY_TABLE_DST_NOT_FOUND_NUM 12705
-#define ER_SPIDER_UDF_COPY_TABLE_DST_NOT_FOUND_STR "Destination table is not found"
+#define ER_SPIDER_UDF_COPY_TABLE_DST_NOT_FOUND_STR \
+ "Destination table is not found"
#define ER_SPIDER_UDF_COPY_TABLE_SRC_NG_STATUS_NUM 12706
#define ER_SPIDER_UDF_COPY_TABLE_SRC_NG_STATUS_STR "Source table is NG status"
#define ER_SPIDER_UDF_COPY_TABLE_DST_NG_STATUS_NUM 12707
-#define ER_SPIDER_UDF_COPY_TABLE_DST_NG_STATUS_STR "Destination table is NG status"
+#define ER_SPIDER_UDF_COPY_TABLE_DST_NG_STATUS_STR \
+ "Destination table is NG status"
#define ER_SPIDER_UDF_CANT_OPEN_TABLE_NUM 12708
#define ER_SPIDER_UDF_CANT_OPEN_TABLE_STR "Can't open table %s.%s"
#define ER_SPIDER_UDF_COPY_TABLE_NEED_PK_NUM 12709
#define ER_SPIDER_UDF_COPY_TABLE_NEED_PK_STR "Table %s.%s needs PK for copying"
#define ER_SPIDER_INVALID_REMOTE_TABLE_INFO_NUM 12710
-#define ER_SPIDER_INVALID_REMOTE_TABLE_INFO_STR "Invalid information from remote table '%s.%s'"
+#define ER_SPIDER_INVALID_REMOTE_TABLE_INFO_STR \
+ "Invalid information from remote table '%s.%s'"
#define ER_SPIDER_HS_STR "Error from HS %d %s"
#define ER_SPIDER_HS_NUM 12711
#define ER_SPIDER_ORACLE_STR "Error from Oracle %d %d %s"
@@ -124,14 +150,20 @@
#define ER_SPIDER_DATASOURCE_STR "Error from %s %d %s %s"
#define ER_SPIDER_DATASOURCE_NUM 12712
#define ER_SPIDER_CON_COUNT_ERROR 12713
-#define ER_SPIDER_CON_COUNT_ERROR_STR "Too many connections between spider and remote"
+#define ER_SPIDER_CON_COUNT_ERROR_STR \
+ "Too many connections between spider and remote"
#define ER_SPIDER_TABLE_OPEN_TIMEOUT_NUM 12714
#define ER_SPIDER_TABLE_OPEN_TIMEOUT_STR "Table %s.%s open timeout"
#define ER_SPIDER_INFINITE_LOOP_NUM 12719
-#define ER_SPIDER_INFINITE_LOOP_STR "An infinite loop is detected when opening table %s.%s"
+#define ER_SPIDER_INFINITE_LOOP_STR \
+ "An infinite loop is detected when opening table %s.%s"
#define ER_SPIDER_SAME_SERVER_LINK_NUM 12720
-#define ER_SPIDER_SAME_SERVER_LINK_STR1 "Host:%s and Socket:%s aim self server. Please change spider_same_server_link parameter if this link is required."
-#define ER_SPIDER_SAME_SERVER_LINK_STR2 "Host:%s and Port:%ld aim self server. Please change spider_same_server_link parameter if this link is required."
+#define ER_SPIDER_SAME_SERVER_LINK_STR1 \
+ "Host:%s and Socket:%s aim self server. Please change " \
+ "spider_same_server_link parameter if this link is required."
+#define ER_SPIDER_SAME_SERVER_LINK_STR2 \
+ "Host:%s and Port:%ld aim self server. Please change " \
+ "spider_same_server_link parameter if this link is required."
#define ER_SPIDER_CANT_NUM 12721
#define ER_SPIDER_CANT_STR1 "Can't %s%d"
#define ER_SPIDER_COND_SKIP_NUM 12801
diff --git a/storage/spider/spd_group_by_handler.h b/storage/spider/spd_group_by_handler.h
index 09f82168708..d505d59970a 100644
--- a/storage/spider/spd_group_by_handler.h
+++ b/storage/spider/spd_group_by_handler.h
@@ -14,8 +14,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
-class spider_group_by_handler: public group_by_handler
-{
+class spider_group_by_handler : public group_by_handler {
Query query;
spider_fields *fields;
ha_spider *spider;
@@ -25,20 +24,14 @@ class spider_group_by_handler: public group_by_handler
longlong offset_limit;
int store_error;
-public:
- spider_group_by_handler(
- THD *thd_arg,
- Query *query_arg,
- spider_fields *fields_arg
- );
+ public:
+ spider_group_by_handler(THD *thd_arg, Query *query_arg,
+ spider_fields *fields_arg);
~spider_group_by_handler();
int init_scan();
int next_row();
int end_scan();
};
-group_by_handler *spider_create_group_by_handler(
- THD *thd,
- Query *query
-);
+group_by_handler *spider_create_group_by_handler(THD *thd, Query *query);
#endif
diff --git a/storage/spider/spd_include.h b/storage/spider/spd_include.h
index b1be05c72b2..097ade235f6 100644
--- a/storage/spider/spd_include.h
+++ b/storage/spider/spd_include.h
@@ -12,17 +12,18 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
#define SPIDER_DETAIL_VERSION "3.3.15"
#define SPIDER_HEX_VERSION 0x0303
#if MYSQL_VERSION_ID < 50500
-#define spider_my_free(A,B) my_free(A,B)
+#define spider_my_free(A, B) my_free(A, B)
#define pthread_mutex_assert_owner(A)
#define pthread_mutex_assert_not_owner(A)
#else
-#define spider_my_free(A,B) my_free(A)
+#define spider_my_free(A, B) my_free(A)
#ifdef pthread_mutex_t
#undef pthread_mutex_t
#endif
@@ -69,10 +70,9 @@
#undef pthread_cond_destroy
#endif
#define pthread_cond_destroy mysql_cond_destroy
-#define my_sprintf(A,B) sprintf B
+#define my_sprintf(A, B) sprintf B
#endif
-
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100004
#define spider_stmt_da_message(A) thd_get_error_message(A)
#define spider_stmt_da_sql_errno(A) thd_get_error_number(A)
@@ -80,23 +80,23 @@
#define spider_join_table_count(A) (A)->table_count
#define SPIDER_CAN_BG_UPDATE (1LL << 39)
#if MYSQL_VERSION_ID >= 100304
-#define SPIDER_ALTER_PARTITION_ADD ALTER_PARTITION_ADD
-#define SPIDER_ALTER_PARTITION_DROP ALTER_PARTITION_DROP
-#define SPIDER_ALTER_PARTITION_COALESCE ALTER_PARTITION_COALESCE
-#define SPIDER_ALTER_PARTITION_REORGANIZE ALTER_PARTITION_REORGANIZE
+#define SPIDER_ALTER_PARTITION_ADD ALTER_PARTITION_ADD
+#define SPIDER_ALTER_PARTITION_DROP ALTER_PARTITION_DROP
+#define SPIDER_ALTER_PARTITION_COALESCE ALTER_PARTITION_COALESCE
+#define SPIDER_ALTER_PARTITION_REORGANIZE ALTER_PARTITION_REORGANIZE
#define SPIDER_ALTER_PARTITION_TABLE_REORG ALTER_PARTITION_TABLE_REORG
-#define SPIDER_ALTER_PARTITION_REBUILD ALTER_PARTITION_REBUILD
+#define SPIDER_ALTER_PARTITION_REBUILD ALTER_PARTITION_REBUILD
#else
-#define SPIDER_ALTER_PARTITION_ADD Alter_info::ALTER_ADD_PARTITION
-#define SPIDER_ALTER_PARTITION_DROP Alter_info::ALTER_DROP_PARTITION
-#define SPIDER_ALTER_PARTITION_COALESCE Alter_info::ALTER_COALESCE_PARTITION
-#define SPIDER_ALTER_PARTITION_REORGANIZE Alter_info::ALTER_REORGANIZE_PARTITION
+#define SPIDER_ALTER_PARTITION_ADD Alter_info::ALTER_ADD_PARTITION
+#define SPIDER_ALTER_PARTITION_DROP Alter_info::ALTER_DROP_PARTITION
+#define SPIDER_ALTER_PARTITION_COALESCE Alter_info::ALTER_COALESCE_PARTITION
+#define SPIDER_ALTER_PARTITION_REORGANIZE Alter_info::ALTER_REORGANIZE_PARTITION
#define SPIDER_ALTER_PARTITION_TABLE_REORG Alter_info::ALTER_TABLE_REORG
-#define SPIDER_ALTER_PARTITION_REBUILD Alter_info::ALTER_REBUILD_PARTITION
+#define SPIDER_ALTER_PARTITION_REBUILD Alter_info::ALTER_REBUILD_PARTITION
#endif
-#define SPIDER_WARN_LEVEL_WARN Sql_condition::WARN_LEVEL_WARN
-#define SPIDER_WARN_LEVEL_NOTE Sql_condition::WARN_LEVEL_NOTE
-#define SPIDER_THD_KILL_CONNECTION KILL_CONNECTION
+#define SPIDER_WARN_LEVEL_WARN Sql_condition::WARN_LEVEL_WARN
+#define SPIDER_WARN_LEVEL_NOTE Sql_condition::WARN_LEVEL_NOTE
+#define SPIDER_THD_KILL_CONNECTION KILL_CONNECTION
#else
#if MYSQL_VERSION_ID < 50500
#define spider_stmt_da_message(A) (A)->main_da.message()
@@ -112,15 +112,15 @@
#endif
#define spider_user_defined_key_parts(A) (A)->key_parts
#define spider_join_table_count(A) (A)->tables
-#define SPIDER_ALTER_PARTITION_ADD ALTER_ADD_PARTITION
-#define SPIDER_ALTER_PARTITION_DROP ALTER_DROP_PARTITION
-#define SPIDER_ALTER_PARTITION_COALESCE ALTER_COALESCE_PARTITION
-#define SPIDER_ALTER_PARTITION_REORGANIZE ALTER_REORGANIZE_PARTITION
+#define SPIDER_ALTER_PARTITION_ADD ALTER_ADD_PARTITION
+#define SPIDER_ALTER_PARTITION_DROP ALTER_DROP_PARTITION
+#define SPIDER_ALTER_PARTITION_COALESCE ALTER_COALESCE_PARTITION
+#define SPIDER_ALTER_PARTITION_REORGANIZE ALTER_REORGANIZE_PARTITION
#define SPIDER_ALTER_PARTITION_TABLE_REORG ALTER_TABLE_REORG
-#define SPIDER_ALTER_PARTITION_REBUILD ALTER_REBUILD_PARTITION
-#define SPIDER_WARN_LEVEL_WARN MYSQL_ERROR::WARN_LEVEL_WARN
-#define SPIDER_WARN_LEVEL_NOTE MYSQL_ERROR::WARN_LEVEL_NOTE
-#define SPIDER_THD_KILL_CONNECTION THD::KILL_CONNECTION
+#define SPIDER_ALTER_PARTITION_REBUILD ALTER_REBUILD_PARTITION
+#define SPIDER_WARN_LEVEL_WARN MYSQL_ERROR::WARN_LEVEL_WARN
+#define SPIDER_WARN_LEVEL_NOTE MYSQL_ERROR::WARN_LEVEL_NOTE
+#define SPIDER_THD_KILL_CONNECTION THD::KILL_CONNECTION
#endif
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100005
@@ -153,12 +153,14 @@
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100200
#define SPIDER_WITHOUT_HA_STATISTIC_INCREMENT
-#define SPIDER_init_read_record(A,B,C,D,E,F,G,H) init_read_record(A,B,C,D,E,F,G,H)
+#define SPIDER_init_read_record(A, B, C, D, E, F, G, H) \
+ init_read_record(A, B, C, D, E, F, G, H)
#define SPIDER_HAS_NEXT_THREAD_ID
#define SPIDER_new_THD(A) (new THD(A))
#define SPIDER_order_direction_is_asc(A) (A->direction == ORDER::ORDER_ASC)
#else
-#define SPIDER_init_read_record(A,B,C,D,E,F,G,H) init_read_record(A,B,C,D,F,G,H)
+#define SPIDER_init_read_record(A, B, C, D, E, F, G, H) \
+ init_read_record(A, B, C, D, F, G, H)
#define SPIDER_new_THD(A) (new THD())
#define SPIDER_order_direction_is_asc(A) (A->asc)
#endif
@@ -170,26 +172,34 @@
#if defined(MARIADB_BASE_VERSION)
#if MYSQL_VERSION_ID >= 100209
-#define SPIDER_generate_partition_syntax(A,B,C,D,E,F,G,H) generate_partition_syntax(A,B,C,E,F,G)
+#define SPIDER_generate_partition_syntax(A, B, C, D, E, F, G, H) \
+ generate_partition_syntax(A, B, C, E, F, G)
#elif MYSQL_VERSION_ID >= 100200
-#define SPIDER_generate_partition_syntax(A,B,C,D,E,F,G,H) generate_partition_syntax(A,B,C,D,E,F,G,H)
+#define SPIDER_generate_partition_syntax(A, B, C, D, E, F, G, H) \
+ generate_partition_syntax(A, B, C, D, E, F, G, H)
#elif MYSQL_VERSION_ID >= 100007
-#define SPIDER_generate_partition_syntax(A,B,C,D,E,F,G,H) generate_partition_syntax(B,C,D,E,F,G,H)
+#define SPIDER_generate_partition_syntax(A, B, C, D, E, F, G, H) \
+ generate_partition_syntax(B, C, D, E, F, G, H)
#else
-#define SPIDER_generate_partition_syntax(A,B,C,D,E,F,G,H) generate_partition_syntax(B,C,D,E,F,G)
+#define SPIDER_generate_partition_syntax(A, B, C, D, E, F, G, H) \
+ generate_partition_syntax(B, C, D, E, F, G)
#endif
#else
-#define SPIDER_generate_partition_syntax(A,B,C,D,E,F,G,H)
+#define SPIDER_generate_partition_syntax(A, B, C, D, E, F, G, H)
#endif
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100209
-#define SPIDER_create_partition_name(A,B,C,D,E,F) create_partition_name(A,B,C,D,E,F)
-#define SPIDER_create_subpartition_name(A,B,C,D,E,F) create_subpartition_name(A,B,C,D,E,F)
-#define SPIDER_free_part_syntax(A,B)
+#define SPIDER_create_partition_name(A, B, C, D, E, F) \
+ create_partition_name(A, B, C, D, E, F)
+#define SPIDER_create_subpartition_name(A, B, C, D, E, F) \
+ create_subpartition_name(A, B, C, D, E, F)
+#define SPIDER_free_part_syntax(A, B)
#else
-#define SPIDER_create_partition_name(A,B,C,D,E,F) create_partition_name(A,C,D,E,F)
-#define SPIDER_create_subpartition_name(A,B,C,D,E,F) create_subpartition_name(A,C,D,E,F)
-#define SPIDER_free_part_syntax(A,B) spider_my_free(A,B)
+#define SPIDER_create_partition_name(A, B, C, D, E, F) \
+ create_partition_name(A, C, D, E, F)
+#define SPIDER_create_subpartition_name(A, B, C, D, E, F) \
+ create_subpartition_name(A, C, D, E, F)
+#define SPIDER_free_part_syntax(A, B) spider_my_free(A, B)
#endif
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100306
@@ -234,11 +244,12 @@ const char SPIDER_empty_string = "";
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100400
#define SPIDER_date_mode_t(A) date_mode_t(A)
-#define SPIDER_str_to_datetime(A,B,C,D,E) str_to_datetime_or_date(A,B,C,D,E)
+#define SPIDER_str_to_datetime(A, B, C, D, E) \
+ str_to_datetime_or_date(A, B, C, D, E)
#define SPIDER_get_linkage(A) A->get_linkage()
#else
#define SPIDER_date_mode_t(A) A
-#define SPIDER_str_to_datetime(A,B,C,D,E) str_to_datetime(A,B,C,D,E)
+#define SPIDER_str_to_datetime(A, B, C, D, E) str_to_datetime(A, B, C, D, E)
#define SPIDER_get_linkage(A) A->linkage
#endif
@@ -251,65 +262,93 @@ typedef Open_tables_backup SPIDER_Open_tables_backup;
#endif
#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100500
-#define SPIDER_reset_n_backup_open_tables_state(A,B,C) do { \
- if (!(*(B) = new start_new_trans(A))) \
- { \
- DBUG_RETURN(C); \
- } \
-} while (0)
-#define SPIDER_restore_backup_open_tables_state(A,B) do { \
- (*(B))->restore_old_transaction(); \
- delete *(B); \
-} while (0)
-#define SPIDER_sys_close_thread_tables(A) (A)->commit_whole_transaction_and_close_tables()
+#define SPIDER_reset_n_backup_open_tables_state(A, B, C) \
+ do { \
+ if (!(*(B) = new start_new_trans(A))) { \
+ DBUG_RETURN(C); \
+ } \
+ } while (0)
+#define SPIDER_restore_backup_open_tables_state(A, B) \
+ do { \
+ (*(B))->restore_old_transaction(); \
+ delete *(B); \
+ } while (0)
+#define SPIDER_sys_close_thread_tables(A) \
+ (A)->commit_whole_transaction_and_close_tables()
#else
#define SPIDER_REQUIRE_DEFINE_FOR_SECONDARY_OPEN_TABLES_BACKUP
-#define SPIDER_reset_n_backup_open_tables_state(A,B,C) (A)->reset_n_backup_open_tables_state(B)
-#define SPIDER_restore_backup_open_tables_state(A,B) (A)->restore_backup_open_tables_state(B)
+#define SPIDER_reset_n_backup_open_tables_state(A, B, C) \
+ (A)->reset_n_backup_open_tables_state(B)
+#define SPIDER_restore_backup_open_tables_state(A, B) \
+ (A)->restore_backup_open_tables_state(B)
#define SPIDER_sys_close_thread_tables(A) close_thread_tables(A)
#endif
#define spider_bitmap_size(A) ((A + 7) / 8)
-#define spider_set_bit(BITMAP, BIT) \
- ((BITMAP)[(BIT) / 8] |= (1 << ((BIT) & 7)))
-#define spider_clear_bit(BITMAP, BIT) \
- ((BITMAP)[(BIT) / 8] &= ~(1 << ((BIT) & 7)))
+#define spider_set_bit(BITMAP, BIT) ((BITMAP)[(BIT) / 8] |= (1 << ((BIT)&7)))
+#define spider_clear_bit(BITMAP, BIT) ((BITMAP)[(BIT) / 8] &= ~(1 << ((BIT)&7)))
#define spider_bit_is_set(BITMAP, BIT) \
- (uint) ((BITMAP)[(BIT) / 8] & (1 << ((BIT) & 7)))
-
-#define SPIDER_LINK_STATUS_NO_CHANGE 0
-#define SPIDER_LINK_STATUS_OK 1
-#define SPIDER_LINK_STATUS_RECOVERY 2
-#define SPIDER_LINK_STATUS_NG 3
-
-#define SPIDER_LINK_MON_OK 0
-#define SPIDER_LINK_MON_NG -1
-#define SPIDER_LINK_MON_DRAW_FEW_MON 1
-#define SPIDER_LINK_MON_DRAW 2
-
-#define SPIDER_TMP_SHARE_CHAR_PTR_COUNT 23
-#define SPIDER_TMP_SHARE_UINT_COUNT SPIDER_TMP_SHARE_CHAR_PTR_COUNT
-#define SPIDER_TMP_SHARE_LONG_COUNT 20
-#define SPIDER_TMP_SHARE_LONGLONG_COUNT 3
-
-#define SPIDER_MEM_CALC_LIST_NUM 314
-#define SPIDER_CONN_META_BUF_LEN 64
-
-#define SPIDER_BACKUP_DASTATUS \
- bool da_status; if (thd) da_status = thd->is_error(); else da_status = FALSE;
+ (uint)((BITMAP)[(BIT) / 8] & (1 << ((BIT)&7)))
+
+#define SPIDER_LINK_STATUS_NO_CHANGE 0
+#define SPIDER_LINK_STATUS_OK 1
+#define SPIDER_LINK_STATUS_RECOVERY 2
+#define SPIDER_LINK_STATUS_NG 3
+
+#define SPIDER_LINK_MON_OK 0
+#define SPIDER_LINK_MON_NG -1
+#define SPIDER_LINK_MON_DRAW_FEW_MON 1
+#define SPIDER_LINK_MON_DRAW 2
+
+#define SPIDER_TMP_SHARE_CHAR_PTR_COUNT 23
+#define SPIDER_TMP_SHARE_UINT_COUNT SPIDER_TMP_SHARE_CHAR_PTR_COUNT
+#define SPIDER_TMP_SHARE_LONG_COUNT 20
+#define SPIDER_TMP_SHARE_LONGLONG_COUNT 3
+
+#define SPIDER_MEM_CALC_LIST_NUM 314
+#define SPIDER_CONN_META_BUF_LEN 64
+
+#define SPIDER_BACKUP_DASTATUS \
+ bool da_status; \
+ if (thd) \
+ da_status = thd->is_error(); \
+ else \
+ da_status = FALSE;
#define SPIDER_RESTORE_DASTATUS \
if (!da_status && thd->is_error()) thd->clear_error();
#define SPIDER_CONN_RESTORE_DASTATUS \
- if (thd && conn->error_mode) {SPIDER_RESTORE_DASTATUS;}
+ if (thd && conn->error_mode) { \
+ SPIDER_RESTORE_DASTATUS; \
+ }
#define SPIDER_CONN_RESTORE_DASTATUS_AND_RESET_ERROR_NUM \
- if (thd && conn->error_mode) {SPIDER_RESTORE_DASTATUS; error_num = 0;}
+ if (thd && conn->error_mode) { \
+ SPIDER_RESTORE_DASTATUS; \
+ error_num = 0; \
+ }
#define SPIDER_CONN_RESTORE_DASTATUS_AND_RESET_TMP_ERROR_NUM \
- if (thd && conn->error_mode) {SPIDER_RESTORE_DASTATUS; tmp_error_num = 0;}
+ if (thd && conn->error_mode) { \
+ SPIDER_RESTORE_DASTATUS; \
+ tmp_error_num = 0; \
+ }
#define SPIDER_SET_FILE_POS(A) \
- {(A)->thd = current_thd; (A)->func_name = __func__; (A)->file_name = __FILE__; (A)->line_no = __LINE__;}
-#define SPIDER_CLEAR_FILE_POS(A) \
- {DBUG_PRINT("info", ("spider thd=%p func_name=%s file_name=%s line_no=%lu", (A)->thd, (A)->func_name ? (A)->func_name : "NULL", (A)->file_name ? (A)->file_name : "NULL", (A)->line_no)); (A)->thd = NULL; (A)->func_name = NULL; (A)->file_name = NULL; (A)->line_no = 0;}
+ { \
+ (A)->thd = current_thd; \
+ (A)->func_name = __func__; \
+ (A)->file_name = __FILE__; \
+ (A)->line_no = __LINE__; \
+ }
+#define SPIDER_CLEAR_FILE_POS(A) \
+ { \
+ DBUG_PRINT("info", \
+ ("spider thd=%p func_name=%s file_name=%s line_no=%lu", \
+ (A)->thd, (A)->func_name ? (A)->func_name : "NULL", \
+ (A)->file_name ? (A)->file_name : "NULL", (A)->line_no)); \
+ (A)->thd = NULL; \
+ (A)->func_name = NULL; \
+ (A)->file_name = NULL; \
+ (A)->line_no = 0; \
+ }
class ha_spider;
typedef struct st_spider_share SPIDER_SHARE;
@@ -317,416 +356,408 @@ typedef struct st_spider_table_mon_list SPIDER_TABLE_MON_LIST;
typedef struct st_spider_ip_port_conn SPIDER_IP_PORT_CONN;
#ifndef WITHOUT_SPIDER_BG_SEARCH
-typedef struct st_spider_thread
-{
- uint thread_idx;
- THD *thd;
- volatile bool killed;
- volatile bool thd_wait;
- volatile bool first_free_wait;
- volatile bool init_command;
- volatile int error;
- pthread_t thread;
- pthread_cond_t cond;
- pthread_mutex_t mutex;
- pthread_cond_t sync_cond;
+typedef struct st_spider_thread {
+ uint thread_idx;
+ THD *thd;
+ volatile bool killed;
+ volatile bool thd_wait;
+ volatile bool first_free_wait;
+ volatile bool init_command;
+ volatile int error;
+ pthread_t thread;
+ pthread_cond_t cond;
+ pthread_mutex_t mutex;
+ pthread_cond_t sync_cond;
volatile SPIDER_SHARE *queue_first;
volatile SPIDER_SHARE *queue_last;
} SPIDER_THREAD;
#endif
-typedef struct st_spider_file_pos
-{
- THD *thd;
- const char *func_name;
- const char *file_name;
- ulong line_no;
+typedef struct st_spider_file_pos {
+ THD *thd;
+ const char *func_name;
+ const char *file_name;
+ ulong line_no;
} SPIDER_FILE_POS;
-typedef struct st_spider_link_for_hash
-{
- ha_spider *spider;
- int link_idx;
- spider_string *db_table_str;
+typedef struct st_spider_link_for_hash {
+ ha_spider *spider;
+ int link_idx;
+ spider_string *db_table_str;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type db_table_str_hash_value;
#endif
} SPIDER_LINK_FOR_HASH;
/* alter table */
-typedef struct st_spider_alter_table
-{
- bool now_create;
- char *table_name;
- uint table_name_length;
- char *tmp_char;
+typedef struct st_spider_alter_table {
+ bool now_create;
+ char *table_name;
+ uint table_name_length;
+ char *tmp_char;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type table_name_hash_value;
#endif
- longlong tmp_priority;
- uint link_count;
- uint all_link_count;
-
- char **tmp_server_names;
- char **tmp_tgt_table_names;
- char **tmp_tgt_dbs;
- char **tmp_tgt_hosts;
- char **tmp_tgt_usernames;
- char **tmp_tgt_passwords;
- char **tmp_tgt_sockets;
- char **tmp_tgt_wrappers;
- char **tmp_tgt_ssl_cas;
- char **tmp_tgt_ssl_capaths;
- char **tmp_tgt_ssl_certs;
- char **tmp_tgt_ssl_ciphers;
- char **tmp_tgt_ssl_keys;
- char **tmp_tgt_default_files;
- char **tmp_tgt_default_groups;
- char **tmp_tgt_dsns;
- char **tmp_tgt_filedsns;
- char **tmp_tgt_drivers;
- char **tmp_static_link_ids;
- long *tmp_tgt_ports;
- long *tmp_tgt_ssl_vscs;
- long *tmp_monitoring_binlog_pos_at_failing;
- long *tmp_link_statuses;
-
- uint *tmp_server_names_lengths;
- uint *tmp_tgt_table_names_lengths;
- uint *tmp_tgt_dbs_lengths;
- uint *tmp_tgt_hosts_lengths;
- uint *tmp_tgt_usernames_lengths;
- uint *tmp_tgt_passwords_lengths;
- uint *tmp_tgt_sockets_lengths;
- uint *tmp_tgt_wrappers_lengths;
- uint *tmp_tgt_ssl_cas_lengths;
- uint *tmp_tgt_ssl_capaths_lengths;
- uint *tmp_tgt_ssl_certs_lengths;
- uint *tmp_tgt_ssl_ciphers_lengths;
- uint *tmp_tgt_ssl_keys_lengths;
- uint *tmp_tgt_default_files_lengths;
- uint *tmp_tgt_default_groups_lengths;
- uint *tmp_tgt_dsns_lengths;
- uint *tmp_tgt_filedsns_lengths;
- uint *tmp_tgt_drivers_lengths;
- uint *tmp_static_link_ids_lengths;
-
- uint tmp_server_names_charlen;
- uint tmp_tgt_table_names_charlen;
- uint tmp_tgt_dbs_charlen;
- uint tmp_tgt_hosts_charlen;
- uint tmp_tgt_usernames_charlen;
- uint tmp_tgt_passwords_charlen;
- uint tmp_tgt_sockets_charlen;
- uint tmp_tgt_wrappers_charlen;
- uint tmp_tgt_ssl_cas_charlen;
- uint tmp_tgt_ssl_capaths_charlen;
- uint tmp_tgt_ssl_certs_charlen;
- uint tmp_tgt_ssl_ciphers_charlen;
- uint tmp_tgt_ssl_keys_charlen;
- uint tmp_tgt_default_files_charlen;
- uint tmp_tgt_default_groups_charlen;
- uint tmp_tgt_dsns_charlen;
- uint tmp_tgt_filedsns_charlen;
- uint tmp_tgt_drivers_charlen;
- uint tmp_static_link_ids_charlen;
-
- uint tmp_server_names_length;
- uint tmp_tgt_table_names_length;
- uint tmp_tgt_dbs_length;
- uint tmp_tgt_hosts_length;
- uint tmp_tgt_usernames_length;
- uint tmp_tgt_passwords_length;
- uint tmp_tgt_sockets_length;
- uint tmp_tgt_wrappers_length;
- uint tmp_tgt_ssl_cas_length;
- uint tmp_tgt_ssl_capaths_length;
- uint tmp_tgt_ssl_certs_length;
- uint tmp_tgt_ssl_ciphers_length;
- uint tmp_tgt_ssl_keys_length;
- uint tmp_tgt_default_files_length;
- uint tmp_tgt_default_groups_length;
- uint tmp_tgt_dsns_length;
- uint tmp_tgt_filedsns_length;
- uint tmp_tgt_drivers_length;
- uint tmp_static_link_ids_length;
- uint tmp_tgt_ports_length;
- uint tmp_tgt_ssl_vscs_length;
- uint tmp_monitoring_binlog_pos_at_failing_length;
- uint tmp_link_statuses_length;
+ longlong tmp_priority;
+ uint link_count;
+ uint all_link_count;
+
+ char **tmp_server_names;
+ char **tmp_tgt_table_names;
+ char **tmp_tgt_dbs;
+ char **tmp_tgt_hosts;
+ char **tmp_tgt_usernames;
+ char **tmp_tgt_passwords;
+ char **tmp_tgt_sockets;
+ char **tmp_tgt_wrappers;
+ char **tmp_tgt_ssl_cas;
+ char **tmp_tgt_ssl_capaths;
+ char **tmp_tgt_ssl_certs;
+ char **tmp_tgt_ssl_ciphers;
+ char **tmp_tgt_ssl_keys;
+ char **tmp_tgt_default_files;
+ char **tmp_tgt_default_groups;
+ char **tmp_tgt_dsns;
+ char **tmp_tgt_filedsns;
+ char **tmp_tgt_drivers;
+ char **tmp_static_link_ids;
+ long *tmp_tgt_ports;
+ long *tmp_tgt_ssl_vscs;
+ long *tmp_monitoring_binlog_pos_at_failing;
+ long *tmp_link_statuses;
+
+ uint *tmp_server_names_lengths;
+ uint *tmp_tgt_table_names_lengths;
+ uint *tmp_tgt_dbs_lengths;
+ uint *tmp_tgt_hosts_lengths;
+ uint *tmp_tgt_usernames_lengths;
+ uint *tmp_tgt_passwords_lengths;
+ uint *tmp_tgt_sockets_lengths;
+ uint *tmp_tgt_wrappers_lengths;
+ uint *tmp_tgt_ssl_cas_lengths;
+ uint *tmp_tgt_ssl_capaths_lengths;
+ uint *tmp_tgt_ssl_certs_lengths;
+ uint *tmp_tgt_ssl_ciphers_lengths;
+ uint *tmp_tgt_ssl_keys_lengths;
+ uint *tmp_tgt_default_files_lengths;
+ uint *tmp_tgt_default_groups_lengths;
+ uint *tmp_tgt_dsns_lengths;
+ uint *tmp_tgt_filedsns_lengths;
+ uint *tmp_tgt_drivers_lengths;
+ uint *tmp_static_link_ids_lengths;
+
+ uint tmp_server_names_charlen;
+ uint tmp_tgt_table_names_charlen;
+ uint tmp_tgt_dbs_charlen;
+ uint tmp_tgt_hosts_charlen;
+ uint tmp_tgt_usernames_charlen;
+ uint tmp_tgt_passwords_charlen;
+ uint tmp_tgt_sockets_charlen;
+ uint tmp_tgt_wrappers_charlen;
+ uint tmp_tgt_ssl_cas_charlen;
+ uint tmp_tgt_ssl_capaths_charlen;
+ uint tmp_tgt_ssl_certs_charlen;
+ uint tmp_tgt_ssl_ciphers_charlen;
+ uint tmp_tgt_ssl_keys_charlen;
+ uint tmp_tgt_default_files_charlen;
+ uint tmp_tgt_default_groups_charlen;
+ uint tmp_tgt_dsns_charlen;
+ uint tmp_tgt_filedsns_charlen;
+ uint tmp_tgt_drivers_charlen;
+ uint tmp_static_link_ids_charlen;
+
+ uint tmp_server_names_length;
+ uint tmp_tgt_table_names_length;
+ uint tmp_tgt_dbs_length;
+ uint tmp_tgt_hosts_length;
+ uint tmp_tgt_usernames_length;
+ uint tmp_tgt_passwords_length;
+ uint tmp_tgt_sockets_length;
+ uint tmp_tgt_wrappers_length;
+ uint tmp_tgt_ssl_cas_length;
+ uint tmp_tgt_ssl_capaths_length;
+ uint tmp_tgt_ssl_certs_length;
+ uint tmp_tgt_ssl_ciphers_length;
+ uint tmp_tgt_ssl_keys_length;
+ uint tmp_tgt_default_files_length;
+ uint tmp_tgt_default_groups_length;
+ uint tmp_tgt_dsns_length;
+ uint tmp_tgt_filedsns_length;
+ uint tmp_tgt_drivers_length;
+ uint tmp_static_link_ids_length;
+ uint tmp_tgt_ports_length;
+ uint tmp_tgt_ssl_vscs_length;
+ uint tmp_monitoring_binlog_pos_at_failing_length;
+ uint tmp_link_statuses_length;
} SPIDER_ALTER_TABLE;
typedef struct st_spider_conn_loop_check SPIDER_CONN_LOOP_CHECK;
/* database connection */
-typedef struct st_spider_conn
-{
- uint conn_kind;
- char *conn_key;
- uint conn_key_length;
+typedef struct st_spider_conn {
+ uint conn_kind;
+ char *conn_key;
+ uint conn_key_length;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type conn_key_hash_value;
#endif
- int link_idx;
- spider_db_conn *db_conn;
+ int link_idx;
+ spider_db_conn *db_conn;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- query_id_t hsc_query_id;
- ulonglong hs_pre_age;
- ulonglong hs_age;
-#endif
- uint opened_handlers;
- ulonglong conn_id;
- ulonglong connection_id;
- query_id_t casual_read_query_id;
- uint casual_read_current_id;
- st_spider_conn *casual_read_base_conn;
- pthread_mutex_t mta_conn_mutex;
- volatile bool mta_conn_mutex_lock_already;
- volatile bool mta_conn_mutex_unlock_later;
- SPIDER_FILE_POS mta_conn_mutex_file_pos;
- uint join_trx;
- int trx_isolation;
- bool semi_trx_isolation_chk;
- int semi_trx_isolation;
- bool semi_trx_chk;
- bool semi_trx;
- bool trx_start;
- bool table_locked;
- int table_lock;
- bool disable_xa;
- bool disable_reconnect;
- int autocommit;
- int sql_log_off;
- int wait_timeout;
- sql_mode_t sql_mode;
- THD *thd;
- void *another_ha_first;
- void *another_ha_last;
- st_spider_conn *p_small;
- st_spider_conn *p_big;
- st_spider_conn *c_small;
- st_spider_conn *c_big;
- longlong priority;
- bool server_lost;
- bool ignore_dup_key;
- char *error_str;
- int error_length;
- time_t ping_time;
- CHARSET_INFO *access_charset;
- Time_zone *time_zone;
- uint connect_timeout;
- uint net_read_timeout;
- uint net_write_timeout;
- int error_mode;
- spider_string default_database;
-
- char *tgt_host;
- char *tgt_username;
- char *tgt_password;
- char *tgt_socket;
- char *tgt_wrapper;
- char *tgt_db; /* for not joinable tables on different db */
- char *tgt_ssl_ca;
- char *tgt_ssl_capath;
- char *tgt_ssl_cert;
- char *tgt_ssl_cipher;
- char *tgt_ssl_key;
- char *tgt_default_file;
- char *tgt_default_group;
- char *tgt_dsn;
- char *tgt_filedsn;
- char *tgt_driver;
- long tgt_port;
- long tgt_ssl_vsc;
+ query_id_t hsc_query_id;
+ ulonglong hs_pre_age;
+ ulonglong hs_age;
+#endif
+ uint opened_handlers;
+ ulonglong conn_id;
+ ulonglong connection_id;
+ query_id_t casual_read_query_id;
+ uint casual_read_current_id;
+ st_spider_conn *casual_read_base_conn;
+ pthread_mutex_t mta_conn_mutex;
+ volatile bool mta_conn_mutex_lock_already;
+ volatile bool mta_conn_mutex_unlock_later;
+ SPIDER_FILE_POS mta_conn_mutex_file_pos;
+ uint join_trx;
+ int trx_isolation;
+ bool semi_trx_isolation_chk;
+ int semi_trx_isolation;
+ bool semi_trx_chk;
+ bool semi_trx;
+ bool trx_start;
+ bool table_locked;
+ int table_lock;
+ bool disable_xa;
+ bool disable_reconnect;
+ int autocommit;
+ int sql_log_off;
+ int wait_timeout;
+ sql_mode_t sql_mode;
+ THD *thd;
+ void *another_ha_first;
+ void *another_ha_last;
+ st_spider_conn *p_small;
+ st_spider_conn *p_big;
+ st_spider_conn *c_small;
+ st_spider_conn *c_big;
+ longlong priority;
+ bool server_lost;
+ bool ignore_dup_key;
+ char *error_str;
+ int error_length;
+ time_t ping_time;
+ CHARSET_INFO *access_charset;
+ Time_zone *time_zone;
+ uint connect_timeout;
+ uint net_read_timeout;
+ uint net_write_timeout;
+ int error_mode;
+ spider_string default_database;
+
+ char *tgt_host;
+ char *tgt_username;
+ char *tgt_password;
+ char *tgt_socket;
+ char *tgt_wrapper;
+ char *tgt_db; /* for not joinable tables on different db */
+ char *tgt_ssl_ca;
+ char *tgt_ssl_capath;
+ char *tgt_ssl_cert;
+ char *tgt_ssl_cipher;
+ char *tgt_ssl_key;
+ char *tgt_default_file;
+ char *tgt_default_group;
+ char *tgt_dsn;
+ char *tgt_filedsn;
+ char *tgt_driver;
+ long tgt_port;
+ long tgt_ssl_vsc;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- char *hs_sock;
- long hs_port;
-#endif
-
- uint tgt_host_length;
- uint tgt_username_length;
- uint tgt_password_length;
- uint tgt_socket_length;
- uint tgt_wrapper_length;
- uint tgt_db_length;
- uint tgt_ssl_ca_length;
- uint tgt_ssl_capath_length;
- uint tgt_ssl_cert_length;
- uint tgt_ssl_cipher_length;
- uint tgt_ssl_key_length;
- uint tgt_default_file_length;
- uint tgt_default_group_length;
- uint tgt_dsn_length;
- uint tgt_filedsn_length;
- uint tgt_driver_length;
+ char *hs_sock;
+ long hs_port;
+#endif
+
+ uint tgt_host_length;
+ uint tgt_username_length;
+ uint tgt_password_length;
+ uint tgt_socket_length;
+ uint tgt_wrapper_length;
+ uint tgt_db_length;
+ uint tgt_ssl_ca_length;
+ uint tgt_ssl_capath_length;
+ uint tgt_ssl_cert_length;
+ uint tgt_ssl_cipher_length;
+ uint tgt_ssl_key_length;
+ uint tgt_default_file_length;
+ uint tgt_default_group_length;
+ uint tgt_dsn_length;
+ uint tgt_filedsn_length;
+ uint tgt_driver_length;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- uint hs_sock_length;
+ uint hs_sock_length;
#endif
- uint dbton_id;
+ uint dbton_id;
#ifndef WITHOUT_SPIDER_BG_SEARCH
volatile
#endif
- void *quick_target;
+ void *quick_target;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- volatile bool bg_init;
- volatile bool bg_break;
- volatile bool bg_kill;
- volatile bool bg_caller_wait;
- volatile bool bg_caller_sync_wait;
- volatile bool bg_search;
- volatile bool bg_discard_result;
- volatile bool bg_direct_sql;
- volatile bool bg_exec_sql;
- volatile bool bg_get_job_stack;
- volatile bool bg_get_job_stack_off;
- volatile uint bg_simple_action;
- THD *bg_thd;
- pthread_t bg_thread;
- pthread_cond_t bg_conn_cond;
- pthread_mutex_t bg_conn_mutex;
- pthread_cond_t bg_conn_sync_cond;
- pthread_mutex_t bg_conn_sync_mutex;
- pthread_mutex_t bg_conn_chain_mutex;
- pthread_mutex_t *bg_conn_chain_mutex_ptr;
- volatile void *bg_target;
- volatile int *bg_error_num;
- volatile ulong bg_sql_type;
- pthread_mutex_t bg_job_stack_mutex;
- DYNAMIC_ARRAY bg_job_stack;
- uint bg_job_stack_id;
- const char *bg_job_stack_func_name;
- const char *bg_job_stack_file_name;
- ulong bg_job_stack_line_no;
- uint bg_job_stack_cur_pos;
+ volatile bool bg_init;
+ volatile bool bg_break;
+ volatile bool bg_kill;
+ volatile bool bg_caller_wait;
+ volatile bool bg_caller_sync_wait;
+ volatile bool bg_search;
+ volatile bool bg_discard_result;
+ volatile bool bg_direct_sql;
+ volatile bool bg_exec_sql;
+ volatile bool bg_get_job_stack;
+ volatile bool bg_get_job_stack_off;
+ volatile uint bg_simple_action;
+ THD *bg_thd;
+ pthread_t bg_thread;
+ pthread_cond_t bg_conn_cond;
+ pthread_mutex_t bg_conn_mutex;
+ pthread_cond_t bg_conn_sync_cond;
+ pthread_mutex_t bg_conn_sync_mutex;
+ pthread_mutex_t bg_conn_chain_mutex;
+ pthread_mutex_t *bg_conn_chain_mutex_ptr;
+ volatile void *bg_target;
+ volatile int *bg_error_num;
+ volatile ulong bg_sql_type;
+ pthread_mutex_t bg_job_stack_mutex;
+ DYNAMIC_ARRAY bg_job_stack;
+ uint bg_job_stack_id;
+ const char *bg_job_stack_func_name;
+ const char *bg_job_stack_file_name;
+ ulong bg_job_stack_line_no;
+ uint bg_job_stack_cur_pos;
#endif
#ifndef WITHOUT_SPIDER_BG_SEARCH
volatile
#endif
- int *need_mon;
- int *conn_need_mon;
-
- bool use_for_active_standby;
- bool in_before_query;
-
- bool queued_connect;
- bool queued_ping;
- bool queued_trx_isolation;
- bool queued_semi_trx_isolation;
- bool queued_wait_timeout;
- bool queued_autocommit;
- bool queued_sql_log_off;
- bool queued_sql_mode;
- bool queued_time_zone;
- bool queued_trx_start;
- bool queued_xa_start;
- bool queued_net_timeout;
- SPIDER_SHARE *queued_connect_share;
- int queued_connect_link_idx;
- ha_spider *queued_ping_spider;
- int queued_ping_link_idx;
- int queued_trx_isolation_val;
- int queued_semi_trx_isolation_val;
- int queued_wait_timeout_val;
- bool queued_autocommit_val;
- bool queued_sql_log_off_val;
- sql_mode_t queued_sql_mode_val;
- Time_zone *queued_time_zone_val;
- XID *queued_xa_start_xid;
+ int *need_mon;
+ int *conn_need_mon;
+
+ bool use_for_active_standby;
+ bool in_before_query;
+
+ bool queued_connect;
+ bool queued_ping;
+ bool queued_trx_isolation;
+ bool queued_semi_trx_isolation;
+ bool queued_wait_timeout;
+ bool queued_autocommit;
+ bool queued_sql_log_off;
+ bool queued_sql_mode;
+ bool queued_time_zone;
+ bool queued_trx_start;
+ bool queued_xa_start;
+ bool queued_net_timeout;
+ SPIDER_SHARE *queued_connect_share;
+ int queued_connect_link_idx;
+ ha_spider *queued_ping_spider;
+ int queued_ping_link_idx;
+ int queued_trx_isolation_val;
+ int queued_semi_trx_isolation_val;
+ int queued_wait_timeout_val;
+ bool queued_autocommit_val;
+ bool queued_sql_log_off_val;
+ sql_mode_t queued_sql_mode_val;
+ Time_zone *queued_time_zone_val;
+ XID *queued_xa_start_xid;
#ifdef HA_CAN_BULK_ACCESS
- uint bulk_access_requests;
- uint bulk_access_sended;
- int bulk_access_error_num;
- st_spider_conn *bulk_access_next;
-#endif
-
- bool disable_connect_retry; /* TRUE if it is unnecessary to
- retry to connect after a
- connection error */
- bool connect_error_with_message;
- char connect_error_msg[MYSQL_ERRMSG_SIZE];
- int connect_error;
- THD *connect_error_thd;
- query_id_t connect_error_query_id;
- time_t connect_error_time;
+ uint bulk_access_requests;
+ uint bulk_access_sended;
+ int bulk_access_error_num;
+ st_spider_conn *bulk_access_next;
+#endif
+
+ bool disable_connect_retry; /* TRUE if it is unnecessary to
+ retry to connect after a
+ connection error */
+ bool connect_error_with_message;
+ char connect_error_msg[MYSQL_ERRMSG_SIZE];
+ int connect_error;
+ THD *connect_error_thd;
+ query_id_t connect_error_query_id;
+ time_t connect_error_time;
#ifdef SPIDER_HAS_GROUP_BY_HANDLER
- SPIDER_CONN_HOLDER *conn_holder_for_direct_join;
+ SPIDER_CONN_HOLDER *conn_holder_for_direct_join;
SPIDER_LINK_IDX_CHAIN *link_idx_chain;
#endif
SPIDER_IP_PORT_CONN *ip_port_conn;
- pthread_mutex_t loop_check_mutex;
- HASH loop_checked;
- uint loop_checked_id;
- const char *loop_checked_func_name;
- const char *loop_checked_file_name;
- ulong loop_checked_line_no;
- HASH loop_check_queue;
- uint loop_check_queue_id;
- const char *loop_check_queue_func_name;
- const char *loop_check_queue_file_name;
- ulong loop_check_queue_line_no;
+ pthread_mutex_t loop_check_mutex;
+ HASH loop_checked;
+ uint loop_checked_id;
+ const char *loop_checked_func_name;
+ const char *loop_checked_file_name;
+ ulong loop_checked_line_no;
+ HASH loop_check_queue;
+ uint loop_check_queue_id;
+ const char *loop_check_queue_func_name;
+ const char *loop_check_queue_file_name;
+ ulong loop_check_queue_line_no;
SPIDER_CONN_LOOP_CHECK *loop_check_ignored_first;
SPIDER_CONN_LOOP_CHECK *loop_check_ignored_last;
SPIDER_CONN_LOOP_CHECK *loop_check_meraged_first;
SPIDER_CONN_LOOP_CHECK *loop_check_meraged_last;
} SPIDER_CONN;
-typedef struct st_spider_lgtm_tblhnd_share
-{
- char *table_name;
- uint table_name_length;
+typedef struct st_spider_lgtm_tblhnd_share {
+ char *table_name;
+ uint table_name_length;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type table_path_hash_value;
#endif
- pthread_mutex_t auto_increment_mutex;
- volatile bool auto_increment_init;
+ pthread_mutex_t auto_increment_mutex;
+ volatile bool auto_increment_init;
volatile ulonglong auto_increment_lclval;
- ulonglong auto_increment_value;
+ ulonglong auto_increment_value;
} SPIDER_LGTM_TBLHND_SHARE;
#ifdef WITH_PARTITION_STORAGE_ENGINE
-typedef struct st_spider_patition_handler_share
-{
- bool clone_bitmap_init;
+typedef struct st_spider_patition_handler_share {
+ bool clone_bitmap_init;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type table_hash_value;
#endif
- query_id_t parallel_search_query_id;
- uint no_parts;
- TABLE *table;
- ha_spider *owner;
- ha_spider **handlers;
+ query_id_t parallel_search_query_id;
+ uint no_parts;
+ TABLE *table;
+ ha_spider *owner;
+ ha_spider **handlers;
} SPIDER_PARTITION_HANDLER_SHARE;
#endif
-typedef struct st_spider_wide_share
-{
- char *table_name;
- uint table_name_length;
+typedef struct st_spider_wide_share {
+ char *table_name;
+ uint table_name_length;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type table_path_hash_value;
#endif
- uint use_count;
- THR_LOCK lock;
- pthread_mutex_t sts_mutex;
- pthread_mutex_t crd_mutex;
- pthread_mutex_t pt_handler_mutex;
- HASH pt_handler_hash;
- uint pt_handler_hash_id;
- const char *pt_handler_hash_func_name;
- const char *pt_handler_hash_file_name;
- ulong pt_handler_hash_line_no;
-
- volatile bool sts_init;
- volatile bool crd_init;
- volatile time_t sts_get_time;
- volatile time_t crd_get_time;
- ha_statistics stat;
-
- longlong *cardinality;
+ uint use_count;
+ THR_LOCK lock;
+ pthread_mutex_t sts_mutex;
+ pthread_mutex_t crd_mutex;
+ pthread_mutex_t pt_handler_mutex;
+ HASH pt_handler_hash;
+ uint pt_handler_hash_id;
+ const char *pt_handler_hash_func_name;
+ const char *pt_handler_hash_file_name;
+ ulong pt_handler_hash_line_no;
+
+ volatile bool sts_init;
+ volatile bool crd_init;
+ volatile time_t sts_get_time;
+ volatile time_t crd_get_time;
+ ha_statistics stat;
+
+ longlong *cardinality;
} SPIDER_WIDE_SHARE;
enum spider_hnd_stage {
@@ -742,223 +773,220 @@ enum spider_hnd_stage {
SPD_HND_STAGE_CLEAR_TOP_TABLE_FIELDS
};
-typedef struct st_spider_wide_handler
-{
- spider_hnd_stage stage;
- handler *stage_executor;
- THR_LOCK_DATA lock;
- SPIDER_TRX *trx;
- uchar *searched_bitmap;
- uchar *ft_discard_bitmap;
- uchar *position_bitmap;
- uchar *idx_read_bitmap;
- uchar *idx_write_bitmap;
- uchar *rnd_read_bitmap;
- uchar *rnd_write_bitmap;
- SPIDER_CONDITION *condition;
- void *owner;
+typedef struct st_spider_wide_handler {
+ spider_hnd_stage stage;
+ handler *stage_executor;
+ THR_LOCK_DATA lock;
+ SPIDER_TRX *trx;
+ uchar *searched_bitmap;
+ uchar *ft_discard_bitmap;
+ uchar *position_bitmap;
+ uchar *idx_read_bitmap;
+ uchar *idx_write_bitmap;
+ uchar *rnd_read_bitmap;
+ uchar *rnd_write_bitmap;
+ SPIDER_CONDITION *condition;
+ void *owner;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- uint32 *hs_pushed_ret_fields;
+ uint32 *hs_pushed_ret_fields;
#endif
#endif
#ifdef WITH_PARTITION_STORAGE_ENGINE
SPIDER_PARTITION_HANDLER_SHARE *partition_handler_share;
#endif
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- List<Item> *direct_update_fields;
- List<Item> *direct_update_values;
+ List<Item> *direct_update_fields;
+ List<Item> *direct_update_values;
#endif
- TABLE_SHARE *top_share;
+ TABLE_SHARE *top_share;
enum thr_lock_type lock_type;
- uchar lock_table_type;
+ uchar lock_table_type;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- uint32 hs_pushed_strref_num;
+ uint32 hs_pushed_strref_num;
#endif
#endif
- int lock_mode;
- int external_lock_type;
- int cond_check_error;
- uint sql_command;
- uint top_table_fields;
+ int lock_mode;
+ int external_lock_type;
+ int cond_check_error;
+ uint sql_command;
+ uint top_table_fields;
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
#ifdef INFO_KIND_FORCE_LIMIT_BEGIN
- longlong info_limit;
+ longlong info_limit;
#endif
#endif
#ifdef HA_CAN_BULK_ACCESS
- ulonglong external_lock_cnt;
+ ulonglong external_lock_cnt;
#endif
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- size_t hs_pushed_ret_fields_num;
- size_t hs_pushed_ret_fields_size;
- size_t hs_pushed_lcl_fields_num;
-#endif
-#endif
- bool between_flg;
- bool idx_bitmap_is_set;
- bool rnd_bitmap_is_set;
- bool position_bitmap_init;
- bool semi_trx_isolation_chk;
- bool semi_trx_chk;
- bool low_priority;
- bool high_priority;
- bool insert_delayed;
- bool consistent_snapshot;
- bool quick_mode;
- bool keyread;
- bool update_request;
- bool ignore_dup_key;
- bool write_can_replace;
- bool insert_with_update;
- bool cond_check;
+ size_t hs_pushed_ret_fields_num;
+ size_t hs_pushed_ret_fields_size;
+ size_t hs_pushed_lcl_fields_num;
+#endif
+#endif
+ bool between_flg;
+ bool idx_bitmap_is_set;
+ bool rnd_bitmap_is_set;
+ bool position_bitmap_init;
+ bool semi_trx_isolation_chk;
+ bool semi_trx_chk;
+ bool low_priority;
+ bool high_priority;
+ bool insert_delayed;
+ bool consistent_snapshot;
+ bool quick_mode;
+ bool keyread;
+ bool update_request;
+ bool ignore_dup_key;
+ bool write_can_replace;
+ bool insert_with_update;
+ bool cond_check;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
- bool hs_increment;
- bool hs_decrement;
+ bool hs_increment;
+ bool hs_decrement;
#endif
#endif
- bool semi_table_lock;
+ bool semi_table_lock;
} SPIDER_WIDE_HANDLER;
-typedef struct st_spider_transaction
-{
- bool trx_start;
- bool trx_xa;
- bool trx_consistent_snapshot;
- bool trx_xa_prepared;
+typedef struct st_spider_transaction {
+ bool trx_start;
+ bool trx_xa;
+ bool trx_consistent_snapshot;
+ bool trx_xa_prepared;
- bool use_consistent_snapshot;
- bool internal_xa;
- uint internal_xa_snapshot;
+ bool use_consistent_snapshot;
+ bool internal_xa;
+ uint internal_xa_snapshot;
- query_id_t query_id;
- bool tmp_flg;
- bool registed_allocated_thds;
+ query_id_t query_id;
+ bool tmp_flg;
+ bool registed_allocated_thds;
- bool updated_in_this_trx;
+ bool updated_in_this_trx;
- THD *thd;
+ THD *thd;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type thd_hash_value;
#endif
- XID xid;
- HASH trx_conn_hash;
- uint trx_conn_hash_id;
- const char *trx_conn_hash_func_name;
- const char *trx_conn_hash_file_name;
- ulong trx_conn_hash_line_no;
- HASH trx_another_conn_hash;
- uint trx_another_conn_hash_id;
- const char *trx_another_conn_hash_func_name;
- const char *trx_another_conn_hash_file_name;
- ulong trx_another_conn_hash_line_no;
+ XID xid;
+ HASH trx_conn_hash;
+ uint trx_conn_hash_id;
+ const char *trx_conn_hash_func_name;
+ const char *trx_conn_hash_file_name;
+ ulong trx_conn_hash_line_no;
+ HASH trx_another_conn_hash;
+ uint trx_another_conn_hash_id;
+ const char *trx_another_conn_hash_func_name;
+ const char *trx_another_conn_hash_file_name;
+ ulong trx_another_conn_hash_line_no;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- HASH trx_hs_r_conn_hash;
- uint trx_hs_r_conn_hash_id;
- const char *trx_hs_r_conn_hash_func_name;
- const char *trx_hs_r_conn_hash_file_name;
- ulong trx_hs_r_conn_hash_line_no;
- HASH trx_hs_w_conn_hash;
- uint trx_hs_w_conn_hash_id;
- const char *trx_hs_w_conn_hash_func_name;
- const char *trx_hs_w_conn_hash_file_name;
- ulong trx_hs_w_conn_hash_line_no;
+ HASH trx_hs_r_conn_hash;
+ uint trx_hs_r_conn_hash_id;
+ const char *trx_hs_r_conn_hash_func_name;
+ const char *trx_hs_r_conn_hash_file_name;
+ ulong trx_hs_r_conn_hash_line_no;
+ HASH trx_hs_w_conn_hash;
+ uint trx_hs_w_conn_hash_id;
+ const char *trx_hs_w_conn_hash_func_name;
+ const char *trx_hs_w_conn_hash_file_name;
+ ulong trx_hs_w_conn_hash_line_no;
#endif
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- HASH trx_direct_hs_r_conn_hash;
- uint trx_direct_hs_r_conn_hash_id;
- const char *trx_direct_hs_r_conn_hash_func_name;
- const char *trx_direct_hs_r_conn_hash_file_name;
- ulong trx_direct_hs_r_conn_hash_line_no;
- HASH trx_direct_hs_w_conn_hash;
- uint trx_direct_hs_w_conn_hash_id;
- const char *trx_direct_hs_w_conn_hash_func_name;
- const char *trx_direct_hs_w_conn_hash_file_name;
- ulong trx_direct_hs_w_conn_hash_line_no;
-#endif
- HASH trx_alter_table_hash;
- uint trx_alter_table_hash_id;
- const char *trx_alter_table_hash_func_name;
- const char *trx_alter_table_hash_file_name;
- ulong trx_alter_table_hash_line_no;
- HASH trx_ha_hash;
- uint trx_ha_hash_id;
- const char *trx_ha_hash_func_name;
- const char *trx_ha_hash_file_name;
- ulong trx_ha_hash_line_no;
- uint trx_ha_reuse_count;
- XID_STATE internal_xid_state;
- SPIDER_CONN *join_trx_top;
- ulonglong spider_thread_id;
- ulonglong trx_conn_adjustment;
+ HASH trx_direct_hs_r_conn_hash;
+ uint trx_direct_hs_r_conn_hash_id;
+ const char *trx_direct_hs_r_conn_hash_func_name;
+ const char *trx_direct_hs_r_conn_hash_file_name;
+ ulong trx_direct_hs_r_conn_hash_line_no;
+ HASH trx_direct_hs_w_conn_hash;
+ uint trx_direct_hs_w_conn_hash_id;
+ const char *trx_direct_hs_w_conn_hash_func_name;
+ const char *trx_direct_hs_w_conn_hash_file_name;
+ ulong trx_direct_hs_w_conn_hash_line_no;
+#endif
+ HASH trx_alter_table_hash;
+ uint trx_alter_table_hash_id;
+ const char *trx_alter_table_hash_func_name;
+ const char *trx_alter_table_hash_file_name;
+ ulong trx_alter_table_hash_line_no;
+ HASH trx_ha_hash;
+ uint trx_ha_hash_id;
+ const char *trx_ha_hash_func_name;
+ const char *trx_ha_hash_file_name;
+ ulong trx_ha_hash_line_no;
+ uint trx_ha_reuse_count;
+ XID_STATE internal_xid_state;
+ SPIDER_CONN *join_trx_top;
+ ulonglong spider_thread_id;
+ ulonglong trx_conn_adjustment;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- ulonglong trx_hs_r_conn_adjustment;
- ulonglong trx_hs_w_conn_adjustment;
+ ulonglong trx_hs_r_conn_adjustment;
+ ulonglong trx_hs_w_conn_adjustment;
#endif
- uint locked_connections;
+ uint locked_connections;
- ulonglong direct_update_count;
- ulonglong direct_delete_count;
- ulonglong direct_order_limit_count;
- ulonglong direct_aggregate_count;
- ulonglong parallel_search_count;
+ ulonglong direct_update_count;
+ ulonglong direct_delete_count;
+ ulonglong direct_order_limit_count;
+ ulonglong direct_aggregate_count;
+ ulonglong parallel_search_count;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- ulonglong hs_result_free_count;
+ ulonglong hs_result_free_count;
#endif
#ifdef HA_CAN_BULK_ACCESS
- SPIDER_CONN *bulk_access_conn_first;
- SPIDER_CONN *bulk_access_conn_last;
+ SPIDER_CONN *bulk_access_conn_first;
+ SPIDER_CONN *bulk_access_conn_last;
#endif
- pthread_mutex_t *udf_table_mutexes;
- CHARSET_INFO *udf_access_charset;
- spider_string *udf_set_names;
+ pthread_mutex_t *udf_table_mutexes;
+ CHARSET_INFO *udf_access_charset;
+ spider_string *udf_set_names;
- time_t mem_calc_merge_time;
- const char *alloc_func_name[SPIDER_MEM_CALC_LIST_NUM];
- const char *alloc_file_name[SPIDER_MEM_CALC_LIST_NUM];
- ulong alloc_line_no[SPIDER_MEM_CALC_LIST_NUM];
- ulonglong total_alloc_mem[SPIDER_MEM_CALC_LIST_NUM];
- longlong current_alloc_mem[SPIDER_MEM_CALC_LIST_NUM];
- ulonglong alloc_mem_count[SPIDER_MEM_CALC_LIST_NUM];
- ulonglong free_mem_count[SPIDER_MEM_CALC_LIST_NUM];
- ulonglong total_alloc_mem_buffer[SPIDER_MEM_CALC_LIST_NUM];
- longlong current_alloc_mem_buffer[SPIDER_MEM_CALC_LIST_NUM];
- ulonglong alloc_mem_count_buffer[SPIDER_MEM_CALC_LIST_NUM];
- ulonglong free_mem_count_buffer[SPIDER_MEM_CALC_LIST_NUM];
+ time_t mem_calc_merge_time;
+ const char *alloc_func_name[SPIDER_MEM_CALC_LIST_NUM];
+ const char *alloc_file_name[SPIDER_MEM_CALC_LIST_NUM];
+ ulong alloc_line_no[SPIDER_MEM_CALC_LIST_NUM];
+ ulonglong total_alloc_mem[SPIDER_MEM_CALC_LIST_NUM];
+ longlong current_alloc_mem[SPIDER_MEM_CALC_LIST_NUM];
+ ulonglong alloc_mem_count[SPIDER_MEM_CALC_LIST_NUM];
+ ulonglong free_mem_count[SPIDER_MEM_CALC_LIST_NUM];
+ ulonglong total_alloc_mem_buffer[SPIDER_MEM_CALC_LIST_NUM];
+ longlong current_alloc_mem_buffer[SPIDER_MEM_CALC_LIST_NUM];
+ ulonglong alloc_mem_count_buffer[SPIDER_MEM_CALC_LIST_NUM];
+ ulonglong free_mem_count_buffer[SPIDER_MEM_CALC_LIST_NUM];
- MEM_ROOT mem_root;
+ MEM_ROOT mem_root;
/* for transaction level query */
- SPIDER_SHARE *tmp_share;
- char *tmp_connect_info[SPIDER_TMP_SHARE_CHAR_PTR_COUNT];
- uint tmp_connect_info_length[SPIDER_TMP_SHARE_UINT_COUNT];
- long tmp_long[SPIDER_TMP_SHARE_LONG_COUNT];
- longlong tmp_longlong[SPIDER_TMP_SHARE_LONGLONG_COUNT];
- ha_spider *tmp_spider;
- int tmp_need_mon;
- spider_db_handler *tmp_dbton_handler[SPIDER_DBTON_SIZE];
+ SPIDER_SHARE *tmp_share;
+ char *tmp_connect_info[SPIDER_TMP_SHARE_CHAR_PTR_COUNT];
+ uint tmp_connect_info_length[SPIDER_TMP_SHARE_UINT_COUNT];
+ long tmp_long[SPIDER_TMP_SHARE_LONG_COUNT];
+ longlong tmp_longlong[SPIDER_TMP_SHARE_LONGLONG_COUNT];
+ ha_spider *tmp_spider;
+ int tmp_need_mon;
+ spider_db_handler *tmp_dbton_handler[SPIDER_DBTON_SIZE];
} SPIDER_TRX;
-typedef struct st_spider_share
-{
- char *table_name;
- uint table_name_length;
- uint use_count;
- uint link_count;
- uint all_link_count;
- uint link_bitmap_size;
- pthread_mutex_t mutex;
- pthread_mutex_t sts_mutex;
- pthread_mutex_t crd_mutex;
-/*
- pthread_mutex_t auto_increment_mutex;
-*/
- TABLE_SHARE *table_share;
+typedef struct st_spider_share {
+ char *table_name;
+ uint table_name_length;
+ uint use_count;
+ uint link_count;
+ uint all_link_count;
+ uint link_bitmap_size;
+ pthread_mutex_t mutex;
+ pthread_mutex_t sts_mutex;
+ pthread_mutex_t crd_mutex;
+ /*
+ pthread_mutex_t auto_increment_mutex;
+ */
+ TABLE_SHARE *table_share;
SPIDER_LGTM_TBLHND_SHARE *lgtm_tblhnd_share;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type table_name_hash_value;
@@ -967,181 +995,181 @@ typedef struct st_spider_share
#endif
#endif
- volatile bool init;
- volatile bool init_error;
- volatile time_t init_error_time;
- volatile bool link_status_init;
- uchar *table_mon_mutex_bitmap;
- volatile bool sts_init;
- volatile time_t sts_get_time;
+ volatile bool init;
+ volatile bool init_error;
+ volatile time_t init_error_time;
+ volatile bool link_status_init;
+ uchar *table_mon_mutex_bitmap;
+ volatile bool sts_init;
+ volatile time_t sts_get_time;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- volatile time_t bg_sts_try_time;
- volatile double bg_sts_interval;
- volatile int bg_sts_mode;
+ volatile time_t bg_sts_try_time;
+ volatile double bg_sts_interval;
+ volatile int bg_sts_mode;
#ifdef WITH_PARTITION_STORAGE_ENGINE
- volatile int bg_sts_sync;
-#endif
- volatile bool bg_sts_init;
- volatile bool bg_sts_kill;
- volatile bool bg_sts_thd_wait;
- THD *bg_sts_thd;
- pthread_t bg_sts_thread;
- pthread_cond_t bg_sts_cond;
- pthread_cond_t bg_sts_sync_cond;
- volatile bool crd_init;
-#endif
- volatile time_t crd_get_time;
+ volatile int bg_sts_sync;
+#endif
+ volatile bool bg_sts_init;
+ volatile bool bg_sts_kill;
+ volatile bool bg_sts_thd_wait;
+ THD *bg_sts_thd;
+ pthread_t bg_sts_thread;
+ pthread_cond_t bg_sts_cond;
+ pthread_cond_t bg_sts_sync_cond;
+ volatile bool crd_init;
+#endif
+ volatile time_t crd_get_time;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- volatile time_t bg_crd_try_time;
- volatile double bg_crd_interval;
- volatile int bg_crd_mode;
+ volatile time_t bg_crd_try_time;
+ volatile double bg_crd_interval;
+ volatile int bg_crd_mode;
#ifdef WITH_PARTITION_STORAGE_ENGINE
- volatile int bg_crd_sync;
+ volatile int bg_crd_sync;
#endif
- volatile bool bg_crd_init;
- volatile bool bg_crd_kill;
- volatile bool bg_crd_thd_wait;
- THD *bg_crd_thd;
- pthread_t bg_crd_thread;
- pthread_cond_t bg_crd_cond;
- pthread_cond_t bg_crd_sync_cond;
+ volatile bool bg_crd_init;
+ volatile bool bg_crd_kill;
+ volatile bool bg_crd_thd_wait;
+ THD *bg_crd_thd;
+ pthread_t bg_crd_thread;
+ pthread_cond_t bg_crd_cond;
+ pthread_cond_t bg_crd_sync_cond;
#endif
#ifndef WITHOUT_SPIDER_BG_SEARCH
- volatile bool bg_mon_init;
- volatile bool bg_mon_kill;
- THD **bg_mon_thds;
- pthread_t *bg_mon_threads;
- pthread_mutex_t *bg_mon_mutexes;
- pthread_cond_t *bg_mon_conds;
- pthread_cond_t *bg_mon_sleep_conds;
+ volatile bool bg_mon_init;
+ volatile bool bg_mon_kill;
+ THD **bg_mon_thds;
+ pthread_t *bg_mon_threads;
+ pthread_mutex_t *bg_mon_mutexes;
+ pthread_cond_t *bg_mon_conds;
+ pthread_cond_t *bg_mon_sleep_conds;
#endif
#ifndef WITHOUT_SPIDER_BG_SEARCH
/* static bg thread for sts and crd */
- TABLE table;
- ha_spider *sts_spider;
- ha_spider *crd_spider;
- SPIDER_THREAD *sts_thread;
- SPIDER_THREAD *crd_thread;
- volatile bool sts_spider_init;
- volatile bool sts_working;
- volatile bool sts_wait;
- volatile bool crd_spider_init;
- volatile bool crd_working;
- volatile bool crd_wait;
+ TABLE table;
+ ha_spider *sts_spider;
+ ha_spider *crd_spider;
+ SPIDER_THREAD *sts_thread;
+ SPIDER_THREAD *crd_thread;
+ volatile bool sts_spider_init;
+ volatile bool sts_working;
+ volatile bool sts_wait;
+ volatile bool crd_spider_init;
+ volatile bool crd_working;
+ volatile bool crd_wait;
volatile SPIDER_SHARE *sts_prev;
volatile SPIDER_SHARE *sts_next;
volatile SPIDER_SHARE *crd_prev;
volatile SPIDER_SHARE *crd_next;
#endif
- MEM_ROOT mem_root;
+ MEM_ROOT mem_root;
-/*
- volatile bool auto_increment_init;
- volatile ulonglong auto_increment_lclval;
-*/
- ha_statistics stat;
+ /*
+ volatile bool auto_increment_init;
+ volatile ulonglong auto_increment_lclval;
+ */
+ ha_statistics stat;
- longlong static_records_for_status;
- longlong static_mean_rec_length;
+ longlong static_records_for_status;
+ longlong static_mean_rec_length;
- int bitmap_size;
- spider_string *key_hint;
- CHARSET_INFO *access_charset;
- longlong *static_key_cardinality;
- longlong *cardinality;
- uchar *cardinality_upd;
- longlong additional_table_flags;
- bool have_recovery_link;
+ int bitmap_size;
+ spider_string *key_hint;
+ CHARSET_INFO *access_charset;
+ longlong *static_key_cardinality;
+ longlong *cardinality;
+ uchar *cardinality_upd;
+ longlong additional_table_flags;
+ bool have_recovery_link;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- int sts_bg_mode;
+ int sts_bg_mode;
#endif
- double sts_interval;
- int sts_mode;
+ double sts_interval;
+ int sts_mode;
#ifdef WITH_PARTITION_STORAGE_ENGINE
- int sts_sync;
+ int sts_sync;
#endif
- int store_last_sts;
- int load_sts_at_startup;
+ int store_last_sts;
+ int load_sts_at_startup;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- int crd_bg_mode;
+ int crd_bg_mode;
#endif
- double crd_interval;
- int crd_mode;
+ double crd_interval;
+ int crd_mode;
#ifdef WITH_PARTITION_STORAGE_ENGINE
- int crd_sync;
-#endif
- int store_last_crd;
- int load_crd_at_startup;
- int crd_type;
- double crd_weight;
- longlong internal_offset;
- longlong internal_limit;
- longlong split_read;
- double semi_split_read;
- longlong semi_split_read_limit;
- int init_sql_alloc_size;
- int reset_sql_alloc;
- int multi_split_read;
- int max_order;
- int semi_table_lock;
- int semi_table_lock_conn;
- int selupd_lock_mode;
- int query_cache;
- int query_cache_sync;
- int internal_delayed;
- int bulk_size;
- int bulk_update_mode;
- int bulk_update_size;
- int buffer_size;
- int internal_optimize;
- int internal_optimize_local;
- double scan_rate;
- double read_rate;
- longlong priority;
- int quick_mode;
- longlong quick_page_size;
- longlong quick_page_byte;
- int low_mem_read;
- int table_count_mode;
- int select_column_mode;
+ int crd_sync;
+#endif
+ int store_last_crd;
+ int load_crd_at_startup;
+ int crd_type;
+ double crd_weight;
+ longlong internal_offset;
+ longlong internal_limit;
+ longlong split_read;
+ double semi_split_read;
+ longlong semi_split_read_limit;
+ int init_sql_alloc_size;
+ int reset_sql_alloc;
+ int multi_split_read;
+ int max_order;
+ int semi_table_lock;
+ int semi_table_lock_conn;
+ int selupd_lock_mode;
+ int query_cache;
+ int query_cache_sync;
+ int internal_delayed;
+ int bulk_size;
+ int bulk_update_mode;
+ int bulk_update_size;
+ int buffer_size;
+ int internal_optimize;
+ int internal_optimize_local;
+ double scan_rate;
+ double read_rate;
+ longlong priority;
+ int quick_mode;
+ longlong quick_page_size;
+ longlong quick_page_byte;
+ int low_mem_read;
+ int table_count_mode;
+ int select_column_mode;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- int bgs_mode;
- longlong bgs_first_read;
- longlong bgs_second_read;
-#endif
- longlong first_read;
- longlong second_read;
- int auto_increment_mode;
- int use_table_charset;
- int use_pushdown_udf;
- int skip_default_condition;
- int skip_parallel_search;
- int direct_dup_insert;
- longlong direct_order_limit;
- int read_only_mode;
- int error_read_mode;
- int error_write_mode;
- int active_link_count;
+ int bgs_mode;
+ longlong bgs_first_read;
+ longlong bgs_second_read;
+#endif
+ longlong first_read;
+ longlong second_read;
+ int auto_increment_mode;
+ int use_table_charset;
+ int use_pushdown_udf;
+ int skip_default_condition;
+ int skip_parallel_search;
+ int direct_dup_insert;
+ longlong direct_order_limit;
+ int read_only_mode;
+ int error_read_mode;
+ int error_write_mode;
+ int active_link_count;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- longlong hs_result_free_size;
+ longlong hs_result_free_size;
#endif
#ifdef HA_CAN_BULK_ACCESS
- int bulk_access_free;
+ int bulk_access_free;
#endif
#ifdef HA_CAN_FORCE_BULK_UPDATE
- int force_bulk_update;
+ int force_bulk_update;
#endif
#ifdef HA_CAN_FORCE_BULK_DELETE
- int force_bulk_delete;
+ int force_bulk_delete;
#endif
- int casual_read;
- int delete_all_rows_type;
+ int casual_read;
+ int delete_all_rows_type;
- int bka_mode;
- char *bka_engine;
- int bka_engine_length;
+ int bka_mode;
+ char *bka_engine;
+ int bka_engine_length;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type *conn_keys_hash_value;
@@ -1150,484 +1178,466 @@ typedef struct st_spider_share
my_hash_value_type *hs_write_conn_keys_hash_value;
#endif
#endif
- char **server_names;
- char **tgt_table_names;
- char **tgt_dbs;
- char **tgt_hosts;
- char **tgt_usernames;
- char **tgt_passwords;
- char **tgt_sockets;
- char **tgt_wrappers;
- char **tgt_ssl_cas;
- char **tgt_ssl_capaths;
- char **tgt_ssl_certs;
- char **tgt_ssl_ciphers;
- char **tgt_ssl_keys;
- char **tgt_default_files;
- char **tgt_default_groups;
- char **tgt_dsns;
- char **tgt_filedsns;
- char **tgt_drivers;
- char **static_link_ids;
- char **tgt_pk_names;
- char **tgt_sequence_names;
- char **conn_keys;
+ char **server_names;
+ char **tgt_table_names;
+ char **tgt_dbs;
+ char **tgt_hosts;
+ char **tgt_usernames;
+ char **tgt_passwords;
+ char **tgt_sockets;
+ char **tgt_wrappers;
+ char **tgt_ssl_cas;
+ char **tgt_ssl_capaths;
+ char **tgt_ssl_certs;
+ char **tgt_ssl_ciphers;
+ char **tgt_ssl_keys;
+ char **tgt_default_files;
+ char **tgt_default_groups;
+ char **tgt_dsns;
+ char **tgt_filedsns;
+ char **tgt_drivers;
+ char **static_link_ids;
+ char **tgt_pk_names;
+ char **tgt_sequence_names;
+ char **conn_keys;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- char **hs_read_socks;
- char **hs_write_socks;
- char **hs_read_conn_keys;
- char **hs_write_conn_keys;
-#endif
- long *tgt_ports;
- long *tgt_ssl_vscs;
- long *link_statuses;
+ char **hs_read_socks;
+ char **hs_write_socks;
+ char **hs_read_conn_keys;
+ char **hs_write_conn_keys;
+#endif
+ long *tgt_ports;
+ long *tgt_ssl_vscs;
+ long *link_statuses;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- long *monitoring_bg_flag;
- long *monitoring_bg_kind;
+ long *monitoring_bg_flag;
+ long *monitoring_bg_kind;
#endif
- long *monitoring_binlog_pos_at_failing;
- long *monitoring_flag;
- long *monitoring_kind;
+ long *monitoring_binlog_pos_at_failing;
+ long *monitoring_flag;
+ long *monitoring_kind;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- longlong *monitoring_bg_interval;
+ longlong *monitoring_bg_interval;
#endif
- longlong *monitoring_limit;
- longlong *monitoring_sid;
+ longlong *monitoring_limit;
+ longlong *monitoring_sid;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- long *use_hs_reads;
- long *use_hs_writes;
- long *hs_read_ports;
- long *hs_write_ports;
- long *hs_write_to_reads;
-#endif
- long *use_handlers;
- long *connect_timeouts;
- long *net_read_timeouts;
- long *net_write_timeouts;
- long *access_balances;
- long *bka_table_name_types;
- long *strict_group_bys;
-
- uint *server_names_lengths;
- uint *tgt_table_names_lengths;
- uint *tgt_dbs_lengths;
- uint *tgt_hosts_lengths;
- uint *tgt_usernames_lengths;
- uint *tgt_passwords_lengths;
- uint *tgt_sockets_lengths;
- uint *tgt_wrappers_lengths;
- uint *tgt_ssl_cas_lengths;
- uint *tgt_ssl_capaths_lengths;
- uint *tgt_ssl_certs_lengths;
- uint *tgt_ssl_ciphers_lengths;
- uint *tgt_ssl_keys_lengths;
- uint *tgt_default_files_lengths;
- uint *tgt_default_groups_lengths;
- uint *tgt_dsns_lengths;
- uint *tgt_filedsns_lengths;
- uint *tgt_drivers_lengths;
- uint *static_link_ids_lengths;
- uint *tgt_pk_names_lengths;
- uint *tgt_sequence_names_lengths;
- uint *conn_keys_lengths;
+ long *use_hs_reads;
+ long *use_hs_writes;
+ long *hs_read_ports;
+ long *hs_write_ports;
+ long *hs_write_to_reads;
+#endif
+ long *use_handlers;
+ long *connect_timeouts;
+ long *net_read_timeouts;
+ long *net_write_timeouts;
+ long *access_balances;
+ long *bka_table_name_types;
+ long *strict_group_bys;
+
+ uint *server_names_lengths;
+ uint *tgt_table_names_lengths;
+ uint *tgt_dbs_lengths;
+ uint *tgt_hosts_lengths;
+ uint *tgt_usernames_lengths;
+ uint *tgt_passwords_lengths;
+ uint *tgt_sockets_lengths;
+ uint *tgt_wrappers_lengths;
+ uint *tgt_ssl_cas_lengths;
+ uint *tgt_ssl_capaths_lengths;
+ uint *tgt_ssl_certs_lengths;
+ uint *tgt_ssl_ciphers_lengths;
+ uint *tgt_ssl_keys_lengths;
+ uint *tgt_default_files_lengths;
+ uint *tgt_default_groups_lengths;
+ uint *tgt_dsns_lengths;
+ uint *tgt_filedsns_lengths;
+ uint *tgt_drivers_lengths;
+ uint *static_link_ids_lengths;
+ uint *tgt_pk_names_lengths;
+ uint *tgt_sequence_names_lengths;
+ uint *conn_keys_lengths;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- uint *hs_read_socks_lengths;
- uint *hs_write_socks_lengths;
- uint *hs_read_conn_keys_lengths;
- uint *hs_write_conn_keys_lengths;
+ uint *hs_read_socks_lengths;
+ uint *hs_write_socks_lengths;
+ uint *hs_read_conn_keys_lengths;
+ uint *hs_write_conn_keys_lengths;
#endif
- uint *sql_dbton_ids;
+ uint *sql_dbton_ids;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- uint *hs_dbton_ids;
-#endif
-
- uint server_names_charlen;
- uint tgt_table_names_charlen;
- uint tgt_dbs_charlen;
- uint tgt_hosts_charlen;
- uint tgt_usernames_charlen;
- uint tgt_passwords_charlen;
- uint tgt_sockets_charlen;
- uint tgt_wrappers_charlen;
- uint tgt_ssl_cas_charlen;
- uint tgt_ssl_capaths_charlen;
- uint tgt_ssl_certs_charlen;
- uint tgt_ssl_ciphers_charlen;
- uint tgt_ssl_keys_charlen;
- uint tgt_default_files_charlen;
- uint tgt_default_groups_charlen;
- uint tgt_dsns_charlen;
- uint tgt_filedsns_charlen;
- uint tgt_drivers_charlen;
- uint static_link_ids_charlen;
- uint tgt_pk_names_charlen;
- uint tgt_sequence_names_charlen;
- uint conn_keys_charlen;
+ uint *hs_dbton_ids;
+#endif
+
+ uint server_names_charlen;
+ uint tgt_table_names_charlen;
+ uint tgt_dbs_charlen;
+ uint tgt_hosts_charlen;
+ uint tgt_usernames_charlen;
+ uint tgt_passwords_charlen;
+ uint tgt_sockets_charlen;
+ uint tgt_wrappers_charlen;
+ uint tgt_ssl_cas_charlen;
+ uint tgt_ssl_capaths_charlen;
+ uint tgt_ssl_certs_charlen;
+ uint tgt_ssl_ciphers_charlen;
+ uint tgt_ssl_keys_charlen;
+ uint tgt_default_files_charlen;
+ uint tgt_default_groups_charlen;
+ uint tgt_dsns_charlen;
+ uint tgt_filedsns_charlen;
+ uint tgt_drivers_charlen;
+ uint static_link_ids_charlen;
+ uint tgt_pk_names_charlen;
+ uint tgt_sequence_names_charlen;
+ uint conn_keys_charlen;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- uint hs_read_socks_charlen;
- uint hs_write_socks_charlen;
- uint hs_read_conn_keys_charlen;
- uint hs_write_conn_keys_charlen;
-#endif
-
- uint server_names_length;
- uint tgt_table_names_length;
- uint tgt_dbs_length;
- uint tgt_hosts_length;
- uint tgt_usernames_length;
- uint tgt_passwords_length;
- uint tgt_sockets_length;
- uint tgt_wrappers_length;
- uint tgt_ssl_cas_length;
- uint tgt_ssl_capaths_length;
- uint tgt_ssl_certs_length;
- uint tgt_ssl_ciphers_length;
- uint tgt_ssl_keys_length;
- uint tgt_default_files_length;
- uint tgt_default_groups_length;
- uint tgt_dsns_length;
- uint tgt_filedsns_length;
- uint tgt_drivers_length;
- uint static_link_ids_length;
- uint tgt_pk_names_length;
- uint tgt_sequence_names_length;
- uint conn_keys_length;
+ uint hs_read_socks_charlen;
+ uint hs_write_socks_charlen;
+ uint hs_read_conn_keys_charlen;
+ uint hs_write_conn_keys_charlen;
+#endif
+
+ uint server_names_length;
+ uint tgt_table_names_length;
+ uint tgt_dbs_length;
+ uint tgt_hosts_length;
+ uint tgt_usernames_length;
+ uint tgt_passwords_length;
+ uint tgt_sockets_length;
+ uint tgt_wrappers_length;
+ uint tgt_ssl_cas_length;
+ uint tgt_ssl_capaths_length;
+ uint tgt_ssl_certs_length;
+ uint tgt_ssl_ciphers_length;
+ uint tgt_ssl_keys_length;
+ uint tgt_default_files_length;
+ uint tgt_default_groups_length;
+ uint tgt_dsns_length;
+ uint tgt_filedsns_length;
+ uint tgt_drivers_length;
+ uint static_link_ids_length;
+ uint tgt_pk_names_length;
+ uint tgt_sequence_names_length;
+ uint conn_keys_length;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- uint hs_read_socks_length;
- uint hs_write_socks_length;
- uint hs_read_conn_keys_length;
- uint hs_write_conn_keys_length;
-#endif
- uint tgt_ports_length;
- uint tgt_ssl_vscs_length;
- uint link_statuses_length;
+ uint hs_read_socks_length;
+ uint hs_write_socks_length;
+ uint hs_read_conn_keys_length;
+ uint hs_write_conn_keys_length;
+#endif
+ uint tgt_ports_length;
+ uint tgt_ssl_vscs_length;
+ uint link_statuses_length;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- uint monitoring_bg_flag_length;
- uint monitoring_bg_kind_length;
+ uint monitoring_bg_flag_length;
+ uint monitoring_bg_kind_length;
#endif
- uint monitoring_binlog_pos_at_failing_length;
- uint monitoring_flag_length;
- uint monitoring_kind_length;
+ uint monitoring_binlog_pos_at_failing_length;
+ uint monitoring_flag_length;
+ uint monitoring_kind_length;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- uint monitoring_bg_interval_length;
+ uint monitoring_bg_interval_length;
#endif
- uint monitoring_limit_length;
- uint monitoring_sid_length;
+ uint monitoring_limit_length;
+ uint monitoring_sid_length;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- uint use_hs_reads_length;
- uint use_hs_writes_length;
- uint hs_read_ports_length;
- uint hs_write_ports_length;
- uint hs_write_to_reads_length;
-#endif
- uint use_handlers_length;
- uint connect_timeouts_length;
- uint net_read_timeouts_length;
- uint net_write_timeouts_length;
- uint access_balances_length;
- uint bka_table_name_types_length;
- uint strict_group_bys_length;
+ uint use_hs_reads_length;
+ uint use_hs_writes_length;
+ uint hs_read_ports_length;
+ uint hs_write_ports_length;
+ uint hs_write_to_reads_length;
+#endif
+ uint use_handlers_length;
+ uint connect_timeouts_length;
+ uint net_read_timeouts_length;
+ uint net_write_timeouts_length;
+ uint access_balances_length;
+ uint bka_table_name_types_length;
+ uint strict_group_bys_length;
/* for dbton */
- uchar dbton_bitmap[spider_bitmap_size(SPIDER_DBTON_SIZE)];
- spider_db_share *dbton_share[SPIDER_DBTON_SIZE];
- uint use_dbton_count;
- uint use_dbton_ids[SPIDER_DBTON_SIZE];
- uint dbton_id_to_seq[SPIDER_DBTON_SIZE];
- uint use_sql_dbton_count;
- uint use_sql_dbton_ids[SPIDER_DBTON_SIZE];
- uint sql_dbton_id_to_seq[SPIDER_DBTON_SIZE];
+ uchar dbton_bitmap[spider_bitmap_size(SPIDER_DBTON_SIZE)];
+ spider_db_share *dbton_share[SPIDER_DBTON_SIZE];
+ uint use_dbton_count;
+ uint use_dbton_ids[SPIDER_DBTON_SIZE];
+ uint dbton_id_to_seq[SPIDER_DBTON_SIZE];
+ uint use_sql_dbton_count;
+ uint use_sql_dbton_ids[SPIDER_DBTON_SIZE];
+ uint sql_dbton_id_to_seq[SPIDER_DBTON_SIZE];
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- uint use_hs_dbton_count;
- uint use_hs_dbton_ids[SPIDER_DBTON_SIZE];
- uint hs_dbton_id_to_seq[SPIDER_DBTON_SIZE];
+ uint use_hs_dbton_count;
+ uint use_hs_dbton_ids[SPIDER_DBTON_SIZE];
+ uint hs_dbton_id_to_seq[SPIDER_DBTON_SIZE];
#endif
SPIDER_ALTER_TABLE alter_table;
- SPIDER_WIDE_SHARE *wide_share;
+ SPIDER_WIDE_SHARE *wide_share;
} SPIDER_SHARE;
-typedef struct st_spider_link_pack
-{
- SPIDER_SHARE *share;
- int link_idx;
+typedef struct st_spider_link_pack {
+ SPIDER_SHARE *share;
+ int link_idx;
} SPIDER_LINK_PACK;
-typedef struct st_spider_init_error_table
-{
- char *table_name;
- uint table_name_length;
+typedef struct st_spider_init_error_table {
+ char *table_name;
+ uint table_name_length;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type table_name_hash_value;
#endif
- bool init_error_with_message;
- char init_error_msg[MYSQL_ERRMSG_SIZE];
- volatile int init_error;
- volatile time_t init_error_time;
+ bool init_error_with_message;
+ char init_error_msg[MYSQL_ERRMSG_SIZE];
+ volatile int init_error;
+ volatile time_t init_error_time;
} SPIDER_INIT_ERROR_TABLE;
-typedef struct st_spider_direct_sql
-{
- int table_count;
- char **db_names;
- char **table_names;
- TABLE **tables;
- int *iop;
+typedef struct st_spider_direct_sql {
+ int table_count;
+ char **db_names;
+ char **table_names;
+ TABLE **tables;
+ int *iop;
#if MYSQL_VERSION_ID < 50500
#else
/* for using real table */
- bool real_table_used;
- TABLE_LIST *table_list_first;
- TABLE_LIST *table_list;
- uchar *real_table_bitmap;
+ bool real_table_used;
+ TABLE_LIST *table_list_first;
+ TABLE_LIST *table_list;
+ uchar *real_table_bitmap;
SPIDER_Open_tables_backup open_tables_backup;
- THD *open_tables_thd;
+ THD *open_tables_thd;
#endif
- char *sql;
- ulong sql_length;
+ char *sql;
+ ulong sql_length;
- SPIDER_TRX *trx;
- SPIDER_CONN *conn;
+ SPIDER_TRX *trx;
+ SPIDER_CONN *conn;
- bool modified_non_trans_table;
+ bool modified_non_trans_table;
- int table_loop_mode;
- longlong priority;
- int connect_timeout;
- int net_read_timeout;
- int net_write_timeout;
- longlong bulk_insert_rows;
- int connection_channel;
+ int table_loop_mode;
+ longlong priority;
+ int connect_timeout;
+ int net_read_timeout;
+ int net_write_timeout;
+ longlong bulk_insert_rows;
+ int connection_channel;
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
- int access_mode;
+ int access_mode;
#endif
#if MYSQL_VERSION_ID < 50500
#else
- int use_real_table;
-#endif
- int error_rw_mode;
-
- char *server_name;
- char *tgt_default_db_name;
- char *tgt_host;
- char *tgt_username;
- char *tgt_password;
- char *tgt_socket;
- char *tgt_wrapper;
- char *tgt_ssl_ca;
- char *tgt_ssl_capath;
- char *tgt_ssl_cert;
- char *tgt_ssl_cipher;
- char *tgt_ssl_key;
- char *tgt_default_file;
- char *tgt_default_group;
- char *tgt_dsn;
- char *tgt_filedsn;
- char *tgt_driver;
- char *conn_key;
- long tgt_port;
- long tgt_ssl_vsc;
-
- uint server_name_length;
- uint tgt_default_db_name_length;
- uint tgt_host_length;
- uint tgt_username_length;
- uint tgt_password_length;
- uint tgt_socket_length;
- uint tgt_wrapper_length;
- uint tgt_ssl_ca_length;
- uint tgt_ssl_capath_length;
- uint tgt_ssl_cert_length;
- uint tgt_ssl_cipher_length;
- uint tgt_ssl_key_length;
- uint tgt_default_file_length;
- uint tgt_default_group_length;
- uint tgt_dsn_length;
- uint tgt_filedsn_length;
- uint tgt_driver_length;
- uint conn_key_length;
- uint dbton_id;
+ int use_real_table;
+#endif
+ int error_rw_mode;
+
+ char *server_name;
+ char *tgt_default_db_name;
+ char *tgt_host;
+ char *tgt_username;
+ char *tgt_password;
+ char *tgt_socket;
+ char *tgt_wrapper;
+ char *tgt_ssl_ca;
+ char *tgt_ssl_capath;
+ char *tgt_ssl_cert;
+ char *tgt_ssl_cipher;
+ char *tgt_ssl_key;
+ char *tgt_default_file;
+ char *tgt_default_group;
+ char *tgt_dsn;
+ char *tgt_filedsn;
+ char *tgt_driver;
+ char *conn_key;
+ long tgt_port;
+ long tgt_ssl_vsc;
+
+ uint server_name_length;
+ uint tgt_default_db_name_length;
+ uint tgt_host_length;
+ uint tgt_username_length;
+ uint tgt_password_length;
+ uint tgt_socket_length;
+ uint tgt_wrapper_length;
+ uint tgt_ssl_ca_length;
+ uint tgt_ssl_capath_length;
+ uint tgt_ssl_cert_length;
+ uint tgt_ssl_cipher_length;
+ uint tgt_ssl_key_length;
+ uint tgt_default_file_length;
+ uint tgt_default_group_length;
+ uint tgt_dsn_length;
+ uint tgt_filedsn_length;
+ uint tgt_driver_length;
+ uint conn_key_length;
+ uint dbton_id;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
- my_hash_value_type conn_key_hash_value;
+ my_hash_value_type conn_key_hash_value;
#endif
- pthread_mutex_t *bg_mutex;
- pthread_cond_t *bg_cond;
+ pthread_mutex_t *bg_mutex;
+ pthread_cond_t *bg_cond;
volatile st_spider_direct_sql *prev;
volatile st_spider_direct_sql *next;
- void *parent;
+ void *parent;
} SPIDER_DIRECT_SQL;
-typedef struct st_spider_bg_direct_sql
-{
- longlong called_cnt;
- char bg_error_msg[MYSQL_ERRMSG_SIZE];
- volatile int bg_error;
- volatile bool modified_non_trans_table;
- pthread_mutex_t bg_mutex;
- pthread_cond_t bg_cond;
+typedef struct st_spider_bg_direct_sql {
+ longlong called_cnt;
+ char bg_error_msg[MYSQL_ERRMSG_SIZE];
+ volatile int bg_error;
+ volatile bool modified_non_trans_table;
+ pthread_mutex_t bg_mutex;
+ pthread_cond_t bg_cond;
volatile SPIDER_DIRECT_SQL *direct_sql;
} SPIDER_BG_DIRECT_SQL;
-typedef struct st_spider_mon_table_result
-{
- int result_status;
- SPIDER_TRX *trx;
+typedef struct st_spider_mon_table_result {
+ int result_status;
+ SPIDER_TRX *trx;
} SPIDER_MON_TABLE_RESULT;
-typedef struct st_spider_table_mon
-{
- SPIDER_SHARE *share;
- uint32 server_id;
- st_spider_table_mon_list *parent;
- st_spider_table_mon *next;
+typedef struct st_spider_table_mon {
+ SPIDER_SHARE *share;
+ uint32 server_id;
+ st_spider_table_mon_list *parent;
+ st_spider_table_mon *next;
} SPIDER_TABLE_MON;
-typedef struct st_spider_table_mon_list
-{
- char *key;
- uint key_length;
+typedef struct st_spider_table_mon_list {
+ char *key;
+ uint key_length;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
- my_hash_value_type key_hash_value;
+ my_hash_value_type key_hash_value;
#endif
- uint use_count;
- uint mutex_hash;
- ulonglong mon_table_cache_version;
+ uint use_count;
+ uint mutex_hash;
+ ulonglong mon_table_cache_version;
- char *table_name;
- int link_id;
- uint table_name_length;
+ char *table_name;
+ int link_id;
+ uint table_name_length;
- int list_size;
- SPIDER_TABLE_MON *first;
- SPIDER_TABLE_MON *current;
- volatile int mon_status;
+ int list_size;
+ SPIDER_TABLE_MON *first;
+ SPIDER_TABLE_MON *current;
+ volatile int mon_status;
- SPIDER_SHARE *share;
+ SPIDER_SHARE *share;
- pthread_mutex_t caller_mutex;
- pthread_mutex_t receptor_mutex;
- pthread_mutex_t monitor_mutex;
- pthread_mutex_t update_status_mutex;
- volatile int last_caller_result;
- volatile int last_receptor_result;
- volatile int last_mon_result;
+ pthread_mutex_t caller_mutex;
+ pthread_mutex_t receptor_mutex;
+ pthread_mutex_t monitor_mutex;
+ pthread_mutex_t update_status_mutex;
+ volatile int last_caller_result;
+ volatile int last_receptor_result;
+ volatile int last_mon_result;
} SPIDER_TABLE_MON_LIST;
-typedef struct st_spider_copy_table_conn
-{
- SPIDER_SHARE *share;
- int link_idx;
- SPIDER_CONN *conn;
- spider_db_copy_table *copy_table;
- ha_spider *spider;
- int need_mon;
+typedef struct st_spider_copy_table_conn {
+ SPIDER_SHARE *share;
+ int link_idx;
+ SPIDER_CONN *conn;
+ spider_db_copy_table *copy_table;
+ ha_spider *spider;
+ int need_mon;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- int bg_error_num;
+ int bg_error_num;
#endif
- st_spider_copy_table_conn *next;
+ st_spider_copy_table_conn *next;
} SPIDER_COPY_TABLE_CONN;
-typedef struct st_spider_copy_tables
-{
- SPIDER_TRX *trx;
- char *spider_db_name;
- int spider_db_name_length;
- char *spider_table_name;
- int spider_table_name_length;
- char *spider_real_table_name;
- int spider_real_table_name_length;
- TABLE_LIST spider_table_list;
- CHARSET_INFO *access_charset;
-
- SPIDER_COPY_TABLE_CONN *table_conn[2];
- bool use_auto_mode[2];
- int link_idx_count[2];
- int *link_idxs[2];
-
- int bulk_insert_interval;
- longlong bulk_insert_rows;
- int use_table_charset;
- int use_transaction;
+typedef struct st_spider_copy_tables {
+ SPIDER_TRX *trx;
+ char *spider_db_name;
+ int spider_db_name_length;
+ char *spider_table_name;
+ int spider_table_name_length;
+ char *spider_real_table_name;
+ int spider_real_table_name_length;
+ TABLE_LIST spider_table_list;
+ CHARSET_INFO *access_charset;
+
+ SPIDER_COPY_TABLE_CONN *table_conn[2];
+ bool use_auto_mode[2];
+ int link_idx_count[2];
+ int *link_idxs[2];
+
+ int bulk_insert_interval;
+ longlong bulk_insert_rows;
+ int use_table_charset;
+ int use_transaction;
#ifndef WITHOUT_SPIDER_BG_SEARCH
- int bg_mode;
+ int bg_mode;
#endif
- char *database;
+ char *database;
- int database_length;
+ int database_length;
} SPIDER_COPY_TABLES;
-class SPIDER_SORT
-{
-public:
+class SPIDER_SORT {
+ public:
ulong sort;
};
-typedef struct st_spider_trx_ha
-{
- char *table_name;
- uint table_name_length;
- SPIDER_TRX *trx;
- SPIDER_SHARE *share;
- uint link_count;
- uint link_bitmap_size;
- uint *conn_link_idx;
- uchar *conn_can_fo;
- bool wait_for_reusing;
+typedef struct st_spider_trx_ha {
+ char *table_name;
+ uint table_name_length;
+ SPIDER_TRX *trx;
+ SPIDER_SHARE *share;
+ uint link_count;
+ uint link_bitmap_size;
+ uint *conn_link_idx;
+ uchar *conn_can_fo;
+ bool wait_for_reusing;
} SPIDER_TRX_HA;
#ifdef HA_CAN_BULK_ACCESS
-typedef struct st_spider_bulk_access_link
-{
- ha_spider *spider;
- uint sequence_num;
- bool used;
- bool called;
- MEM_ROOT mem_root;
+typedef struct st_spider_bulk_access_link {
+ ha_spider *spider;
+ uint sequence_num;
+ bool used;
+ bool called;
+ MEM_ROOT mem_root;
st_spider_bulk_access_link *next;
} SPIDER_BULK_ACCESS_LINK;
#endif
#define SPIDER_INT_HLD_TGT_SIZE 100
-typedef struct st_spider_int_hld
-{
+typedef struct st_spider_int_hld {
uint tgt_num;
int tgt[SPIDER_INT_HLD_TGT_SIZE];
st_spider_int_hld *next;
} SPIDER_INT_HLD;
-typedef struct st_spider_item_hld
-{
- uint tgt_num;
- Item *item;
+typedef struct st_spider_item_hld {
+ uint tgt_num;
+ Item *item;
#ifdef SPIDER_ITEM_STRING_WITHOUT_SET_STR_WITH_COPY_AND_THDPTR
- bool init_mem_root;
- MEM_ROOT mem_root;
+ bool init_mem_root;
+ MEM_ROOT mem_root;
#endif
st_spider_item_hld *next;
} SPIDER_ITEM_HLD;
-char *spider_create_string(
- const char *str,
- uint length
-);
-
+char *spider_create_string(const char *str, uint length);
typedef struct st_spider_ip_port_conn {
- char *key;
- size_t key_len;
+ char *key;
+ size_t key_len;
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
my_hash_value_type key_hash_value;
#endif
- char *remote_ip_str;
- long remote_port;
- ulong ip_port_count;
- volatile ulong waiting_count;
- pthread_mutex_t mutex;
- pthread_cond_t cond;
- ulonglong conn_id; /* each conn has it's own conn_id */
+ char *remote_ip_str;
+ long remote_port;
+ ulong ip_port_count;
+ volatile ulong waiting_count;
+ pthread_mutex_t mutex;
+ pthread_cond_t cond;
+ ulonglong conn_id; /* each conn has it's own conn_id */
} SPIDER_IP_PORT_CONN;
diff --git a/storage/spider/spd_init_query.h b/storage/spider/spd_init_query.h
index ba982590766..c63d2f39b40 100644
--- a/storage/spider/spd_init_query.h
+++ b/storage/spider/spd_init_query.h
@@ -20,843 +20,829 @@
*/
static LEX_STRING spider_init_queries[] = {
- {C_STRING_WITH_LEN(
- "create table if not exists mysql.spider_xa("
- " format_id int not null default 0,"
- " gtrid_length int not null default 0,"
- " bqual_length int not null default 0,"
- " data char(128) charset binary not null default '',"
- " status char(8) not null default '',"
- " primary key (data, format_id, gtrid_length),"
- " key idx1 (status)"
- ") engine=MyISAM default charset=utf8 collate=utf8_bin"
- )},
- {C_STRING_WITH_LEN(
- "create table if not exists mysql.spider_xa_member("
- " format_id int not null default 0,"
- " gtrid_length int not null default 0,"
- " bqual_length int not null default 0,"
- " data char(128) charset binary not null default '',"
- " scheme char(64) not null default '',"
- " host char(64) not null default '',"
- " port char(5) not null default '',"
- " socket text not null,"
- " username char(64) not null default '',"
- " password char(64) not null default '',"
- " ssl_ca text,"
- " ssl_capath text,"
- " ssl_cert text,"
- " ssl_cipher char(64) default null,"
- " ssl_key text,"
- " ssl_verify_server_cert tinyint not null default 0,"
- " default_file text,"
- " default_group char(64) default null,"
- " dsn char(64) default null,"
- " filedsn text default null,"
- " driver char(64) default null,"
- " key idx1 (data, format_id, gtrid_length, host)"
- ") engine=MyISAM default charset=utf8 collate=utf8_bin"
- )},
- {C_STRING_WITH_LEN(
- "create table if not exists mysql.spider_xa_failed_log("
- " format_id int not null default 0,"
- " gtrid_length int not null default 0,"
- " bqual_length int not null default 0,"
- " data char(128) charset binary not null default '',"
- " scheme char(64) not null default '',"
- " host char(64) not null default '',"
- " port char(5) not null default '',"
- " socket text not null,"
- " username char(64) not null default '',"
- " password char(64) not null default '',"
- " ssl_ca text,"
- " ssl_capath text,"
- " ssl_cert text,"
- " ssl_cipher char(64) default null,"
- " ssl_key text,"
- " ssl_verify_server_cert tinyint not null default 0,"
- " default_file text,"
- " default_group char(64) default null,"
- " dsn char(64) default null,"
- " filedsn text default null,"
- " driver char(64) default null,"
- " thread_id int default null,"
- " status char(8) not null default '',"
- " failed_time timestamp not null default current_timestamp,"
- " key idx1 (data, format_id, gtrid_length, host)"
- ") engine=MyISAM default charset=utf8 collate=utf8_bin"
- )},
- {C_STRING_WITH_LEN(
- "create table if not exists mysql.spider_tables("
- " db_name char(64) not null default '',"
- " table_name char(199) not null default '',"
- " link_id int not null default 0,"
- " priority bigint not null default 0,"
- " server char(64) default null,"
- " scheme char(64) default null,"
- " host char(64) default null,"
- " port char(5) default null,"
- " socket text,"
- " username char(64) default null,"
- " password char(64) default null,"
- " ssl_ca text,"
- " ssl_capath text,"
- " ssl_cert text,"
- " ssl_cipher char(64) default null,"
- " ssl_key text,"
- " ssl_verify_server_cert tinyint not null default 0,"
- " monitoring_binlog_pos_at_failing tinyint not null default 0,"
- " default_file text,"
- " default_group char(64) default null,"
- " dsn char(64) default null,"
- " filedsn text default null,"
- " driver char(64) default null,"
- " tgt_db_name char(64) default null,"
- " tgt_table_name char(64) default null,"
- " link_status tinyint not null default 1,"
- " block_status tinyint not null default 0,"
- " static_link_id char(64) default null,"
- " primary key (db_name, table_name, link_id),"
- " key idx1 (priority),"
- " unique key uidx1 (db_name, table_name, static_link_id)"
- ") engine=MyISAM default charset=utf8 collate=utf8_bin"
- )},
- {C_STRING_WITH_LEN(
- "create table if not exists mysql.spider_link_mon_servers("
- " db_name char(64) not null default '',"
- " table_name char(199) not null default '',"
- " link_id char(64) not null default '',"
- " sid int unsigned not null default 0,"
- " server char(64) default null,"
- " scheme char(64) default null,"
- " host char(64) default null,"
- " port char(5) default null,"
- " socket text,"
- " username char(64) default null,"
- " password char(64) default null,"
- " ssl_ca text,"
- " ssl_capath text,"
- " ssl_cert text,"
- " ssl_cipher char(64) default null,"
- " ssl_key text,"
- " ssl_verify_server_cert tinyint not null default 0,"
- " default_file text,"
- " default_group char(64) default null,"
- " dsn char(64) default null,"
- " filedsn text default null,"
- " driver char(64) default null,"
- " primary key (db_name, table_name, link_id, sid)"
- ") engine=MyISAM default charset=utf8 collate=utf8_bin"
- )},
- {C_STRING_WITH_LEN(
- "create table if not exists mysql.spider_link_failed_log("
- " db_name char(64) not null default '',"
- " table_name char(199) not null default '',"
- " link_id char(64) not null default '',"
- " failed_time timestamp not null default current_timestamp"
- ") engine=MyISAM default charset=utf8 collate=utf8_bin"
- )},
- {C_STRING_WITH_LEN(
- "create table if not exists mysql.spider_table_position_for_recovery("
- " db_name char(64) not null default '',"
- " table_name char(199) not null default '',"
- " failed_link_id int not null default 0,"
- " source_link_id int not null default 0,"
- " file text,"
- " position text,"
- " gtid text,"
- " primary key (db_name, table_name, failed_link_id, source_link_id)"
- ") engine=MyISAM default charset=utf8 collate=utf8_bin"
- )},
- {C_STRING_WITH_LEN(
- "create table if not exists mysql.spider_table_sts("
- " db_name char(64) not null default '',"
- " table_name char(199) not null default '',"
- " data_file_length bigint unsigned not null default 0,"
- " max_data_file_length bigint unsigned not null default 0,"
- " index_file_length bigint unsigned not null default 0,"
- " records bigint unsigned not null default 0,"
- " mean_rec_length bigint unsigned not null default 0,"
- " check_time datetime not null default '0000-00-00 00:00:00',"
- " create_time datetime not null default '0000-00-00 00:00:00',"
- " update_time datetime not null default '0000-00-00 00:00:00',"
- " checksum bigint unsigned default null,"
- " primary key (db_name, table_name)"
- ") engine=MyISAM default charset=utf8 collate=utf8_bin"
- )},
- {C_STRING_WITH_LEN(
- "create table if not exists mysql.spider_table_crd("
- " db_name char(64) not null default '',"
- " table_name char(199) not null default '',"
- " key_seq int unsigned not null default 0,"
- " cardinality bigint not null default 0,"
- " primary key (db_name, table_name, key_seq)"
- ") engine=MyISAM default charset=utf8 collate=utf8_bin"
- )},
-/*
- If tables already exist and their definition differ
- from the latest ones, we fix them here.
-*/
- {C_STRING_WITH_LEN(
- "drop procedure if exists mysql.spider_fix_one_table"
- )},
- {C_STRING_WITH_LEN(
- "drop procedure if exists mysql.spider_fix_system_tables"
- )},
- {C_STRING_WITH_LEN(
- "create procedure mysql.spider_fix_one_table"
- " (tab_name char(255) charset utf8 collate utf8_bin,"
- " test_col_name char(255) charset utf8 collate utf8_bin,"
- " _sql text charset utf8 collate utf8_bin)"
- "begin"
- " set @col_exists := 0;"
- " select 1 into @col_exists from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = tab_name"
- " AND COLUMN_NAME = test_col_name;"
- " if @col_exists = 0 then"
- " select @stmt := _sql;"
- " prepare sp_stmt1 from @stmt;"
- " execute sp_stmt1;"
- " end if;"
- "end;"
- )},
- {C_STRING_WITH_LEN(
- "create procedure mysql.spider_fix_system_tables()"
- "begin"
- " select substring_index(substring_index(version(), '-', 2), '-', -1)"
- " into @server_name;"
- " if @server_name regexp '^[0-9]+$' then"
- " select substring_index(substring_index(version(), '-', 3), '-', -1)"
- " into @server_name;"
- " end if;"
- " select substring_index(version(), '.', 1)"
- " into @server_major_version;"
- " select substring_index(substring_index(version(), '.', 2), '.', -1)"
- " into @server_minor_version;"
-/*
- Fix for 0.5
-*/
- " call mysql.spider_fix_one_table('spider_tables', 'server',"
- " 'alter table mysql.spider_tables"
- " add server char(64) default null,"
- " add scheme char(64) default null,"
- " add host char(64) default null,"
- " add port char(5) default null,"
- " add socket char(64) default null,"
- " add username char(64) default null,"
- " add password char(64) default null,"
- " add tgt_db_name char(64) default null,"
- " add tgt_table_name char(64) default null');"
-/*
- Fix for version 0.17
-*/
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_xa'"
- " AND COLUMN_NAME = 'data';"
- " if @col_type != 'binary(128)' then"
- " alter table mysql.spider_xa"
- " modify data binary(128) not null default '';"
- " end if;"
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_xa_member'"
- " AND COLUMN_NAME = 'data';"
- " if @col_type != 'binary(128)' then"
- " alter table mysql.spider_xa_member"
- " modify data binary(128) not null default '';"
- " end if;"
-/*
- Fix for version 2.7
-*/
- " call mysql.spider_fix_one_table('spider_tables', 'link_id',"
- " 'alter table mysql.spider_tables"
- " add column link_id int not null default 0 after table_name,"
- " drop primary key,"
- " add primary key (db_name, table_name, link_id)');"
-/*
- Fix for version 2.8
-*/
- " call mysql.spider_fix_one_table('spider_tables', 'link_status',"
- " 'alter table mysql.spider_tables"
- " add column link_status tinyint not null default 1');"
-/*
- Fix for version 2.10
-*/
- " call mysql.spider_fix_one_table('spider_xa_member', 'ssl_ca',"
- " 'alter table mysql.spider_xa_member"
- " add column ssl_ca char(64) default null after password,"
- " add column ssl_capath char(64) default null after ssl_ca,"
- " add column ssl_cert char(64) default null after ssl_capath,"
- " add column ssl_cipher char(64) default null after ssl_cert,"
- " add column ssl_key char(64) default null after ssl_cipher,"
- " add column ssl_verify_server_cert tinyint not null default 0"
- " after ssl_key,"
- " add column default_file char(64) default null"
- " after ssl_verify_server_cert,"
- " add column default_group char(64) default null after default_file');"
- " call mysql.spider_fix_one_table('spider_tables', 'ssl_ca',"
- " 'alter table mysql.spider_tables"
- " add column ssl_ca char(64) default null after password,"
- " add column ssl_capath char(64) default null after ssl_ca,"
- " add column ssl_cert char(64) default null after ssl_capath,"
- " add column ssl_cipher char(64) default null after ssl_cert,"
- " add column ssl_key char(64) default null after ssl_cipher,"
- " add column ssl_verify_server_cert tinyint not null default 0"
- " after ssl_key,"
- " add column default_file char(64) default null"
- " after ssl_verify_server_cert,"
- " add column default_group char(64) default null after default_file');"
- " call mysql.spider_fix_one_table('spider_link_mon_servers', 'ssl_ca',"
- " 'alter table mysql.spider_link_mon_servers"
- " add column ssl_ca char(64) default null after password,"
- " add column ssl_capath char(64) default null after ssl_ca,"
- " add column ssl_cert char(64) default null after ssl_capath,"
- " add column ssl_cipher char(64) default null after ssl_cert,"
- " add column ssl_key char(64) default null after ssl_cipher,"
- " add column ssl_verify_server_cert tinyint not null default 0"
- " after ssl_key,"
- " add column default_file char(64) default null"
- " after ssl_verify_server_cert,"
- " add column default_group char(64) default null after default_file');"
-/*
- Fix for version 2.28
-*/
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_link_mon_servers'"
- " AND COLUMN_NAME = 'sid';"
- " if @col_type != 'int(10) unsigned' then"
- " alter table mysql.spider_link_mon_servers"
- " modify sid int unsigned not null default 0;"
- " end if;"
-/*
- Fix for version 3.1
-*/
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_xa_member'"
- " AND COLUMN_NAME = 'socket';"
- " if @col_type = 'char(64)' then"
- " alter table mysql.spider_xa_member"
- " drop primary key,"
- " add index idx1 (data, format_id, gtrid_length, host),"
- " modify socket text not null,"
- " modify ssl_ca text,"
- " modify ssl_capath text,"
- " modify ssl_cert text,"
- " modify ssl_key text,"
- " modify default_file text;"
- " end if;"
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_tables'"
- " AND COLUMN_NAME = 'socket';"
- " if @col_type = 'char(64)' then"
- " alter table mysql.spider_tables"
- " modify socket text,"
- " modify ssl_ca text,"
- " modify ssl_capath text,"
- " modify ssl_cert text,"
- " modify ssl_key text,"
- " modify default_file text;"
- " end if;"
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_link_mon_servers'"
- " AND COLUMN_NAME = 'socket';"
- " if @col_type = 'char(64)' then"
- " alter table mysql.spider_link_mon_servers"
- " modify socket text,"
- " modify ssl_ca text,"
- " modify ssl_capath text,"
- " modify ssl_cert text,"
- " modify ssl_key text,"
- " modify default_file text;"
- " end if;"
-/*
- Fix for version 3.3.0
-*/
- " call mysql.spider_fix_one_table('spider_tables',"
- " 'monitoring_binlog_pos_at_failing',"
- " 'alter table mysql.spider_tables"
- " add monitoring_binlog_pos_at_failing tinyint not null default 0"
- " after ssl_verify_server_cert');"
-/*
- Fix for version 3.3.6
-*/
- " call mysql.spider_fix_one_table('spider_tables', 'block_status',"
- " 'alter table mysql.spider_tables"
- " add column block_status tinyint not null default 0"
- " after link_status');"
- " call mysql.spider_fix_one_table('spider_tables', 'static_link_id',"
- " 'alter table mysql.spider_tables"
- " add column static_link_id char(64) default null after block_status,"
- " add unique index uidx1 (db_name, table_name, static_link_id)');"
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_link_mon_servers'"
- " AND COLUMN_NAME = 'link_id';"
- " if @col_type != 'char(64)' then"
- " alter table mysql.spider_link_mon_servers"
- " modify link_id char(64) not null default '';"
- " end if;"
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_link_failed_log'"
- " AND COLUMN_NAME = 'link_id';"
- " if @col_type != 'char(64)' then"
- " alter table mysql.spider_link_failed_log"
- " modify link_id char(64) not null default '';"
- " end if;"
-/*
- Fix for version 3.3.10
-*/
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_tables'"
- " AND COLUMN_NAME = 'table_name';"
- " if @col_type != 'char(199)' then"
- " alter table mysql.spider_tables"
- " modify table_name char(199) not null default '';"
- " end if;"
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_link_mon_servers'"
- " AND COLUMN_NAME = 'table_name';"
- " if @col_type != 'char(199)' then"
- " alter table mysql.spider_link_mon_servers"
- " modify table_name char(199) not null default '';"
- " end if;"
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_link_failed_log'"
- " AND COLUMN_NAME = 'table_name';"
- " if @col_type != 'char(199)' then"
- " alter table mysql.spider_link_failed_log"
- " modify table_name char(199) not null default '';"
- " end if;"
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_table_position_for_recovery'"
- " AND COLUMN_NAME = 'table_name';"
- " if @col_type != 'char(199)' then"
- " alter table mysql.spider_table_position_for_recovery"
- " modify table_name char(199) not null default '';"
- " end if;"
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_table_sts'"
- " AND COLUMN_NAME = 'table_name';"
- " if @col_type != 'char(199)' then"
- " alter table mysql.spider_table_sts"
- " modify table_name char(199) not null default '';"
- " end if;"
- " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_table_crd'"
- " AND COLUMN_NAME = 'table_name';"
- " if @col_type != 'char(199)' then"
- " alter table mysql.spider_table_crd"
- " modify table_name char(199) not null default '';"
- " end if;"
-/*
- Fix for version 3.3.15
-*/
- " call mysql.spider_fix_one_table('spider_table_sts', 'checksum',"
- " 'alter table mysql.spider_table_sts"
- " add column checksum bigint unsigned default null after update_time');"
-/*
- Fix for MariaDB 10.4: Crash-Safe system tables
-*/
- " if @server_name = 'MariaDB' and"
- " ("
- " @server_major_version > 10 or"
- " ("
- " @server_major_version = 10 and"
- " @server_minor_version >= 4"
- " )"
- " )"
- " then"
- " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_link_failed_log';"
- " if @engine_name != 'Aria' then"
- " alter table mysql.spider_link_failed_log"
- " engine=Aria transactional=1;"
- " end if;"
- " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_link_mon_servers';"
- " if @engine_name != 'Aria' then"
- " alter table mysql.spider_link_mon_servers"
- " engine=Aria transactional=1;"
- " end if;"
- " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_table_crd';"
- " if @engine_name != 'Aria' then"
- " alter table mysql.spider_table_crd"
- " engine=Aria transactional=1;"
- " end if;"
- " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_table_position_for_recovery';"
- " if @engine_name != 'Aria' then"
- " alter table mysql.spider_table_position_for_recovery"
- " engine=Aria transactional=1;"
- " end if;"
- " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_table_sts';"
- " if @engine_name != 'Aria' then"
- " alter table mysql.spider_table_sts"
- " engine=Aria transactional=1;"
- " end if;"
- " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_tables';"
- " if @engine_name != 'Aria' then"
- " alter table mysql.spider_tables"
- " engine=Aria transactional=1;"
- " end if;"
- " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_xa';"
- " if @engine_name != 'Aria' then"
- " alter table mysql.spider_xa"
- " engine=Aria transactional=1;"
- " end if;"
- " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_xa_failed_log';"
- " if @engine_name != 'Aria' then"
- " alter table mysql.spider_xa_failed_log"
- " engine=Aria transactional=1;"
- " end if;"
- " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
- " where TABLE_SCHEMA = 'mysql'"
- " AND TABLE_NAME = 'spider_xa_member';"
- " if @engine_name != 'Aria' then"
- " alter table mysql.spider_xa_member"
- " engine=Aria transactional=1;"
- " end if;"
- " end if;"
- " if @server_name = 'MariaDB' and"
- " ("
- " @server_major_version > 10 or"
- " ("
- " @server_major_version = 10 and"
- " @server_minor_version >= 8"
- " )"
- " )"
- " then"
- " /* table for ddl pushdown */"
- " create table if not exists mysql.spider_rewrite_tables("
- " table_id bigint unsigned not null auto_increment,"
- " db_name char(64) not null default '',"
- " table_name char(64) not null default '',"
- " primary key (table_id),"
- " unique uk1(db_name, table_name)"
- " ) engine=Aria transactional=1 default charset=utf8 collate=utf8_bin;"
- " create table if not exists mysql.spider_rewrite_table_tables("
- " table_id bigint unsigned not null,"
- " partition_id bigint unsigned not null auto_increment,"
- " partition_method varchar(18) default '',"
- " partition_expression varchar(64) default '',"
- " subpartition_method varchar(12) default '',"
- " subpartition_expression varchar(64) default '',"
- " connection_str text not null default '',"
- " comment_str text not null default '',"
- " primary key (table_id, partition_id),"
- " unique uk1(table_id, partition_method, partition_expression,"
- " subpartition_method, subpartition_expression)"
- " ) engine=Aria transactional=1 default charset=utf8 collate=utf8_bin;"
- " create table if not exists mysql.spider_rewrite_table_partitions("
- " table_id bigint unsigned not null,"
- " partition_id bigint unsigned not null,"
- " partition_ordinal_position bigint unsigned not null auto_increment,"
- " partition_name varchar(64) not null default '',"
- " partition_description varchar(64) not null default '',"
- " connection_str text not null default '',"
- " comment_str text not null default '',"
- " primary key (table_id, partition_id, partition_ordinal_position),"
- " unique key uk1 (table_id, partition_id, partition_name)"
- " ) engine=Aria transactional=1 default charset=utf8 collate=utf8_bin;"
- " create table if not exists mysql.spider_rewrite_table_subpartitions("
- " table_id bigint unsigned not null,"
- " partition_id bigint unsigned not null,"
- " partition_ordinal_position bigint unsigned not null,"
- " subpartition_ordinal_position bigint unsigned not null"
- " auto_increment,"
- " subpartition_name varchar(64) not null default '',"
- " subpartition_description varchar(64) not null default '',"
- " connection_str text not null default '',"
- " comment_str text not null default '',"
- " primary key (table_id, partition_id, partition_ordinal_position,"
- " subpartition_ordinal_position),"
- " unique key uk1 (table_id, partition_id, partition_ordinal_position,"
- " subpartition_name)"
- " ) engine=Aria transactional=1 default charset=utf8 collate=utf8_bin;"
- " create table if not exists mysql.spider_rewritten_tables("
- " db_name char(64) not null,"
- " table_name char(64) not null,"
- " table_id bigint unsigned not null,"
- " partition_id bigint unsigned not null,"
- " primary key (db_name, table_name, table_id, partition_id)"
- " ) engine=Aria transactional=1 default charset=utf8 collate=utf8_bin;"
- " end if;"
-/*
- Fix for version 3.4
-*/
- " call mysql.spider_fix_one_table('spider_link_mon_servers', 'dsn',"
- " 'alter table mysql.spider_link_mon_servers"
- " add column dsn char(64) default null after default_group');"
- " call mysql.spider_fix_one_table('spider_tables', 'dsn',"
- " 'alter table mysql.spider_tables"
- " add column dsn char(64) default null after default_group');"
- " call mysql.spider_fix_one_table('spider_xa_failed_log', 'dsn',"
- " 'alter table mysql.spider_xa_failed_log"
- " add column dsn char(64) default null after default_group');"
- " call mysql.spider_fix_one_table('spider_xa_member', 'dsn',"
- " 'alter table mysql.spider_xa_member"
- " add column dsn char(64) default null after default_group');"
- " call mysql.spider_fix_one_table('spider_link_mon_servers', 'filedsn',"
- " 'alter table mysql.spider_link_mon_servers"
- " add column filedsn text default null after dsn');"
- " call mysql.spider_fix_one_table('spider_tables', 'filedsn',"
- " 'alter table mysql.spider_tables"
- " add column filedsn text default null after dsn');"
- " call mysql.spider_fix_one_table('spider_xa_failed_log', 'filedsn',"
- " 'alter table mysql.spider_xa_failed_log"
- " add column filedsn text default null after dsn');"
- " call mysql.spider_fix_one_table('spider_xa_member', 'filedsn',"
- " 'alter table mysql.spider_xa_member"
- " add column filedsn text default null after dsn');"
- " call mysql.spider_fix_one_table('spider_link_mon_servers', 'driver',"
- " 'alter table mysql.spider_link_mon_servers"
- " add column driver char(64) default null after filedsn');"
- " call mysql.spider_fix_one_table('spider_tables', 'driver',"
- " 'alter table mysql.spider_tables"
- " add column driver char(64) default null after filedsn');"
- " call mysql.spider_fix_one_table('spider_xa_failed_log', 'driver',"
- " 'alter table mysql.spider_xa_failed_log"
- " add column driver char(64) default null after filedsn');"
- " call mysql.spider_fix_one_table('spider_xa_member', 'driver',"
- " 'alter table mysql.spider_xa_member"
- " add column driver char(64) default null after filedsn');"
- "end;"
- )},
- {C_STRING_WITH_LEN(
- "call mysql.spider_fix_system_tables"
- )},
- {C_STRING_WITH_LEN(
- "drop procedure mysql.spider_fix_one_table"
- )},
- {C_STRING_WITH_LEN(
- "drop procedure mysql.spider_fix_system_tables"
- )},
-/*
- Install a plugin and UDFs
-*/
- {C_STRING_WITH_LEN(
- "drop procedure if exists mysql.spider_plugin_installer"
- )},
- {C_STRING_WITH_LEN(
- "create procedure mysql.spider_plugin_installer()"
- "begin"
- " set @win_plugin := IF(@@version_compile_os like 'Win%', 1, 0);"
-/*
- Install spider plugin
-*/
-/*
- " set @have_spider_i_s_plugin := 0;"
- " select @have_spider_i_s_plugin := 1 from INFORMATION_SCHEMA.plugins"
- " where PLUGIN_NAME = 'SPIDER';"
- " set @have_spider_plugin := 0;"
- " select @have_spider_plugin := 1 from mysql.plugin"
- " where name = 'spider';"
- " if @have_spider_i_s_plugin = 0 then"
- " if @have_spider_plugin = 1 then"
- " / *"
- " spider plugin is present in mysql.plugin but not in"
- " information_schema.plugins. Remove spider plugin entry"
- " in mysql.plugin first."
- " * /"
- " delete from mysql.plugin where name = 'spider';"
- " end if;"
- " if @win_plugin = 0 then "
- " install plugin spider soname 'ha_spider.so';"
- " else"
- " install plugin spider soname 'ha_spider.dll';"
- " end if;"
- " end if;"
-*/
-/*
- Install spider_alloc_mem plugin
-*/
- " set @have_spider_i_s_alloc_mem_plugin := 0;"
- " select @have_spider_i_s_alloc_mem_plugin := 1"
- " from INFORMATION_SCHEMA.plugins"
- " where PLUGIN_NAME = 'SPIDER_ALLOC_MEM';"
- " set @have_spider_alloc_mem_plugin := 0;"
- " select @have_spider_alloc_mem_plugin := 1 from mysql.plugin"
- " where name = 'spider_alloc_mem';"
- " if @have_spider_i_s_alloc_mem_plugin = 0 then"
- " if @have_spider_alloc_mem_plugin = 1 then"
- " /*"
- " spider_alloc_mem plugin is present in mysql.plugin but not in"
- " information_schema.plugins. Remove spider_alloc_mem plugin entry"
- " in mysql.plugin first."
- " */"
- " delete from mysql.plugin where name = 'spider_alloc_mem';"
- " end if;"
- " if @win_plugin = 0 then "
- " install plugin spider_alloc_mem soname 'ha_spider.so';"
- " else"
- " install plugin spider_alloc_mem soname 'ha_spider.dll';"
- " end if;"
- " end if;"
-/*
- Install spider_wrapper_protocols plugin
-*/
- " set @have_spider_i_s_wrapper_protocols_plugin := 0;"
- " select @have_spider_i_s_wrapper_protocols_plugin := 1"
- " from INFORMATION_SCHEMA.plugins"
- " where PLUGIN_NAME = 'SPIDER_WRAPPER_PROTOCOLS';"
- " set @have_spider_wrapper_protocols_plugin := 0;"
- " select @have_spider_wrapper_protocols_plugin := 1 from mysql.plugin"
- " where name = 'spider_wrapper_protocols';"
- " if @have_spider_i_s_wrapper_protocols_plugin = 0 then"
- " if @have_spider_wrapper_protocols_plugin = 1 then"
- " /*"
- " spider_wrapper_protocols plugin is present in mysql.plugin but not in"
- " information_schema.plugins. Remove spider_wrapper_protocols plugin entry"
- " in mysql.plugin first."
- " */"
- " delete from mysql.plugin where name = 'spider_wrapper_protocols';"
- " end if;"
- " if @win_plugin = 0 then "
- " install plugin spider_wrapper_protocols soname 'ha_spider.so';"
- " else"
- " install plugin spider_wrapper_protocols soname 'ha_spider.dll';"
- " end if;"
- " end if;"
- " set @have_spider_direct_sql_udf := 0;"
- " select @have_spider_direct_sql_udf := 1 from mysql.func"
- " where name = 'spider_direct_sql';"
- " if @have_spider_direct_sql_udf = 0 then"
- " if @win_plugin = 0 then "
- " create function spider_direct_sql returns int"
- " soname 'ha_spider.so';"
- " else"
- " create function spider_direct_sql returns int"
- " soname 'ha_spider.dll';"
- " end if;"
- " end if;"
- " set @have_spider_bg_direct_sql_udf := 0;"
- " select @have_spider_bg_direct_sql_udf := 1 from mysql.func"
- " where name = 'spider_bg_direct_sql';"
- " if @have_spider_bg_direct_sql_udf = 0 then"
- " if @win_plugin = 0 then "
- " create aggregate function spider_bg_direct_sql returns int"
- " soname 'ha_spider.so';"
- " else"
- " create aggregate function spider_bg_direct_sql returns int"
- " soname 'ha_spider.dll';"
- " end if;"
- " end if;"
- " set @have_spider_ping_table_udf := 0;"
- " select @have_spider_ping_table_udf := 1 from mysql.func"
- " where name = 'spider_ping_table';"
- " if @have_spider_ping_table_udf = 0 then"
- " if @win_plugin = 0 then "
- " create function spider_ping_table returns int"
- " soname 'ha_spider.so';"
- " else"
- " create function spider_ping_table returns int"
- " soname 'ha_spider.dll';"
- " end if;"
- " end if;"
- " set @have_spider_copy_tables_udf := 0;"
- " select @have_spider_copy_tables_udf := 1 from mysql.func"
- " where name = 'spider_copy_tables';"
- " if @have_spider_copy_tables_udf = 0 then"
- " if @win_plugin = 0 then "
- " create function spider_copy_tables returns int"
- " soname 'ha_spider.so';"
- " else"
- " create function spider_copy_tables returns int"
- " soname 'ha_spider.dll';"
- " end if;"
- " end if;"
- " set @have_spider_flush_table_mon_cache_udf := 0;"
- " select @have_spider_flush_table_mon_cache_udf := 1 from mysql.func"
- " where name = 'spider_flush_table_mon_cache';"
- " if @have_spider_flush_table_mon_cache_udf = 0 then"
- " if @win_plugin = 0 then "
- " create function spider_flush_table_mon_cache returns int"
- " soname 'ha_spider.so';"
- " else"
- " create function spider_flush_table_mon_cache returns int"
- " soname 'ha_spider.dll';"
- " end if;"
- " end if;"
- " if @server_name = 'MariaDB' and"
- " ("
- " @server_major_version > 10 or"
- " ("
- " @server_major_version = 10 and"
- " @server_minor_version >= 8"
- " )"
- " )"
- " then"
-/*
- Install spider_rewrite plugin
-*/
- " set @have_spider_i_s_rewrite_plugin := 0;"
- " select @have_spider_i_s_rewrite_plugin := 1"
- " from INFORMATION_SCHEMA.plugins"
- " where PLUGIN_NAME = 'SPIDER_REWRITE';"
- " set @have_spider_rewrite_plugin := 0;"
- " select @have_spider_rewrite_plugin := 1 from mysql.plugin"
- " where name = 'spider_rewrite';"
- " if @have_spider_i_s_rewrite_plugin = 0 then"
- " if @have_spider_rewrite_plugin = 1 then"
- " /*"
- " spider_rewrite plugin is present in mysql.plugin but not in"
- " information_schema.plugins. Remove spider_rewrite plugin entry"
- " in mysql.plugin first."
- " */"
- " delete from mysql.plugin where name = 'spider_rewrite';"
- " end if;"
- " if @win_plugin = 0 then "
- " install plugin spider_rewrite soname 'ha_spider.so';"
- " else"
- " install plugin spider_rewrite soname 'ha_spider.dll';"
- " end if;"
- " end if;"
- " set @have_spider_flush_rewrite_cache_udf := 0;"
- " select @have_spider_flush_rewrite_cache_udf := 1 from mysql.func"
- " where name = 'spider_flush_rewrite_cache';"
- " if @have_spider_flush_rewrite_cache_udf = 0 then"
- " if @win_plugin = 0 then "
- " create function spider_flush_rewrite_cache returns int"
- " soname 'ha_spider.so';"
- " else"
- " create function spider_flush_rewrite_cache returns int"
- " soname 'ha_spider.dll';"
- " end if;"
- " end if;"
- " end if;"
- "end;"
- )},
- {C_STRING_WITH_LEN(
- "call mysql.spider_plugin_installer"
- )},
- {C_STRING_WITH_LEN(
- "drop procedure mysql.spider_plugin_installer"
- )},
- {C_STRING_WITH_LEN("")}
-};
+ {C_STRING_WITH_LEN(
+ "create table if not exists mysql.spider_xa("
+ " format_id int not null default 0,"
+ " gtrid_length int not null default 0,"
+ " bqual_length int not null default 0,"
+ " data char(128) charset binary not null default '',"
+ " status char(8) not null default '',"
+ " primary key (data, format_id, gtrid_length),"
+ " key idx1 (status)"
+ ") engine=MyISAM default charset=utf8 collate=utf8_bin")},
+ {C_STRING_WITH_LEN(
+ "create table if not exists mysql.spider_xa_member("
+ " format_id int not null default 0,"
+ " gtrid_length int not null default 0,"
+ " bqual_length int not null default 0,"
+ " data char(128) charset binary not null default '',"
+ " scheme char(64) not null default '',"
+ " host char(64) not null default '',"
+ " port char(5) not null default '',"
+ " socket text not null,"
+ " username char(64) not null default '',"
+ " password char(64) not null default '',"
+ " ssl_ca text,"
+ " ssl_capath text,"
+ " ssl_cert text,"
+ " ssl_cipher char(64) default null,"
+ " ssl_key text,"
+ " ssl_verify_server_cert tinyint not null default 0,"
+ " default_file text,"
+ " default_group char(64) default null,"
+ " dsn char(64) default null,"
+ " filedsn text default null,"
+ " driver char(64) default null,"
+ " key idx1 (data, format_id, gtrid_length, host)"
+ ") engine=MyISAM default charset=utf8 collate=utf8_bin")},
+ {C_STRING_WITH_LEN(
+ "create table if not exists mysql.spider_xa_failed_log("
+ " format_id int not null default 0,"
+ " gtrid_length int not null default 0,"
+ " bqual_length int not null default 0,"
+ " data char(128) charset binary not null default '',"
+ " scheme char(64) not null default '',"
+ " host char(64) not null default '',"
+ " port char(5) not null default '',"
+ " socket text not null,"
+ " username char(64) not null default '',"
+ " password char(64) not null default '',"
+ " ssl_ca text,"
+ " ssl_capath text,"
+ " ssl_cert text,"
+ " ssl_cipher char(64) default null,"
+ " ssl_key text,"
+ " ssl_verify_server_cert tinyint not null default 0,"
+ " default_file text,"
+ " default_group char(64) default null,"
+ " dsn char(64) default null,"
+ " filedsn text default null,"
+ " driver char(64) default null,"
+ " thread_id int default null,"
+ " status char(8) not null default '',"
+ " failed_time timestamp not null default current_timestamp,"
+ " key idx1 (data, format_id, gtrid_length, host)"
+ ") engine=MyISAM default charset=utf8 collate=utf8_bin")},
+ {C_STRING_WITH_LEN(
+ "create table if not exists mysql.spider_tables("
+ " db_name char(64) not null default '',"
+ " table_name char(199) not null default '',"
+ " link_id int not null default 0,"
+ " priority bigint not null default 0,"
+ " server char(64) default null,"
+ " scheme char(64) default null,"
+ " host char(64) default null,"
+ " port char(5) default null,"
+ " socket text,"
+ " username char(64) default null,"
+ " password char(64) default null,"
+ " ssl_ca text,"
+ " ssl_capath text,"
+ " ssl_cert text,"
+ " ssl_cipher char(64) default null,"
+ " ssl_key text,"
+ " ssl_verify_server_cert tinyint not null default 0,"
+ " monitoring_binlog_pos_at_failing tinyint not null default 0,"
+ " default_file text,"
+ " default_group char(64) default null,"
+ " dsn char(64) default null,"
+ " filedsn text default null,"
+ " driver char(64) default null,"
+ " tgt_db_name char(64) default null,"
+ " tgt_table_name char(64) default null,"
+ " link_status tinyint not null default 1,"
+ " block_status tinyint not null default 0,"
+ " static_link_id char(64) default null,"
+ " primary key (db_name, table_name, link_id),"
+ " key idx1 (priority),"
+ " unique key uidx1 (db_name, table_name, static_link_id)"
+ ") engine=MyISAM default charset=utf8 collate=utf8_bin")},
+ {C_STRING_WITH_LEN(
+ "create table if not exists mysql.spider_link_mon_servers("
+ " db_name char(64) not null default '',"
+ " table_name char(199) not null default '',"
+ " link_id char(64) not null default '',"
+ " sid int unsigned not null default 0,"
+ " server char(64) default null,"
+ " scheme char(64) default null,"
+ " host char(64) default null,"
+ " port char(5) default null,"
+ " socket text,"
+ " username char(64) default null,"
+ " password char(64) default null,"
+ " ssl_ca text,"
+ " ssl_capath text,"
+ " ssl_cert text,"
+ " ssl_cipher char(64) default null,"
+ " ssl_key text,"
+ " ssl_verify_server_cert tinyint not null default 0,"
+ " default_file text,"
+ " default_group char(64) default null,"
+ " dsn char(64) default null,"
+ " filedsn text default null,"
+ " driver char(64) default null,"
+ " primary key (db_name, table_name, link_id, sid)"
+ ") engine=MyISAM default charset=utf8 collate=utf8_bin")},
+ {C_STRING_WITH_LEN(
+ "create table if not exists mysql.spider_link_failed_log("
+ " db_name char(64) not null default '',"
+ " table_name char(199) not null default '',"
+ " link_id char(64) not null default '',"
+ " failed_time timestamp not null default current_timestamp"
+ ") engine=MyISAM default charset=utf8 collate=utf8_bin")},
+ {C_STRING_WITH_LEN(
+ "create table if not exists mysql.spider_table_position_for_recovery("
+ " db_name char(64) not null default '',"
+ " table_name char(199) not null default '',"
+ " failed_link_id int not null default 0,"
+ " source_link_id int not null default 0,"
+ " file text,"
+ " position text,"
+ " gtid text,"
+ " primary key (db_name, table_name, failed_link_id, source_link_id)"
+ ") engine=MyISAM default charset=utf8 collate=utf8_bin")},
+ {C_STRING_WITH_LEN(
+ "create table if not exists mysql.spider_table_sts("
+ " db_name char(64) not null default '',"
+ " table_name char(199) not null default '',"
+ " data_file_length bigint unsigned not null default 0,"
+ " max_data_file_length bigint unsigned not null default 0,"
+ " index_file_length bigint unsigned not null default 0,"
+ " records bigint unsigned not null default 0,"
+ " mean_rec_length bigint unsigned not null default 0,"
+ " check_time datetime not null default '0000-00-00 00:00:00',"
+ " create_time datetime not null default '0000-00-00 00:00:00',"
+ " update_time datetime not null default '0000-00-00 00:00:00',"
+ " checksum bigint unsigned default null,"
+ " primary key (db_name, table_name)"
+ ") engine=MyISAM default charset=utf8 collate=utf8_bin")},
+ {C_STRING_WITH_LEN(
+ "create table if not exists mysql.spider_table_crd("
+ " db_name char(64) not null default '',"
+ " table_name char(199) not null default '',"
+ " key_seq int unsigned not null default 0,"
+ " cardinality bigint not null default 0,"
+ " primary key (db_name, table_name, key_seq)"
+ ") engine=MyISAM default charset=utf8 collate=utf8_bin")},
+ /*
+ If tables already exist and their definition differ
+ from the latest ones, we fix them here.
+ */
+ {C_STRING_WITH_LEN("drop procedure if exists mysql.spider_fix_one_table")},
+ {C_STRING_WITH_LEN(
+ "drop procedure if exists mysql.spider_fix_system_tables")},
+ {C_STRING_WITH_LEN(
+ "create procedure mysql.spider_fix_one_table"
+ " (tab_name char(255) charset utf8 collate utf8_bin,"
+ " test_col_name char(255) charset utf8 collate utf8_bin,"
+ " _sql text charset utf8 collate utf8_bin)"
+ "begin"
+ " set @col_exists := 0;"
+ " select 1 into @col_exists from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = tab_name"
+ " AND COLUMN_NAME = test_col_name;"
+ " if @col_exists = 0 then"
+ " select @stmt := _sql;"
+ " prepare sp_stmt1 from @stmt;"
+ " execute sp_stmt1;"
+ " end if;"
+ "end;")},
+ {C_STRING_WITH_LEN(
+ "create procedure mysql.spider_fix_system_tables()"
+ "begin"
+ " select substring_index(substring_index(version(), '-', 2), '-', -1)"
+ " into @server_name;"
+ " if @server_name regexp '^[0-9]+$' then"
+ " select substring_index(substring_index(version(), '-', 3), '-', "
+ "-1)"
+ " into @server_name;"
+ " end if;"
+ " select substring_index(version(), '.', 1)"
+ " into @server_major_version;"
+ " select substring_index(substring_index(version(), '.', 2), '.', -1)"
+ " into @server_minor_version;"
+ /*
+ Fix for 0.5
+ */
+ " call mysql.spider_fix_one_table('spider_tables', 'server',"
+ " 'alter table mysql.spider_tables"
+ " add server char(64) default null,"
+ " add scheme char(64) default null,"
+ " add host char(64) default null,"
+ " add port char(5) default null,"
+ " add socket char(64) default null,"
+ " add username char(64) default null,"
+ " add password char(64) default null,"
+ " add tgt_db_name char(64) default null,"
+ " add tgt_table_name char(64) default null');"
+ /*
+ Fix for version 0.17
+ */
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_xa'"
+ " AND COLUMN_NAME = 'data';"
+ " if @col_type != 'binary(128)' then"
+ " alter table mysql.spider_xa"
+ " modify data binary(128) not null default '';"
+ " end if;"
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_xa_member'"
+ " AND COLUMN_NAME = 'data';"
+ " if @col_type != 'binary(128)' then"
+ " alter table mysql.spider_xa_member"
+ " modify data binary(128) not null default '';"
+ " end if;"
+ /*
+ Fix for version 2.7
+ */
+ " call mysql.spider_fix_one_table('spider_tables', 'link_id',"
+ " 'alter table mysql.spider_tables"
+ " add column link_id int not null default 0 after table_name,"
+ " drop primary key,"
+ " add primary key (db_name, table_name, link_id)');"
+ /*
+ Fix for version 2.8
+ */
+ " call mysql.spider_fix_one_table('spider_tables', 'link_status',"
+ " 'alter table mysql.spider_tables"
+ " add column link_status tinyint not null default 1');"
+ /*
+ Fix for version 2.10
+ */
+ " call mysql.spider_fix_one_table('spider_xa_member', 'ssl_ca',"
+ " 'alter table mysql.spider_xa_member"
+ " add column ssl_ca char(64) default null after password,"
+ " add column ssl_capath char(64) default null after ssl_ca,"
+ " add column ssl_cert char(64) default null after ssl_capath,"
+ " add column ssl_cipher char(64) default null after ssl_cert,"
+ " add column ssl_key char(64) default null after ssl_cipher,"
+ " add column ssl_verify_server_cert tinyint not null default 0"
+ " after ssl_key,"
+ " add column default_file char(64) default null"
+ " after ssl_verify_server_cert,"
+ " add column default_group char(64) default null after "
+ "default_file');"
+ " call mysql.spider_fix_one_table('spider_tables', 'ssl_ca',"
+ " 'alter table mysql.spider_tables"
+ " add column ssl_ca char(64) default null after password,"
+ " add column ssl_capath char(64) default null after ssl_ca,"
+ " add column ssl_cert char(64) default null after ssl_capath,"
+ " add column ssl_cipher char(64) default null after ssl_cert,"
+ " add column ssl_key char(64) default null after ssl_cipher,"
+ " add column ssl_verify_server_cert tinyint not null default 0"
+ " after ssl_key,"
+ " add column default_file char(64) default null"
+ " after ssl_verify_server_cert,"
+ " add column default_group char(64) default null after "
+ "default_file');"
+ " call mysql.spider_fix_one_table('spider_link_mon_servers', 'ssl_ca',"
+ " 'alter table mysql.spider_link_mon_servers"
+ " add column ssl_ca char(64) default null after password,"
+ " add column ssl_capath char(64) default null after ssl_ca,"
+ " add column ssl_cert char(64) default null after ssl_capath,"
+ " add column ssl_cipher char(64) default null after ssl_cert,"
+ " add column ssl_key char(64) default null after ssl_cipher,"
+ " add column ssl_verify_server_cert tinyint not null default 0"
+ " after ssl_key,"
+ " add column default_file char(64) default null"
+ " after ssl_verify_server_cert,"
+ " add column default_group char(64) default null after "
+ "default_file');"
+ /*
+ Fix for version 2.28
+ */
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_link_mon_servers'"
+ " AND COLUMN_NAME = 'sid';"
+ " if @col_type != 'int(10) unsigned' then"
+ " alter table mysql.spider_link_mon_servers"
+ " modify sid int unsigned not null default 0;"
+ " end if;"
+ /*
+ Fix for version 3.1
+ */
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_xa_member'"
+ " AND COLUMN_NAME = 'socket';"
+ " if @col_type = 'char(64)' then"
+ " alter table mysql.spider_xa_member"
+ " drop primary key,"
+ " add index idx1 (data, format_id, gtrid_length, host),"
+ " modify socket text not null,"
+ " modify ssl_ca text,"
+ " modify ssl_capath text,"
+ " modify ssl_cert text,"
+ " modify ssl_key text,"
+ " modify default_file text;"
+ " end if;"
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_tables'"
+ " AND COLUMN_NAME = 'socket';"
+ " if @col_type = 'char(64)' then"
+ " alter table mysql.spider_tables"
+ " modify socket text,"
+ " modify ssl_ca text,"
+ " modify ssl_capath text,"
+ " modify ssl_cert text,"
+ " modify ssl_key text,"
+ " modify default_file text;"
+ " end if;"
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_link_mon_servers'"
+ " AND COLUMN_NAME = 'socket';"
+ " if @col_type = 'char(64)' then"
+ " alter table mysql.spider_link_mon_servers"
+ " modify socket text,"
+ " modify ssl_ca text,"
+ " modify ssl_capath text,"
+ " modify ssl_cert text,"
+ " modify ssl_key text,"
+ " modify default_file text;"
+ " end if;"
+ /*
+ Fix for version 3.3.0
+ */
+ " call mysql.spider_fix_one_table('spider_tables',"
+ " 'monitoring_binlog_pos_at_failing',"
+ " 'alter table mysql.spider_tables"
+ " add monitoring_binlog_pos_at_failing tinyint not null default 0"
+ " after ssl_verify_server_cert');"
+ /*
+ Fix for version 3.3.6
+ */
+ " call mysql.spider_fix_one_table('spider_tables', 'block_status',"
+ " 'alter table mysql.spider_tables"
+ " add column block_status tinyint not null default 0"
+ " after link_status');"
+ " call mysql.spider_fix_one_table('spider_tables', 'static_link_id',"
+ " 'alter table mysql.spider_tables"
+ " add column static_link_id char(64) default null after "
+ "block_status,"
+ " add unique index uidx1 (db_name, table_name, static_link_id)');"
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_link_mon_servers'"
+ " AND COLUMN_NAME = 'link_id';"
+ " if @col_type != 'char(64)' then"
+ " alter table mysql.spider_link_mon_servers"
+ " modify link_id char(64) not null default '';"
+ " end if;"
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_link_failed_log'"
+ " AND COLUMN_NAME = 'link_id';"
+ " if @col_type != 'char(64)' then"
+ " alter table mysql.spider_link_failed_log"
+ " modify link_id char(64) not null default '';"
+ " end if;"
+ /*
+ Fix for version 3.3.10
+ */
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_tables'"
+ " AND COLUMN_NAME = 'table_name';"
+ " if @col_type != 'char(199)' then"
+ " alter table mysql.spider_tables"
+ " modify table_name char(199) not null default '';"
+ " end if;"
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_link_mon_servers'"
+ " AND COLUMN_NAME = 'table_name';"
+ " if @col_type != 'char(199)' then"
+ " alter table mysql.spider_link_mon_servers"
+ " modify table_name char(199) not null default '';"
+ " end if;"
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_link_failed_log'"
+ " AND COLUMN_NAME = 'table_name';"
+ " if @col_type != 'char(199)' then"
+ " alter table mysql.spider_link_failed_log"
+ " modify table_name char(199) not null default '';"
+ " end if;"
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_table_position_for_recovery'"
+ " AND COLUMN_NAME = 'table_name';"
+ " if @col_type != 'char(199)' then"
+ " alter table mysql.spider_table_position_for_recovery"
+ " modify table_name char(199) not null default '';"
+ " end if;"
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_table_sts'"
+ " AND COLUMN_NAME = 'table_name';"
+ " if @col_type != 'char(199)' then"
+ " alter table mysql.spider_table_sts"
+ " modify table_name char(199) not null default '';"
+ " end if;"
+ " select COLUMN_TYPE INTO @col_type from INFORMATION_SCHEMA.COLUMNS"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_table_crd'"
+ " AND COLUMN_NAME = 'table_name';"
+ " if @col_type != 'char(199)' then"
+ " alter table mysql.spider_table_crd"
+ " modify table_name char(199) not null default '';"
+ " end if;"
+ /*
+ Fix for version 3.3.15
+ */
+ " call mysql.spider_fix_one_table('spider_table_sts', 'checksum',"
+ " 'alter table mysql.spider_table_sts"
+ " add column checksum bigint unsigned default null after "
+ "update_time');"
+ /*
+ Fix for MariaDB 10.4: Crash-Safe system tables
+ */
+ " if @server_name = 'MariaDB' and"
+ " ("
+ " @server_major_version > 10 or"
+ " ("
+ " @server_major_version = 10 and"
+ " @server_minor_version >= 4"
+ " )"
+ " )"
+ " then"
+ " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_link_failed_log';"
+ " if @engine_name != 'Aria' then"
+ " alter table mysql.spider_link_failed_log"
+ " engine=Aria transactional=1;"
+ " end if;"
+ " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_link_mon_servers';"
+ " if @engine_name != 'Aria' then"
+ " alter table mysql.spider_link_mon_servers"
+ " engine=Aria transactional=1;"
+ " end if;"
+ " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_table_crd';"
+ " if @engine_name != 'Aria' then"
+ " alter table mysql.spider_table_crd"
+ " engine=Aria transactional=1;"
+ " end if;"
+ " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_table_position_for_recovery';"
+ " if @engine_name != 'Aria' then"
+ " alter table mysql.spider_table_position_for_recovery"
+ " engine=Aria transactional=1;"
+ " end if;"
+ " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_table_sts';"
+ " if @engine_name != 'Aria' then"
+ " alter table mysql.spider_table_sts"
+ " engine=Aria transactional=1;"
+ " end if;"
+ " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_tables';"
+ " if @engine_name != 'Aria' then"
+ " alter table mysql.spider_tables"
+ " engine=Aria transactional=1;"
+ " end if;"
+ " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_xa';"
+ " if @engine_name != 'Aria' then"
+ " alter table mysql.spider_xa"
+ " engine=Aria transactional=1;"
+ " end if;"
+ " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_xa_failed_log';"
+ " if @engine_name != 'Aria' then"
+ " alter table mysql.spider_xa_failed_log"
+ " engine=Aria transactional=1;"
+ " end if;"
+ " select ENGINE INTO @engine_name from INFORMATION_SCHEMA.TABLES"
+ " where TABLE_SCHEMA = 'mysql'"
+ " AND TABLE_NAME = 'spider_xa_member';"
+ " if @engine_name != 'Aria' then"
+ " alter table mysql.spider_xa_member"
+ " engine=Aria transactional=1;"
+ " end if;"
+ " end if;"
+ " if @server_name = 'MariaDB' and"
+ " ("
+ " @server_major_version > 10 or"
+ " ("
+ " @server_major_version = 10 and"
+ " @server_minor_version >= 8"
+ " )"
+ " )"
+ " then"
+ " /* table for ddl pushdown */"
+ " create table if not exists mysql.spider_rewrite_tables("
+ " table_id bigint unsigned not null auto_increment,"
+ " db_name char(64) not null default '',"
+ " table_name char(64) not null default '',"
+ " primary key (table_id),"
+ " unique uk1(db_name, table_name)"
+ " ) engine=Aria transactional=1 default charset=utf8 "
+ "collate=utf8_bin;"
+ " create table if not exists mysql.spider_rewrite_table_tables("
+ " table_id bigint unsigned not null,"
+ " partition_id bigint unsigned not null auto_increment,"
+ " partition_method varchar(18) default '',"
+ " partition_expression varchar(64) default '',"
+ " subpartition_method varchar(12) default '',"
+ " subpartition_expression varchar(64) default '',"
+ " connection_str text not null default '',"
+ " comment_str text not null default '',"
+ " primary key (table_id, partition_id),"
+ " unique uk1(table_id, partition_method, partition_expression,"
+ " subpartition_method, subpartition_expression)"
+ " ) engine=Aria transactional=1 default charset=utf8 "
+ "collate=utf8_bin;"
+ " create table if not exists mysql.spider_rewrite_table_partitions("
+ " table_id bigint unsigned not null,"
+ " partition_id bigint unsigned not null,"
+ " partition_ordinal_position bigint unsigned not null "
+ "auto_increment,"
+ " partition_name varchar(64) not null default '',"
+ " partition_description varchar(64) not null default '',"
+ " connection_str text not null default '',"
+ " comment_str text not null default '',"
+ " primary key (table_id, partition_id, "
+ "partition_ordinal_position),"
+ " unique key uk1 (table_id, partition_id, partition_name)"
+ " ) engine=Aria transactional=1 default charset=utf8 "
+ "collate=utf8_bin;"
+ " create table if not exists "
+ "mysql.spider_rewrite_table_subpartitions("
+ " table_id bigint unsigned not null,"
+ " partition_id bigint unsigned not null,"
+ " partition_ordinal_position bigint unsigned not null,"
+ " subpartition_ordinal_position bigint unsigned not null"
+ " auto_increment,"
+ " subpartition_name varchar(64) not null default '',"
+ " subpartition_description varchar(64) not null default '',"
+ " connection_str text not null default '',"
+ " comment_str text not null default '',"
+ " primary key (table_id, partition_id, partition_ordinal_position,"
+ " subpartition_ordinal_position),"
+ " unique key uk1 (table_id, partition_id, "
+ "partition_ordinal_position,"
+ " subpartition_name)"
+ " ) engine=Aria transactional=1 default charset=utf8 "
+ "collate=utf8_bin;"
+ " create table if not exists mysql.spider_rewritten_tables("
+ " db_name char(64) not null,"
+ " table_name char(64) not null,"
+ " table_id bigint unsigned not null,"
+ " partition_id bigint unsigned not null,"
+ " primary key (db_name, table_name, table_id, partition_id)"
+ " ) engine=Aria transactional=1 default charset=utf8 "
+ "collate=utf8_bin;"
+ " end if;"
+ /*
+ Fix for version 3.4
+ */
+ " call mysql.spider_fix_one_table('spider_link_mon_servers', 'dsn',"
+ " 'alter table mysql.spider_link_mon_servers"
+ " add column dsn char(64) default null after default_group');"
+ " call mysql.spider_fix_one_table('spider_tables', 'dsn',"
+ " 'alter table mysql.spider_tables"
+ " add column dsn char(64) default null after default_group');"
+ " call mysql.spider_fix_one_table('spider_xa_failed_log', 'dsn',"
+ " 'alter table mysql.spider_xa_failed_log"
+ " add column dsn char(64) default null after default_group');"
+ " call mysql.spider_fix_one_table('spider_xa_member', 'dsn',"
+ " 'alter table mysql.spider_xa_member"
+ " add column dsn char(64) default null after default_group');"
+ " call mysql.spider_fix_one_table('spider_link_mon_servers', "
+ "'filedsn',"
+ " 'alter table mysql.spider_link_mon_servers"
+ " add column filedsn text default null after dsn');"
+ " call mysql.spider_fix_one_table('spider_tables', 'filedsn',"
+ " 'alter table mysql.spider_tables"
+ " add column filedsn text default null after dsn');"
+ " call mysql.spider_fix_one_table('spider_xa_failed_log', 'filedsn',"
+ " 'alter table mysql.spider_xa_failed_log"
+ " add column filedsn text default null after dsn');"
+ " call mysql.spider_fix_one_table('spider_xa_member', 'filedsn',"
+ " 'alter table mysql.spider_xa_member"
+ " add column filedsn text default null after dsn');"
+ " call mysql.spider_fix_one_table('spider_link_mon_servers', 'driver',"
+ " 'alter table mysql.spider_link_mon_servers"
+ " add column driver char(64) default null after filedsn');"
+ " call mysql.spider_fix_one_table('spider_tables', 'driver',"
+ " 'alter table mysql.spider_tables"
+ " add column driver char(64) default null after filedsn');"
+ " call mysql.spider_fix_one_table('spider_xa_failed_log', 'driver',"
+ " 'alter table mysql.spider_xa_failed_log"
+ " add column driver char(64) default null after filedsn');"
+ " call mysql.spider_fix_one_table('spider_xa_member', 'driver',"
+ " 'alter table mysql.spider_xa_member"
+ " add column driver char(64) default null after filedsn');"
+ "end;")},
+ {C_STRING_WITH_LEN("call mysql.spider_fix_system_tables")},
+ {C_STRING_WITH_LEN("drop procedure mysql.spider_fix_one_table")},
+ {C_STRING_WITH_LEN("drop procedure mysql.spider_fix_system_tables")},
+ /*
+ Install a plugin and UDFs
+ */
+ {C_STRING_WITH_LEN(
+ "drop procedure if exists mysql.spider_plugin_installer")},
+ {C_STRING_WITH_LEN(
+ "create procedure mysql.spider_plugin_installer()"
+ "begin"
+ " set @win_plugin := IF(@@version_compile_os like 'Win%', 1, 0);"
+ /*
+ Install spider plugin
+ */
+ /*
+ " set @have_spider_i_s_plugin := 0;"
+ " select @have_spider_i_s_plugin := 1 from
+ INFORMATION_SCHEMA.plugins" " where PLUGIN_NAME = 'SPIDER';" " set
+ @have_spider_plugin := 0;" " select @have_spider_plugin := 1 from
+ mysql.plugin" " where name = 'spider';" " if
+ @have_spider_i_s_plugin = 0 then" " if @have_spider_plugin = 1
+ then" " / *" " spider plugin is present in mysql.plugin
+ but not in" " information_schema.plugins. Remove spider
+ plugin entry" " in mysql.plugin first." " * /" " delete
+ from mysql.plugin where name = 'spider';" " end if;" " if
+ @win_plugin = 0 then " " install plugin spider soname
+ 'ha_spider.so';" " else" " install plugin spider soname
+ 'ha_spider.dll';" " end if;" " end if;"
+ */
+ /*
+ Install spider_alloc_mem plugin
+ */
+ " set @have_spider_i_s_alloc_mem_plugin := 0;"
+ " select @have_spider_i_s_alloc_mem_plugin := 1"
+ " from INFORMATION_SCHEMA.plugins"
+ " where PLUGIN_NAME = 'SPIDER_ALLOC_MEM';"
+ " set @have_spider_alloc_mem_plugin := 0;"
+ " select @have_spider_alloc_mem_plugin := 1 from mysql.plugin"
+ " where name = 'spider_alloc_mem';"
+ " if @have_spider_i_s_alloc_mem_plugin = 0 then"
+ " if @have_spider_alloc_mem_plugin = 1 then"
+ " /*"
+ " spider_alloc_mem plugin is present in mysql.plugin but not in"
+ " information_schema.plugins. Remove spider_alloc_mem plugin "
+ "entry"
+ " in mysql.plugin first."
+ " */"
+ " delete from mysql.plugin where name = 'spider_alloc_mem';"
+ " end if;"
+ " if @win_plugin = 0 then "
+ " install plugin spider_alloc_mem soname 'ha_spider.so';"
+ " else"
+ " install plugin spider_alloc_mem soname 'ha_spider.dll';"
+ " end if;"
+ " end if;"
+ /*
+ Install spider_wrapper_protocols plugin
+ */
+ " set @have_spider_i_s_wrapper_protocols_plugin := 0;"
+ " select @have_spider_i_s_wrapper_protocols_plugin := 1"
+ " from INFORMATION_SCHEMA.plugins"
+ " where PLUGIN_NAME = 'SPIDER_WRAPPER_PROTOCOLS';"
+ " set @have_spider_wrapper_protocols_plugin := 0;"
+ " select @have_spider_wrapper_protocols_plugin := 1 from mysql.plugin"
+ " where name = 'spider_wrapper_protocols';"
+ " if @have_spider_i_s_wrapper_protocols_plugin = 0 then"
+ " if @have_spider_wrapper_protocols_plugin = 1 then"
+ " /*"
+ " spider_wrapper_protocols plugin is present in mysql.plugin "
+ "but not in"
+ " information_schema.plugins. Remove spider_wrapper_protocols "
+ "plugin entry"
+ " in mysql.plugin first."
+ " */"
+ " delete from mysql.plugin where name = "
+ "'spider_wrapper_protocols';"
+ " end if;"
+ " if @win_plugin = 0 then "
+ " install plugin spider_wrapper_protocols soname 'ha_spider.so';"
+ " else"
+ " install plugin spider_wrapper_protocols soname 'ha_spider.dll';"
+ " end if;"
+ " end if;"
+ " set @have_spider_direct_sql_udf := 0;"
+ " select @have_spider_direct_sql_udf := 1 from mysql.func"
+ " where name = 'spider_direct_sql';"
+ " if @have_spider_direct_sql_udf = 0 then"
+ " if @win_plugin = 0 then "
+ " create function spider_direct_sql returns int"
+ " soname 'ha_spider.so';"
+ " else"
+ " create function spider_direct_sql returns int"
+ " soname 'ha_spider.dll';"
+ " end if;"
+ " end if;"
+ " set @have_spider_bg_direct_sql_udf := 0;"
+ " select @have_spider_bg_direct_sql_udf := 1 from mysql.func"
+ " where name = 'spider_bg_direct_sql';"
+ " if @have_spider_bg_direct_sql_udf = 0 then"
+ " if @win_plugin = 0 then "
+ " create aggregate function spider_bg_direct_sql returns int"
+ " soname 'ha_spider.so';"
+ " else"
+ " create aggregate function spider_bg_direct_sql returns int"
+ " soname 'ha_spider.dll';"
+ " end if;"
+ " end if;"
+ " set @have_spider_ping_table_udf := 0;"
+ " select @have_spider_ping_table_udf := 1 from mysql.func"
+ " where name = 'spider_ping_table';"
+ " if @have_spider_ping_table_udf = 0 then"
+ " if @win_plugin = 0 then "
+ " create function spider_ping_table returns int"
+ " soname 'ha_spider.so';"
+ " else"
+ " create function spider_ping_table returns int"
+ " soname 'ha_spider.dll';"
+ " end if;"
+ " end if;"
+ " set @have_spider_copy_tables_udf := 0;"
+ " select @have_spider_copy_tables_udf := 1 from mysql.func"
+ " where name = 'spider_copy_tables';"
+ " if @have_spider_copy_tables_udf = 0 then"
+ " if @win_plugin = 0 then "
+ " create function spider_copy_tables returns int"
+ " soname 'ha_spider.so';"
+ " else"
+ " create function spider_copy_tables returns int"
+ " soname 'ha_spider.dll';"
+ " end if;"
+ " end if;"
+ " set @have_spider_flush_table_mon_cache_udf := 0;"
+ " select @have_spider_flush_table_mon_cache_udf := 1 from mysql.func"
+ " where name = 'spider_flush_table_mon_cache';"
+ " if @have_spider_flush_table_mon_cache_udf = 0 then"
+ " if @win_plugin = 0 then "
+ " create function spider_flush_table_mon_cache returns int"
+ " soname 'ha_spider.so';"
+ " else"
+ " create function spider_flush_table_mon_cache returns int"
+ " soname 'ha_spider.dll';"
+ " end if;"
+ " end if;"
+ " if @server_name = 'MariaDB' and"
+ " ("
+ " @server_major_version > 10 or"
+ " ("
+ " @server_major_version = 10 and"
+ " @server_minor_version >= 8"
+ " )"
+ " )"
+ " then"
+ /*
+ Install spider_rewrite plugin
+ */
+ " set @have_spider_i_s_rewrite_plugin := 0;"
+ " select @have_spider_i_s_rewrite_plugin := 1"
+ " from INFORMATION_SCHEMA.plugins"
+ " where PLUGIN_NAME = 'SPIDER_REWRITE';"
+ " set @have_spider_rewrite_plugin := 0;"
+ " select @have_spider_rewrite_plugin := 1 from mysql.plugin"
+ " where name = 'spider_rewrite';"
+ " if @have_spider_i_s_rewrite_plugin = 0 then"
+ " if @have_spider_rewrite_plugin = 1 then"
+ " /*"
+ " spider_rewrite plugin is present in mysql.plugin but not in"
+ " information_schema.plugins. Remove spider_rewrite plugin "
+ "entry"
+ " in mysql.plugin first."
+ " */"
+ " delete from mysql.plugin where name = 'spider_rewrite';"
+ " end if;"
+ " if @win_plugin = 0 then "
+ " install plugin spider_rewrite soname 'ha_spider.so';"
+ " else"
+ " install plugin spider_rewrite soname 'ha_spider.dll';"
+ " end if;"
+ " end if;"
+ " set @have_spider_flush_rewrite_cache_udf := 0;"
+ " select @have_spider_flush_rewrite_cache_udf := 1 from mysql.func"
+ " where name = 'spider_flush_rewrite_cache';"
+ " if @have_spider_flush_rewrite_cache_udf = 0 then"
+ " if @win_plugin = 0 then "
+ " create function spider_flush_rewrite_cache returns int"
+ " soname 'ha_spider.so';"
+ " else"
+ " create function spider_flush_rewrite_cache returns int"
+ " soname 'ha_spider.dll';"
+ " end if;"
+ " end if;"
+ " end if;"
+ "end;")},
+ {C_STRING_WITH_LEN("call mysql.spider_plugin_installer")},
+ {C_STRING_WITH_LEN("drop procedure mysql.spider_plugin_installer")},
+ {C_STRING_WITH_LEN("")}};
diff --git a/storage/spider/spd_malloc.h b/storage/spider/spd_malloc.h
index 9e97e039e04..714da485286 100644
--- a/storage/spider/spd_malloc.h
+++ b/storage/spider/spd_malloc.h
@@ -12,69 +12,49 @@
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 */
-
-#define spider_free(A,B,C) spider_free_mem(A,B,C)
-#define spider_malloc(A,B,C,D) \
- spider_alloc_mem(A,B,__func__,__FILE__,__LINE__,C,D)
-#define spider_bulk_malloc(A,B,C,...) \
- spider_bulk_alloc_mem(A,B,__func__,__FILE__,__LINE__,C,__VA_ARGS__)
-#define spider_current_trx \
- (current_thd && spider_hton_ptr->slot != HA_SLOT_UNDEF ? ((SPIDER_TRX *) thd_get_ha_data(current_thd, spider_hton_ptr)) : NULL)
-
-#define init_calc_mem(A) init_mem_calc(A,__func__,__FILE__,__LINE__)
-
-#define SPIDER_CALC_MEM_ID(name) name ## _id
-#define SPIDER_CALC_MEM_FUNC(name) name ## _func_name
-#define SPIDER_CALC_MEM_FILE(name) name ## _file_name
-#define SPIDER_CALC_MEM_LINE(name) name ## _line_no
-#define spider_alloc_calc_mem_init(A,B) \
- {SPIDER_CALC_MEM_ID(A) = B; SPIDER_CALC_MEM_FUNC(A) = __func__; SPIDER_CALC_MEM_FILE(A) = __FILE__; SPIDER_CALC_MEM_LINE(A) = __LINE__;}
-#define spider_alloc_calc_mem(A,B,C) \
- spider_alloc_mem_calc(A,SPIDER_CALC_MEM_ID(B),SPIDER_CALC_MEM_FUNC(B),SPIDER_CALC_MEM_FILE(B),SPIDER_CALC_MEM_LINE(B),C)
-
-void spider_merge_mem_calc(
- SPIDER_TRX *trx,
- bool force
-);
-
-void spider_free_mem_calc(
- SPIDER_TRX *trx,
- uint id,
- size_t size
-);
-
-void spider_alloc_mem_calc(
- SPIDER_TRX *trx,
- uint id,
- const char *func_name,
- const char *file_name,
- ulong line_no,
- size_t size
-);
-
-void spider_free_mem(
- SPIDER_TRX *trx,
- void *ptr,
- myf my_flags
-);
-
-void *spider_alloc_mem(
- SPIDER_TRX *trx,
- uint id,
- const char *func_name,
- const char *file_name,
- ulong line_no,
- size_t size,
- myf my_flags
-);
-
-void *spider_bulk_alloc_mem(
- SPIDER_TRX *trx,
- uint id,
- const char *func_name,
- const char *file_name,
- ulong line_no,
- myf my_flags,
- ...
-);
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
+
+#define spider_free(A, B, C) spider_free_mem(A, B, C)
+#define spider_malloc(A, B, C, D) \
+ spider_alloc_mem(A, B, __func__, __FILE__, __LINE__, C, D)
+#define spider_bulk_malloc(A, B, C, ...) \
+ spider_bulk_alloc_mem(A, B, __func__, __FILE__, __LINE__, C, __VA_ARGS__)
+#define spider_current_trx \
+ (current_thd && spider_hton_ptr->slot != HA_SLOT_UNDEF \
+ ? ((SPIDER_TRX *)thd_get_ha_data(current_thd, spider_hton_ptr)) \
+ : NULL)
+
+#define init_calc_mem(A) init_mem_calc(A, __func__, __FILE__, __LINE__)
+
+#define SPIDER_CALC_MEM_ID(name) name##_id
+#define SPIDER_CALC_MEM_FUNC(name) name##_func_name
+#define SPIDER_CALC_MEM_FILE(name) name##_file_name
+#define SPIDER_CALC_MEM_LINE(name) name##_line_no
+#define spider_alloc_calc_mem_init(A, B) \
+ { \
+ SPIDER_CALC_MEM_ID(A) = B; \
+ SPIDER_CALC_MEM_FUNC(A) = __func__; \
+ SPIDER_CALC_MEM_FILE(A) = __FILE__; \
+ SPIDER_CALC_MEM_LINE(A) = __LINE__; \
+ }
+#define spider_alloc_calc_mem(A, B, C) \
+ spider_alloc_mem_calc(A, SPIDER_CALC_MEM_ID(B), SPIDER_CALC_MEM_FUNC(B), \
+ SPIDER_CALC_MEM_FILE(B), SPIDER_CALC_MEM_LINE(B), C)
+
+void spider_merge_mem_calc(SPIDER_TRX *trx, bool force);
+
+void spider_free_mem_calc(SPIDER_TRX *trx, uint id, size_t size);
+
+void spider_alloc_mem_calc(SPIDER_TRX *trx, uint id, const char *func_name,
+ const char *file_name, ulong line_no, size_t size);
+
+void spider_free_mem(SPIDER_TRX *trx, void *ptr, myf my_flags);
+
+void *spider_alloc_mem(SPIDER_TRX *trx, uint id, const char *func_name,
+ const char *file_name, ulong line_no, size_t size,
+ myf my_flags);
+
+void *spider_bulk_alloc_mem(SPIDER_TRX *trx, uint id, const char *func_name,
+ const char *file_name, ulong line_no, myf my_flags,
+ ...);
diff --git a/storage/spider/spd_param.h b/storage/spider/spd_param.h
index c3a79cec065..5eeba1ef242 100644
--- a/storage/spider/spd_param.h
+++ b/storage/spider/spd_param.h
@@ -12,431 +12,161 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
my_bool spider_param_support_xa();
my_bool spider_param_connect_mutex();
uint spider_param_connect_error_interval();
uint spider_param_table_init_error_interval();
-int spider_param_use_table_charset(
- int use_table_charset
-);
-uint spider_param_conn_recycle_mode(
- THD *thd
-);
-uint spider_param_conn_recycle_strict(
- THD *thd
-);
-bool spider_param_sync_trx_isolation(
- THD *thd
-);
-bool spider_param_use_consistent_snapshot(
- THD *thd
-);
-bool spider_param_internal_xa(
- THD *thd
-);
-uint spider_param_internal_xa_snapshot(
- THD *thd
-);
-uint spider_param_force_commit(
- THD *thd
-);
-uint spider_param_xa_register_mode(
- THD *thd
-);
-longlong spider_param_internal_offset(
- THD *thd,
- longlong internal_offset
-);
-longlong spider_param_internal_limit(
- THD *thd,
- longlong internal_limit
-);
-longlong spider_param_split_read(
- THD *thd,
- longlong split_read
-);
-double spider_param_semi_split_read(
- THD *thd,
- double semi_split_read
-);
-longlong spider_param_semi_split_read_limit(
- THD *thd,
- longlong semi_split_read_limit
-);
-int spider_param_init_sql_alloc_size(
- THD *thd,
- int init_sql_alloc_size
-);
-int spider_param_reset_sql_alloc(
- THD *thd,
- int reset_sql_alloc
-);
+int spider_param_use_table_charset(int use_table_charset);
+uint spider_param_conn_recycle_mode(THD *thd);
+uint spider_param_conn_recycle_strict(THD *thd);
+bool spider_param_sync_trx_isolation(THD *thd);
+bool spider_param_use_consistent_snapshot(THD *thd);
+bool spider_param_internal_xa(THD *thd);
+uint spider_param_internal_xa_snapshot(THD *thd);
+uint spider_param_force_commit(THD *thd);
+uint spider_param_xa_register_mode(THD *thd);
+longlong spider_param_internal_offset(THD *thd, longlong internal_offset);
+longlong spider_param_internal_limit(THD *thd, longlong internal_limit);
+longlong spider_param_split_read(THD *thd, longlong split_read);
+double spider_param_semi_split_read(THD *thd, double semi_split_read);
+longlong spider_param_semi_split_read_limit(THD *thd,
+ longlong semi_split_read_limit);
+int spider_param_init_sql_alloc_size(THD *thd, int init_sql_alloc_size);
+int spider_param_reset_sql_alloc(THD *thd, int reset_sql_alloc);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
-longlong spider_param_hs_result_free_size(
- THD *thd,
- longlong hs_result_free_size
-);
+longlong spider_param_hs_result_free_size(THD *thd,
+ longlong hs_result_free_size);
#endif
-int spider_param_multi_split_read(
- THD *thd,
- int multi_split_read
-);
-int spider_param_max_order(
- THD *thd,
- int max_order
-);
-int spider_param_semi_trx_isolation(
- THD *thd
-);
-int spider_param_semi_table_lock(
- THD *thd,
- int semi_table_lock
-);
-int spider_param_semi_table_lock_connection(
- THD *thd,
- int semi_table_lock_connection
-);
-uint spider_param_block_size(
- THD *thd
-);
-int spider_param_selupd_lock_mode(
- THD *thd,
- int selupd_lock_mode
-);
-bool spider_param_sync_autocommit(
- THD *thd
-);
-bool spider_param_use_default_database(
- THD *thd
-);
-int spider_param_internal_sql_log_off(
- THD *thd
-);
-int spider_param_bulk_size(
- THD *thd,
- int bulk_size
-);
-int spider_param_bulk_update_mode(
- THD *thd,
- int bulk_update_mode
-);
-int spider_param_bulk_update_size(
- THD *thd,
- int bulk_update_size
-);
-int spider_param_buffer_size(
- THD *thd,
- int buffer_size
-);
-int spider_param_internal_optimize(
- THD *thd,
- int internal_optimize
-);
-int spider_param_internal_optimize_local(
- THD *thd,
- int internal_optimize_local
-);
-bool spider_param_use_flash_logs(
- THD *thd
-);
-int spider_param_use_snapshot_with_flush_tables(
- THD *thd
-);
-bool spider_param_use_all_conns_snapshot(
- THD *thd
-);
-bool spider_param_lock_exchange(
- THD *thd
-);
-bool spider_param_internal_unlock(
- THD *thd
-);
-bool spider_param_semi_trx(
- THD *thd
-);
-int spider_param_connect_timeout(
- THD *thd,
- int connect_timeout
-);
-int spider_param_net_read_timeout(
- THD *thd,
- int net_read_timeout
-);
-int spider_param_net_write_timeout(
- THD *thd,
- int net_write_timeout
-);
-int spider_param_quick_mode(
- THD *thd,
- int quick_mode
-);
-longlong spider_param_quick_page_size(
- THD *thd,
- longlong quick_page_size
-);
-longlong spider_param_quick_page_byte(
- THD *thd,
- longlong quick_page_byte
-);
-int spider_param_low_mem_read(
- THD *thd,
- int low_mem_read
-);
-int spider_param_select_column_mode(
- THD *thd,
- int select_column_mode
-);
+int spider_param_multi_split_read(THD *thd, int multi_split_read);
+int spider_param_max_order(THD *thd, int max_order);
+int spider_param_semi_trx_isolation(THD *thd);
+int spider_param_semi_table_lock(THD *thd, int semi_table_lock);
+int spider_param_semi_table_lock_connection(THD *thd,
+ int semi_table_lock_connection);
+uint spider_param_block_size(THD *thd);
+int spider_param_selupd_lock_mode(THD *thd, int selupd_lock_mode);
+bool spider_param_sync_autocommit(THD *thd);
+bool spider_param_use_default_database(THD *thd);
+int spider_param_internal_sql_log_off(THD *thd);
+int spider_param_bulk_size(THD *thd, int bulk_size);
+int spider_param_bulk_update_mode(THD *thd, int bulk_update_mode);
+int spider_param_bulk_update_size(THD *thd, int bulk_update_size);
+int spider_param_buffer_size(THD *thd, int buffer_size);
+int spider_param_internal_optimize(THD *thd, int internal_optimize);
+int spider_param_internal_optimize_local(THD *thd, int internal_optimize_local);
+bool spider_param_use_flash_logs(THD *thd);
+int spider_param_use_snapshot_with_flush_tables(THD *thd);
+bool spider_param_use_all_conns_snapshot(THD *thd);
+bool spider_param_lock_exchange(THD *thd);
+bool spider_param_internal_unlock(THD *thd);
+bool spider_param_semi_trx(THD *thd);
+int spider_param_connect_timeout(THD *thd, int connect_timeout);
+int spider_param_net_read_timeout(THD *thd, int net_read_timeout);
+int spider_param_net_write_timeout(THD *thd, int net_write_timeout);
+int spider_param_quick_mode(THD *thd, int quick_mode);
+longlong spider_param_quick_page_size(THD *thd, longlong quick_page_size);
+longlong spider_param_quick_page_byte(THD *thd, longlong quick_page_byte);
+int spider_param_low_mem_read(THD *thd, int low_mem_read);
+int spider_param_select_column_mode(THD *thd, int select_column_mode);
#ifndef WITHOUT_SPIDER_BG_SEARCH
-int spider_param_bgs_mode(
- THD *thd,
- int bgs_mode
-);
-longlong spider_param_bgs_first_read(
- THD *thd,
- longlong bgs_first_read
-);
-longlong spider_param_bgs_second_read(
- THD *thd,
- longlong bgs_second_read
-);
+int spider_param_bgs_mode(THD *thd, int bgs_mode);
+longlong spider_param_bgs_first_read(THD *thd, longlong bgs_first_read);
+longlong spider_param_bgs_second_read(THD *thd, longlong bgs_second_read);
#endif
-longlong spider_param_first_read(
- THD *thd,
- longlong first_read
-);
-longlong spider_param_second_read(
- THD *thd,
- longlong second_read
-);
-double spider_param_crd_interval(
- THD *thd,
- double crd_interval
-);
-int spider_param_crd_mode(
- THD *thd,
- int crd_mode
-);
+longlong spider_param_first_read(THD *thd, longlong first_read);
+longlong spider_param_second_read(THD *thd, longlong second_read);
+double spider_param_crd_interval(THD *thd, double crd_interval);
+int spider_param_crd_mode(THD *thd, int crd_mode);
#ifdef WITH_PARTITION_STORAGE_ENGINE
-int spider_param_crd_sync(
- THD *thd,
- int crd_sync
-);
+int spider_param_crd_sync(THD *thd, int crd_sync);
#endif
-int spider_param_crd_type(
- THD *thd,
- int crd_type
-);
-double spider_param_crd_weight(
- THD *thd,
- double crd_weight
-);
+int spider_param_crd_type(THD *thd, int crd_type);
+double spider_param_crd_weight(THD *thd, double crd_weight);
#ifndef WITHOUT_SPIDER_BG_SEARCH
-int spider_param_crd_bg_mode(
- THD *thd,
- int crd_bg_mode
-);
+int spider_param_crd_bg_mode(THD *thd, int crd_bg_mode);
#endif
-double spider_param_sts_interval(
- THD *thd,
- double sts_interval
-);
-int spider_param_sts_mode(
- THD *thd,
- int sts_mode
-);
+double spider_param_sts_interval(THD *thd, double sts_interval);
+int spider_param_sts_mode(THD *thd, int sts_mode);
#ifdef WITH_PARTITION_STORAGE_ENGINE
-int spider_param_sts_sync(
- THD *thd,
- int sts_sync
-);
+int spider_param_sts_sync(THD *thd, int sts_sync);
#endif
#ifndef WITHOUT_SPIDER_BG_SEARCH
-int spider_param_sts_bg_mode(
- THD *thd,
- int sts_bg_mode
-);
+int spider_param_sts_bg_mode(THD *thd, int sts_bg_mode);
#endif
-double spider_param_ping_interval_at_trx_start(
- THD *thd
-);
+double spider_param_ping_interval_at_trx_start(THD *thd);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
-double spider_param_hs_ping_interval(
- THD *thd
-);
+double spider_param_hs_ping_interval(THD *thd);
#endif
-int spider_param_auto_increment_mode(
- THD *thd,
- int auto_increment_mode
-);
-bool spider_param_same_server_link(
- THD *thd
-);
-bool spider_param_local_lock_table(
- THD *thd
-);
-int spider_param_use_pushdown_udf(
- THD *thd,
- int use_pushdown_udf
-);
-int spider_param_direct_dup_insert(
- THD *thd,
- int direct_dup_insert
-);
+int spider_param_auto_increment_mode(THD *thd, int auto_increment_mode);
+bool spider_param_same_server_link(THD *thd);
+bool spider_param_local_lock_table(THD *thd);
+int spider_param_use_pushdown_udf(THD *thd, int use_pushdown_udf);
+int spider_param_direct_dup_insert(THD *thd, int direct_dup_insert);
uint spider_param_udf_table_lock_mutex_count();
uint spider_param_udf_table_mon_mutex_count();
-longlong spider_param_udf_ds_bulk_insert_rows(
- THD *thd,
- longlong udf_ds_bulk_insert_rows
-);
-int spider_param_udf_ds_table_loop_mode(
- THD *thd,
- int udf_ds_table_loop_mode
-);
+longlong spider_param_udf_ds_bulk_insert_rows(THD *thd,
+ longlong udf_ds_bulk_insert_rows);
+int spider_param_udf_ds_table_loop_mode(THD *thd, int udf_ds_table_loop_mode);
char *spider_param_remote_access_charset();
int spider_param_remote_autocommit();
char *spider_param_remote_time_zone();
int spider_param_remote_sql_log_off();
int spider_param_remote_trx_isolation();
char *spider_param_remote_default_database();
-longlong spider_param_connect_retry_interval(
- THD *thd
-);
-int spider_param_connect_retry_count(
- THD *thd
-);
-char *spider_param_bka_engine(
- THD *thd,
- char *bka_engine
-);
-int spider_param_bka_mode(
- THD *thd,
- int bka_mode
-);
-int spider_param_udf_ct_bulk_insert_interval(
- int udf_ct_bulk_insert_interval
-);
-longlong spider_param_udf_ct_bulk_insert_rows(
- longlong udf_ct_bulk_insert_rows
-);
+longlong spider_param_connect_retry_interval(THD *thd);
+int spider_param_connect_retry_count(THD *thd);
+char *spider_param_bka_engine(THD *thd, char *bka_engine);
+int spider_param_bka_mode(THD *thd, int bka_mode);
+int spider_param_udf_ct_bulk_insert_interval(int udf_ct_bulk_insert_interval);
+longlong spider_param_udf_ct_bulk_insert_rows(longlong udf_ct_bulk_insert_rows);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
-uint spider_param_hs_r_conn_recycle_mode(
- THD *thd
-);
-uint spider_param_hs_r_conn_recycle_strict(
- THD *thd
-);
-uint spider_param_hs_w_conn_recycle_mode(
- THD *thd
-);
-uint spider_param_hs_w_conn_recycle_strict(
- THD *thd
-);
-int spider_param_use_hs_read(
- THD *thd,
- int use_hs_read
-);
-int spider_param_use_hs_write(
- THD *thd,
- int use_hs_write
-);
+uint spider_param_hs_r_conn_recycle_mode(THD *thd);
+uint spider_param_hs_r_conn_recycle_strict(THD *thd);
+uint spider_param_hs_w_conn_recycle_mode(THD *thd);
+uint spider_param_hs_w_conn_recycle_strict(THD *thd);
+int spider_param_use_hs_read(THD *thd, int use_hs_read);
+int spider_param_use_hs_write(THD *thd, int use_hs_write);
#endif
-int spider_param_use_handler(
- THD *thd,
- int use_handler
-);
-int spider_param_error_read_mode(
- THD *thd,
- int error_read_mode
-);
-int spider_param_error_write_mode(
- THD *thd,
- int error_write_mode
-);
-int spider_param_skip_default_condition(
- THD *thd,
- int skip_default_condition
-);
-int spider_param_skip_parallel_search(
- THD *thd,
- int skip_parallel_search
-);
-longlong spider_param_direct_order_limit(
- THD *thd,
- longlong direct_order_limit
-);
-int spider_param_read_only_mode(
- THD *thd,
- int read_only_mode
-);
+int spider_param_use_handler(THD *thd, int use_handler);
+int spider_param_error_read_mode(THD *thd, int error_read_mode);
+int spider_param_error_write_mode(THD *thd, int error_write_mode);
+int spider_param_skip_default_condition(THD *thd, int skip_default_condition);
+int spider_param_skip_parallel_search(THD *thd, int skip_parallel_search);
+longlong spider_param_direct_order_limit(THD *thd, longlong direct_order_limit);
+int spider_param_read_only_mode(THD *thd, int read_only_mode);
#ifdef HA_CAN_BULK_ACCESS
-int spider_param_bulk_access_free(
- int bulk_access_free
-);
+int spider_param_bulk_access_free(int bulk_access_free);
#endif
#if MYSQL_VERSION_ID < 50500
#else
-int spider_param_udf_ds_use_real_table(
- THD *thd,
- int udf_ds_use_real_table
-);
+int spider_param_udf_ds_use_real_table(THD *thd, int udf_ds_use_real_table);
#endif
my_bool spider_param_general_log();
-my_bool spider_param_index_hint_pushdown(
- THD *thd
-);
+my_bool spider_param_index_hint_pushdown(THD *thd);
uint spider_param_max_connections();
uint spider_param_conn_wait_timeout();
uint spider_param_internal_lock_wait_timeout();
uint spider_param_log_result_errors();
uint spider_param_log_result_error_with_sql();
-uint spider_param_internal_xa_id_type(
- THD *thd
-);
-int spider_param_casual_read(
- THD *thd,
- int casual_read
-);
+uint spider_param_internal_xa_id_type(THD *thd);
+int spider_param_casual_read(THD *thd, int casual_read);
my_bool spider_param_dry_access();
-int spider_param_delete_all_rows_type(
- THD *thd,
- int delete_all_rows_type
-);
-int spider_param_bka_table_name_type(
- THD *thd,
- int bka_table_name_type
-);
-int spider_param_use_cond_other_than_pk_for_update(
- THD *thd
-);
-int spider_param_store_last_sts(
- int store_last_sts
-);
-int spider_param_store_last_crd(
- int store_last_crd
-);
-int spider_param_load_sts_at_startup(
- int load_sts_at_startup
-);
-int spider_param_load_crd_at_startup(
- int load_crd_at_startup
-);
+int spider_param_delete_all_rows_type(THD *thd, int delete_all_rows_type);
+int spider_param_bka_table_name_type(THD *thd, int bka_table_name_type);
+int spider_param_use_cond_other_than_pk_for_update(THD *thd);
+int spider_param_store_last_sts(int store_last_sts);
+int spider_param_store_last_crd(int store_last_crd);
+int spider_param_load_sts_at_startup(int load_sts_at_startup);
+int spider_param_load_crd_at_startup(int load_crd_at_startup);
#ifndef WITHOUT_SPIDER_BG_SEARCH
uint spider_param_table_sts_thread_count();
uint spider_param_table_crd_thread_count();
#endif
int spider_param_slave_trx_isolation();
-int spider_param_remote_wait_timeout(
- THD *thd
-);
-int spider_param_wait_timeout(
- THD *thd
-);
-bool spider_param_sync_sql_mode(
- THD *thd
-);
-int spider_param_strict_group_by(
- THD *thd,
- int strict_group_by
-);
+int spider_param_remote_wait_timeout(THD *thd);
+int spider_param_wait_timeout(THD *thd);
+bool spider_param_sync_sql_mode(THD *thd);
+int spider_param_strict_group_by(THD *thd, int strict_group_by);
diff --git a/storage/spider/spd_ping_table.h b/storage/spider/spd_ping_table.h
index 586ee7afde2..06c156dea68 100644
--- a/storage/spider/spd_ping_table.h
+++ b/storage/spider/spd_ping_table.h
@@ -11,109 +11,52 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
SPIDER_TABLE_MON_LIST *spider_get_ping_table_mon_list(
- SPIDER_TRX *trx,
- THD *thd,
- spider_string *str,
- uint conv_name_length,
- int link_idx,
- char *static_link_id,
- uint static_link_id_length,
- uint32 server_id,
- bool need_lock,
- int *error_num
-);
-
-void spider_free_ping_table_mon_list(
- SPIDER_TABLE_MON_LIST *table_mon_list
-);
+ SPIDER_TRX *trx, THD *thd, spider_string *str, uint conv_name_length,
+ int link_idx, char *static_link_id, uint static_link_id_length,
+ uint32 server_id, bool need_lock, int *error_num);
+
+void spider_free_ping_table_mon_list(SPIDER_TABLE_MON_LIST *table_mon_list);
void spider_release_ping_table_mon_list_loop(
- uint mutex_hash,
- SPIDER_TABLE_MON_LIST *table_mon_list
-);
-
-int spider_release_ping_table_mon_list(
- const char *conv_name,
- uint conv_name_length,
- int link_idx
-);
-
-int spider_get_ping_table_mon(
- THD *thd,
- SPIDER_TABLE_MON_LIST *table_mon_list,
- char *name,
- uint name_length,
- int link_idx,
- uint32 server_id,
- MEM_ROOT *mem_root,
- bool need_lock
-);
+ uint mutex_hash, SPIDER_TABLE_MON_LIST *table_mon_list);
+
+int spider_release_ping_table_mon_list(const char *conv_name,
+ uint conv_name_length, int link_idx);
+
+int spider_get_ping_table_mon(THD *thd, SPIDER_TABLE_MON_LIST *table_mon_list,
+ char *name, uint name_length, int link_idx,
+ uint32 server_id, MEM_ROOT *mem_root,
+ bool need_lock);
SPIDER_TABLE_MON_LIST *spider_get_ping_table_tgt(
- THD *thd,
- char *name,
- uint name_length,
- int link_idx,
- char *static_link_id,
- uint static_link_id_length,
- uint32 server_id,
- spider_string *str,
- bool need_lock,
- int *error_num
-);
-
-SPIDER_CONN *spider_get_ping_table_tgt_conn(
- SPIDER_TRX *trx,
- SPIDER_SHARE *share,
- int *error_num
-);
-
-int spider_get_ping_table_gtid_pos(
- SPIDER_TRX *trx,
- THD *thd,
- spider_string *str,
- uint conv_name_length,
- int failed_link_idx,
- uint32 server_id,
- bool need_lock,
- spider_string *tmp_str
-);
-
-int spider_init_ping_table_mon_cache(
- THD *thd,
- MEM_ROOT *mem_root,
- bool need_lock
-);
-
-int spider_ping_table_cache_compare(
- TABLE *table,
- MEM_ROOT *mem_root
-);
-
-void spider_ping_table_free_mon_list(
- SPIDER_TABLE_MON_LIST *table_mon_list
-);
-
-void spider_ping_table_free_mon(
- SPIDER_TABLE_MON *table_mon
-);
+ THD *thd, char *name, uint name_length, int link_idx, char *static_link_id,
+ uint static_link_id_length, uint32 server_id, spider_string *str,
+ bool need_lock, int *error_num);
+
+SPIDER_CONN *spider_get_ping_table_tgt_conn(SPIDER_TRX *trx,
+ SPIDER_SHARE *share,
+ int *error_num);
+
+int spider_get_ping_table_gtid_pos(SPIDER_TRX *trx, THD *thd,
+ spider_string *str, uint conv_name_length,
+ int failed_link_idx, uint32 server_id,
+ bool need_lock, spider_string *tmp_str);
+
+int spider_init_ping_table_mon_cache(THD *thd, MEM_ROOT *mem_root,
+ bool need_lock);
+
+int spider_ping_table_cache_compare(TABLE *table, MEM_ROOT *mem_root);
+
+void spider_ping_table_free_mon_list(SPIDER_TABLE_MON_LIST *table_mon_list);
+
+void spider_ping_table_free_mon(SPIDER_TABLE_MON *table_mon);
int spider_ping_table_mon_from_table(
- SPIDER_TRX *trx,
- THD *thd,
- SPIDER_SHARE *share,
- int base_link_idx,
- uint32 server_id,
- char *conv_name,
- uint conv_name_length,
- int link_idx,
- char *where_clause,
- uint where_clause_length,
- long monitoring_kind,
- longlong monitoring_limit,
- long monitoring_flag,
- bool need_lock
-);
+ SPIDER_TRX *trx, THD *thd, SPIDER_SHARE *share, int base_link_idx,
+ uint32 server_id, char *conv_name, uint conv_name_length, int link_idx,
+ char *where_clause, uint where_clause_length, long monitoring_kind,
+ longlong monitoring_limit, long monitoring_flag, bool need_lock);
diff --git a/storage/spider/spd_sys_table.h b/storage/spider/spd_sys_table.h
index 22f48b05dfb..11ac4c88d7c 100644
--- a/storage/spider/spd_sys_table.h
+++ b/storage/spider/spd_sys_table.h
@@ -12,7 +12,8 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
#define SPIDER_SYS_XA_TABLE_NAME_STR "spider_xa"
#define SPIDER_SYS_XA_TABLE_NAME_LEN 9
@@ -26,7 +27,8 @@
#define SPIDER_SYS_LINK_FAILED_TABLE_NAME_LEN 22
#define SPIDER_SYS_XA_FAILED_TABLE_NAME_STR "spider_xa_failed_log"
#define SPIDER_SYS_XA_FAILED_TABLE_NAME_LEN 20
-#define SPIDER_SYS_POS_FOR_RECOVERY_TABLE_NAME_STR "spider_table_position_for_recovery"
+#define SPIDER_SYS_POS_FOR_RECOVERY_TABLE_NAME_STR \
+ "spider_table_position_for_recovery"
#define SPIDER_SYS_POS_FOR_RECOVERY_TABLE_NAME_LEN 34
#define SPIDER_SYS_TABLE_STS_TABLE_NAME_STR "spider_table_sts"
#define SPIDER_SYS_TABLE_STS_TABLE_NAME_LEN 16
@@ -38,7 +40,8 @@
#define SPIDER_SYS_RW_TBL_TBLS_TABLE_NAME_LEN 27
#define SPIDER_SYS_RW_TBL_PTTS_TABLE_NAME_STR "spider_rewrite_table_partitions"
#define SPIDER_SYS_RW_TBL_PTTS_TABLE_NAME_LEN 31
-#define SPIDER_SYS_RW_TBL_SPTTS_TABLE_NAME_STR "spider_rewrite_table_subpartitions"
+#define SPIDER_SYS_RW_TBL_SPTTS_TABLE_NAME_STR \
+ "spider_rewrite_table_subpartitions"
#define SPIDER_SYS_RW_TBL_SPTTS_TABLE_NAME_LEN 34
#define SPIDER_SYS_RWN_TBLS_TABLE_NAME_STR "spider_rewritten_tables"
#define SPIDER_SYS_RWN_TBLS_TABLE_NAME_LEN 23
@@ -75,9 +78,8 @@
#define SPIDER_SYS_LINK_MON_TABLE_TABLE_NAME_SIZE 64
#define SPIDER_SYS_LINK_MON_TABLE_LINK_ID_SIZE 64
-class SPIDER_MON_KEY: public SPIDER_SORT
-{
-public:
+class SPIDER_MON_KEY : public SPIDER_SORT {
+ public:
char db_name[SPIDER_SYS_LINK_MON_TABLE_DB_NAME_SIZE + 1];
char table_name[SPIDER_SYS_LINK_MON_TABLE_TABLE_NAME_SIZE + 1];
char link_id[SPIDER_SYS_LINK_MON_TABLE_LINK_ID_SIZE + 1];
@@ -86,562 +88,264 @@ public:
uint link_id_length;
};
-TABLE *spider_open_sys_table(
- THD *thd,
- const char *table_name,
- int table_name_length,
- bool write,
- SPIDER_Open_tables_backup *open_tables_backup,
- bool need_lock,
- int *error_num
-);
-
-void spider_close_sys_table(
- THD *thd,
- TABLE *table,
- SPIDER_Open_tables_backup *open_tables_backup,
- bool need_lock
-);
+TABLE *spider_open_sys_table(THD *thd, const char *table_name,
+ int table_name_length, bool write,
+ SPIDER_Open_tables_backup *open_tables_backup,
+ bool need_lock, int *error_num);
+
+void spider_close_sys_table(THD *thd, TABLE *table,
+ SPIDER_Open_tables_backup *open_tables_backup,
+ bool need_lock);
#if MYSQL_VERSION_ID < 50500
#else
bool spider_sys_open_and_lock_tables(
- THD *thd,
- TABLE_LIST **tables,
- SPIDER_Open_tables_backup *open_tables_backup
-);
-
-TABLE *spider_sys_open_table(
- THD *thd,
- TABLE_LIST *tables,
- SPIDER_Open_tables_backup *open_tables_backup
-);
-
-void spider_sys_close_table(
- THD *thd,
- SPIDER_Open_tables_backup *open_tables_backup
-);
+ THD *thd, TABLE_LIST **tables,
+ SPIDER_Open_tables_backup *open_tables_backup);
+
+TABLE *spider_sys_open_table(THD *thd, TABLE_LIST *tables,
+ SPIDER_Open_tables_backup *open_tables_backup);
+
+void spider_sys_close_table(THD *thd,
+ SPIDER_Open_tables_backup *open_tables_backup);
#endif
-int spider_sys_index_init(
- TABLE *table,
- uint idx,
- bool sorted
-);
-
-int spider_sys_index_end(
- TABLE *table
-);
-
-int spider_sys_rnd_init(
- TABLE *table,
- bool scan
-);
-
-int spider_sys_rnd_end(
- TABLE *table
-);
-
-int spider_check_sys_table(
- TABLE *table,
- char *table_key
-);
-
-int spider_check_sys_table_with_find_flag(
- TABLE *table,
- char *table_key,
- enum ha_rkey_function find_flag
-);
-
-int spider_check_sys_table_for_update_all_columns(
- TABLE *table,
- char *table_key
-);
-
-int spider_get_sys_table_by_idx(
- TABLE *table,
- char *table_key,
- const int idx,
- const int col_count
-);
-
-int spider_sys_index_next_same(
- TABLE *table,
- char *table_key
-);
-
-int spider_sys_index_first(
- TABLE *table,
- const int idx
-);
-
-int spider_sys_index_last(
- TABLE *table,
- const int idx
-);
-
-int spider_sys_index_next(
- TABLE *table
-);
-
-void spider_store_xa_pk(
- TABLE *table,
- XID *xid
-);
-
-void spider_store_xa_bqual_length(
- TABLE *table,
- XID *xid
-);
-
-void spider_store_xa_status(
- TABLE *table,
- const char *status
-);
-
-void spider_store_xa_member_pk(
- TABLE *table,
- XID *xid,
- SPIDER_CONN *conn
-);
-
-void spider_store_xa_member_info(
- TABLE *table,
- XID *xid,
- SPIDER_CONN *conn
-);
-
-void spider_store_tables_name(
- TABLE *table,
- const char *name,
- const uint name_length
-);
-
-void spider_store_db_and_table_name(
- TABLE *table,
- const char *db_name,
- const uint db_name_length,
- const char *table_name,
- const uint table_name_length
-);
-
-void spider_store_tables_link_idx(
- TABLE *table,
- int link_idx
-);
-
-void spider_store_tables_link_idx_str(
- TABLE *table,
- const char *link_idx,
- const uint link_idx_length
-);
-
-void spider_store_tables_static_link_id(
- TABLE *table,
- const char *static_link_id,
- const uint static_link_id_length
-);
-
-void spider_store_tables_priority(
- TABLE *table,
- longlong priority
-);
-
-void spider_store_tables_connect_info(
- TABLE *table,
- SPIDER_ALTER_TABLE *alter_table,
- int link_idx
-);
-
-void spider_store_tables_link_status(
- TABLE *table,
- long link_status
-);
-
-void spider_store_binlog_pos_failed_link_idx(
- TABLE *table,
- int failed_link_idx
-);
-
-void spider_store_binlog_pos_source_link_idx(
- TABLE *table,
- int source_link_idx
-);
-
-void spider_store_binlog_pos_binlog_file(
- TABLE *table,
- const char *file_name,
- int file_name_length,
- const char *position,
- int position_length,
- CHARSET_INFO *binlog_pos_cs
-);
-
-void spider_store_binlog_pos_gtid(
- TABLE *table,
- const char *gtid,
- int gtid_length,
- CHARSET_INFO *binlog_pos_cs
-);
-
-void spider_store_table_sts_info(
- TABLE *table,
- ha_statistics *stat
-);
-
-void spider_store_table_crd_info(
- TABLE *table,
- uint *seq,
- longlong *cardinality
-);
-
-int spider_insert_xa(
- TABLE *table,
- XID *xid,
- const char *status
-);
-
-int spider_insert_xa_member(
- TABLE *table,
- XID *xid,
- SPIDER_CONN *conn
-);
-
-int spider_insert_tables(
- TABLE *table,
- SPIDER_SHARE *share
-);
-
-int spider_insert_sys_table(
- TABLE *table
-);
-
-int spider_insert_or_update_table_sts(
- TABLE *table,
- const char *name,
- uint name_length,
- ha_statistics *stat
-);
-
-int spider_insert_or_update_table_crd(
- TABLE *table,
- const char *name,
- uint name_length,
- longlong *cardinality,
- uint number_of_keys
-);
-
-int spider_log_tables_link_failed(
- TABLE *table,
- char *name,
- uint name_length,
- int link_idx
-);
-
-int spider_log_xa_failed(
- THD *thd,
- TABLE *table,
- XID *xid,
- SPIDER_CONN *conn,
- const char *status
-);
-
-int spider_update_xa(
- TABLE *table,
- XID *xid,
- const char *status
-);
-
-int spider_update_tables_name(
- TABLE *table,
- const char *from,
- const char *to,
- int *old_link_count
-);
-
-int spider_update_tables_priority(
- TABLE *table,
- SPIDER_ALTER_TABLE *alter_table,
- const char *name,
- int *old_link_count
-);
-
-int spider_update_tables_link_status(
- TABLE *table,
- char *name,
- uint name_length,
- int link_idx,
- long link_status
-);
-
-int spider_update_sys_table(
- TABLE *table
-);
-
-int spider_delete_xa(
- TABLE *table,
- XID *xid
-);
-
-int spider_delete_xa_member(
- TABLE *table,
- XID *xid
-);
-
-int spider_delete_tables(
- TABLE *table,
- const char *name,
- int *old_link_count
-);
-
-int spider_delete_table_sts(
- TABLE *table,
- const char *name,
- uint name_length
-);
-
-int spider_delete_table_crd(
- TABLE *table,
- const char *name,
- uint name_length
-);
-
-int spider_get_sys_xid(
- TABLE *table,
- XID *xid,
- MEM_ROOT *mem_root
-);
-
-int spider_get_sys_server_info(
- TABLE *table,
- SPIDER_SHARE *share,
- int link_idx,
- MEM_ROOT *mem_root
-);
-
-int spider_check_sys_xa_status(
- TABLE *table,
- const char *status1,
- const char *status2,
- const char *status3,
- const int check_error_num,
- MEM_ROOT *mem_root
-);
-
-int spider_get_sys_tables(
- TABLE *table,
- char **db_name,
- char **table_name,
- MEM_ROOT *mem_root
-);
-
-int spider_get_sys_tables_connect_info(
- TABLE *table,
- SPIDER_SHARE *share,
- int link_idx,
- MEM_ROOT *mem_root
-);
+int spider_sys_index_init(TABLE *table, uint idx, bool sorted);
+
+int spider_sys_index_end(TABLE *table);
+
+int spider_sys_rnd_init(TABLE *table, bool scan);
+
+int spider_sys_rnd_end(TABLE *table);
+
+int spider_check_sys_table(TABLE *table, char *table_key);
+
+int spider_check_sys_table_with_find_flag(TABLE *table, char *table_key,
+ enum ha_rkey_function find_flag);
+
+int spider_check_sys_table_for_update_all_columns(TABLE *table,
+ char *table_key);
+
+int spider_get_sys_table_by_idx(TABLE *table, char *table_key, const int idx,
+ const int col_count);
+
+int spider_sys_index_next_same(TABLE *table, char *table_key);
+
+int spider_sys_index_first(TABLE *table, const int idx);
+
+int spider_sys_index_last(TABLE *table, const int idx);
+
+int spider_sys_index_next(TABLE *table);
+
+void spider_store_xa_pk(TABLE *table, XID *xid);
+
+void spider_store_xa_bqual_length(TABLE *table, XID *xid);
+
+void spider_store_xa_status(TABLE *table, const char *status);
+
+void spider_store_xa_member_pk(TABLE *table, XID *xid, SPIDER_CONN *conn);
+
+void spider_store_xa_member_info(TABLE *table, XID *xid, SPIDER_CONN *conn);
+
+void spider_store_tables_name(TABLE *table, const char *name,
+ const uint name_length);
+
+void spider_store_db_and_table_name(TABLE *table, const char *db_name,
+ const uint db_name_length,
+ const char *table_name,
+ const uint table_name_length);
+
+void spider_store_tables_link_idx(TABLE *table, int link_idx);
+
+void spider_store_tables_link_idx_str(TABLE *table, const char *link_idx,
+ const uint link_idx_length);
+
+void spider_store_tables_static_link_id(TABLE *table,
+ const char *static_link_id,
+ const uint static_link_id_length);
+
+void spider_store_tables_priority(TABLE *table, longlong priority);
+
+void spider_store_tables_connect_info(TABLE *table,
+ SPIDER_ALTER_TABLE *alter_table,
+ int link_idx);
+
+void spider_store_tables_link_status(TABLE *table, long link_status);
+
+void spider_store_binlog_pos_failed_link_idx(TABLE *table, int failed_link_idx);
+
+void spider_store_binlog_pos_source_link_idx(TABLE *table, int source_link_idx);
+
+void spider_store_binlog_pos_binlog_file(TABLE *table, const char *file_name,
+ int file_name_length,
+ const char *position,
+ int position_length,
+ CHARSET_INFO *binlog_pos_cs);
+
+void spider_store_binlog_pos_gtid(TABLE *table, const char *gtid,
+ int gtid_length, CHARSET_INFO *binlog_pos_cs);
+
+void spider_store_table_sts_info(TABLE *table, ha_statistics *stat);
+
+void spider_store_table_crd_info(TABLE *table, uint *seq,
+ longlong *cardinality);
+
+int spider_insert_xa(TABLE *table, XID *xid, const char *status);
+
+int spider_insert_xa_member(TABLE *table, XID *xid, SPIDER_CONN *conn);
+
+int spider_insert_tables(TABLE *table, SPIDER_SHARE *share);
+
+int spider_insert_sys_table(TABLE *table);
+
+int spider_insert_or_update_table_sts(TABLE *table, const char *name,
+ uint name_length, ha_statistics *stat);
+
+int spider_insert_or_update_table_crd(TABLE *table, const char *name,
+ uint name_length, longlong *cardinality,
+ uint number_of_keys);
+
+int spider_log_tables_link_failed(TABLE *table, char *name, uint name_length,
+ int link_idx);
+
+int spider_log_xa_failed(THD *thd, TABLE *table, XID *xid, SPIDER_CONN *conn,
+ const char *status);
+
+int spider_update_xa(TABLE *table, XID *xid, const char *status);
+
+int spider_update_tables_name(TABLE *table, const char *from, const char *to,
+ int *old_link_count);
+
+int spider_update_tables_priority(TABLE *table, SPIDER_ALTER_TABLE *alter_table,
+ const char *name, int *old_link_count);
+
+int spider_update_tables_link_status(TABLE *table, char *name, uint name_length,
+ int link_idx, long link_status);
+
+int spider_update_sys_table(TABLE *table);
+
+int spider_delete_xa(TABLE *table, XID *xid);
+
+int spider_delete_xa_member(TABLE *table, XID *xid);
+
+int spider_delete_tables(TABLE *table, const char *name, int *old_link_count);
+
+int spider_delete_table_sts(TABLE *table, const char *name, uint name_length);
+
+int spider_delete_table_crd(TABLE *table, const char *name, uint name_length);
+
+int spider_get_sys_xid(TABLE *table, XID *xid, MEM_ROOT *mem_root);
+
+int spider_get_sys_server_info(TABLE *table, SPIDER_SHARE *share, int link_idx,
+ MEM_ROOT *mem_root);
+
+int spider_check_sys_xa_status(TABLE *table, const char *status1,
+ const char *status2, const char *status3,
+ const int check_error_num, MEM_ROOT *mem_root);
+
+int spider_get_sys_tables(TABLE *table, char **db_name, char **table_name,
+ MEM_ROOT *mem_root);
+
+int spider_get_sys_tables_connect_info(TABLE *table, SPIDER_SHARE *share,
+ int link_idx, MEM_ROOT *mem_root);
int spider_get_sys_tables_monitoring_binlog_pos_at_failing(
- TABLE *table,
- long *monitoring_binlog_pos_at_failing,
- MEM_ROOT *mem_root
-);
-
-int spider_get_sys_tables_link_status(
- TABLE *table,
- SPIDER_SHARE *share,
- int link_idx,
- MEM_ROOT *mem_root
-);
-
-int spider_get_sys_tables_link_status(
- TABLE *table,
- long *link_status,
- MEM_ROOT *mem_root
-);
-
-int spider_get_sys_tables_link_idx(
- TABLE *table,
- int *link_idx,
- MEM_ROOT *mem_root
-);
-
-int spider_get_sys_tables_static_link_id(
- TABLE *table,
- char **static_link_id,
- uint *static_link_id_length,
- MEM_ROOT *mem_root
-);
-
-void spider_get_sys_table_sts_info(
- TABLE *table,
- ha_statistics *stat
-);
-
-void spider_get_sys_table_crd_info(
- TABLE *table,
- longlong *cardinality,
- uint number_of_keys
-);
-
-int spider_sys_update_tables_link_status(
- THD *thd,
- char *name,
- uint name_length,
- int link_idx,
- long link_status,
- bool need_lock
-);
-
-int spider_sys_log_tables_link_failed(
- THD *thd,
- char *name,
- uint name_length,
- int link_idx,
- bool need_lock
-);
-
-int spider_sys_log_xa_failed(
- THD *thd,
- XID *xid,
- SPIDER_CONN *conn,
- const char *status,
- bool need_lock
-);
-
-int spider_get_sys_link_mon_key(
- TABLE *table,
- SPIDER_MON_KEY *mon_key,
- MEM_ROOT *mem_root,
- int *same
-);
-
-int spider_get_sys_link_mon_server_id(
- TABLE *table,
- uint32 *server_id,
- MEM_ROOT *mem_root
-);
-
-int spider_get_sys_link_mon_connect_info(
- TABLE *table,
- SPIDER_SHARE *share,
- int link_idx,
- MEM_ROOT *mem_root
-);
-
-int spider_get_link_statuses(
- TABLE *table,
- SPIDER_SHARE *share,
- MEM_ROOT *mem_root
-);
-
-int spider_sys_insert_or_update_table_sts(
- THD *thd,
- const char *name,
- uint name_length,
- ha_statistics *stat,
- bool need_lock
-);
-
-int spider_sys_insert_or_update_table_crd(
- THD *thd,
- const char *name,
- uint name_length,
- longlong *cardinality,
- uint number_of_keys,
- bool need_lock
-);
-
-int spider_sys_delete_table_sts(
- THD *thd,
- const char *name,
- uint name_length,
- bool need_lock
-);
-
-int spider_sys_delete_table_crd(
- THD *thd,
- const char *name,
- uint name_length,
- bool need_lock
-);
-
-int spider_sys_get_table_sts(
- THD *thd,
- const char *name,
- uint name_length,
- ha_statistics *stat,
- bool need_lock
-);
-
-int spider_sys_get_table_crd(
- THD *thd,
- const char *name,
- uint name_length,
- longlong *cardinality,
- uint number_of_keys,
- bool need_lock
-);
-
-int spider_sys_replace(
- TABLE *table,
- bool *modified_non_trans_table
-);
+ TABLE *table, long *monitoring_binlog_pos_at_failing, MEM_ROOT *mem_root);
+
+int spider_get_sys_tables_link_status(TABLE *table, SPIDER_SHARE *share,
+ int link_idx, MEM_ROOT *mem_root);
+
+int spider_get_sys_tables_link_status(TABLE *table, long *link_status,
+ MEM_ROOT *mem_root);
+
+int spider_get_sys_tables_link_idx(TABLE *table, int *link_idx,
+ MEM_ROOT *mem_root);
+
+int spider_get_sys_tables_static_link_id(TABLE *table, char **static_link_id,
+ uint *static_link_id_length,
+ MEM_ROOT *mem_root);
+
+void spider_get_sys_table_sts_info(TABLE *table, ha_statistics *stat);
+
+void spider_get_sys_table_crd_info(TABLE *table, longlong *cardinality,
+ uint number_of_keys);
+
+int spider_sys_update_tables_link_status(THD *thd, char *name, uint name_length,
+ int link_idx, long link_status,
+ bool need_lock);
+
+int spider_sys_log_tables_link_failed(THD *thd, char *name, uint name_length,
+ int link_idx, bool need_lock);
+
+int spider_sys_log_xa_failed(THD *thd, XID *xid, SPIDER_CONN *conn,
+ const char *status, bool need_lock);
+
+int spider_get_sys_link_mon_key(TABLE *table, SPIDER_MON_KEY *mon_key,
+ MEM_ROOT *mem_root, int *same);
+
+int spider_get_sys_link_mon_server_id(TABLE *table, uint32 *server_id,
+ MEM_ROOT *mem_root);
+
+int spider_get_sys_link_mon_connect_info(TABLE *table, SPIDER_SHARE *share,
+ int link_idx, MEM_ROOT *mem_root);
+
+int spider_get_link_statuses(TABLE *table, SPIDER_SHARE *share,
+ MEM_ROOT *mem_root);
+
+int spider_sys_insert_or_update_table_sts(THD *thd, const char *name,
+ uint name_length, ha_statistics *stat,
+ bool need_lock);
+
+int spider_sys_insert_or_update_table_crd(THD *thd, const char *name,
+ uint name_length,
+ longlong *cardinality,
+ uint number_of_keys, bool need_lock);
+
+int spider_sys_delete_table_sts(THD *thd, const char *name, uint name_length,
+ bool need_lock);
+
+int spider_sys_delete_table_crd(THD *thd, const char *name, uint name_length,
+ bool need_lock);
+
+int spider_sys_get_table_sts(THD *thd, const char *name, uint name_length,
+ ha_statistics *stat, bool need_lock);
+
+int spider_sys_get_table_crd(THD *thd, const char *name, uint name_length,
+ longlong *cardinality, uint number_of_keys,
+ bool need_lock);
+
+int spider_sys_replace(TABLE *table, bool *modified_non_trans_table);
#ifdef SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
-TABLE *spider_mk_sys_tmp_table(
- THD *thd,
- TABLE *table,
- TMP_TABLE_PARAM *tmp_tbl_prm,
- const LEX_CSTRING *field_name,
- CHARSET_INFO *cs
-);
+TABLE *spider_mk_sys_tmp_table(THD *thd, TABLE *table,
+ TMP_TABLE_PARAM *tmp_tbl_prm,
+ const LEX_CSTRING *field_name, CHARSET_INFO *cs);
#else
-TABLE *spider_mk_sys_tmp_table(
- THD *thd,
- TABLE *table,
- TMP_TABLE_PARAM *tmp_tbl_prm,
- const char *field_name,
- CHARSET_INFO *cs
-);
+TABLE *spider_mk_sys_tmp_table(THD *thd, TABLE *table,
+ TMP_TABLE_PARAM *tmp_tbl_prm,
+ const char *field_name, CHARSET_INFO *cs);
#endif
-void spider_rm_sys_tmp_table(
- THD *thd,
- TABLE *tmp_table,
- TMP_TABLE_PARAM *tmp_tbl_prm
-);
+void spider_rm_sys_tmp_table(THD *thd, TABLE *tmp_table,
+ TMP_TABLE_PARAM *tmp_tbl_prm);
#ifdef SPIDER_use_LEX_CSTRING_for_Field_blob_constructor
-TABLE *spider_mk_sys_tmp_table_for_result(
- THD *thd,
- TABLE *table,
- TMP_TABLE_PARAM *tmp_tbl_prm,
- const LEX_CSTRING *field_name1,
- const LEX_CSTRING *field_name2,
- const LEX_CSTRING *field_name3,
- CHARSET_INFO *cs
-);
+TABLE *spider_mk_sys_tmp_table_for_result(THD *thd, TABLE *table,
+ TMP_TABLE_PARAM *tmp_tbl_prm,
+ const LEX_CSTRING *field_name1,
+ const LEX_CSTRING *field_name2,
+ const LEX_CSTRING *field_name3,
+ CHARSET_INFO *cs);
#else
-TABLE *spider_mk_sys_tmp_table_for_result(
- THD *thd,
- TABLE *table,
- TMP_TABLE_PARAM *tmp_tbl_prm,
- const char *field_name1,
- const char *field_name2,
- const char *field_name3,
- CHARSET_INFO *cs
-);
+TABLE *spider_mk_sys_tmp_table_for_result(THD *thd, TABLE *table,
+ TMP_TABLE_PARAM *tmp_tbl_prm,
+ const char *field_name1,
+ const char *field_name2,
+ const char *field_name3,
+ CHARSET_INFO *cs);
#endif
-void spider_rm_sys_tmp_table_for_result(
- THD *thd,
- TABLE *tmp_table,
- TMP_TABLE_PARAM *tmp_tbl_prm
-);
+void spider_rm_sys_tmp_table_for_result(THD *thd, TABLE *tmp_table,
+ TMP_TABLE_PARAM *tmp_tbl_prm);
-TABLE *spider_find_temporary_table(
- THD *thd,
- TABLE_LIST *table_list
-);
+TABLE *spider_find_temporary_table(THD *thd, TABLE_LIST *table_list);
diff --git a/storage/spider/spd_table.h b/storage/spider/spd_table.h
index 2b40fb33d5a..243cf6006c0 100644
--- a/storage/spider/spd_table.h
+++ b/storage/spider/spd_table.h
@@ -12,7 +12,8 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
/*
Structure used to manage Spider parameter string parsing. Types of
@@ -28,24 +29,23 @@
single or double quotes.
*/
-typedef struct st_spider_param_string_parse
-{
- char *start_ptr; /* Pointer to the start of the parameter string */
- char *end_ptr; /* Pointer to the end of the parameter string */
- char *start_title_ptr; /* Pointer to the start of the current parameter
- title */
- char *end_title_ptr; /* Pointer to the end of the current parameter
- title */
- char *start_value_ptr; /* Pointer to the start of the current parameter
- value */
- char *end_value_ptr; /* Pointer to the end of the current parameter
- value */
- int error_num; /* Error code of the error message to print when
- an error is detected */
- uint delim_title_len; /* Length of the paramater title's delimiter */
- uint delim_value_len; /* Length of the paramater value's delimiter */
- char delim_title; /* Current parameter title's delimiter character */
- char delim_value; /* Current parameter value's delimiter character */
+typedef struct st_spider_param_string_parse {
+ char *start_ptr; /* Pointer to the start of the parameter string */
+ char *end_ptr; /* Pointer to the end of the parameter string */
+ char *start_title_ptr; /* Pointer to the start of the current parameter
+ title */
+ char *end_title_ptr; /* Pointer to the end of the current parameter
+ title */
+ char *start_value_ptr; /* Pointer to the start of the current parameter
+ value */
+ char *end_value_ptr; /* Pointer to the end of the current parameter
+ value */
+ int error_num; /* Error code of the error message to print when
+ an error is detected */
+ uint delim_title_len; /* Length of the paramater title's delimiter */
+ uint delim_value_len; /* Length of the paramater value's delimiter */
+ char delim_title; /* Current parameter title's delimiter character */
+ char delim_value; /* Current parameter value's delimiter character */
/**
Initialize the parameter string parse information.
@@ -55,8 +55,7 @@ typedef struct st_spider_param_string_parse
an error is detected.
*/
- inline void init(char *param_string, int error_code)
- {
+ inline void init(char *param_string, int error_code) {
start_ptr = param_string;
end_ptr = start_ptr + strlen(start_ptr);
@@ -70,8 +69,7 @@ typedef struct st_spider_param_string_parse
Initialize the current parameter title.
*/
- inline void init_param_title()
- {
+ inline void init_param_title() {
start_title_ptr = end_title_ptr = NULL;
delim_title_len = 0;
delim_title = '\0';
@@ -88,14 +86,11 @@ typedef struct st_spider_param_string_parse
parameter title.
*/
- inline void set_param_title(char *start_title, char *end_title)
- {
+ inline void set_param_title(char *start_title, char *end_title) {
start_title_ptr = start_title;
end_title_ptr = end_title;
- if (*start_title == '"' ||
- *start_title == '\'')
- {
+ if (*start_title == '"' || *start_title == '\'') {
delim_title = *start_title;
if (start_title >= start_ptr && *--start_title == '\\')
@@ -109,8 +104,7 @@ typedef struct st_spider_param_string_parse
Initialize the current parameter value.
*/
- inline void init_param_value()
- {
+ inline void init_param_value() {
start_value_ptr = end_value_ptr = NULL;
delim_value_len = 0;
delim_value = '\0';
@@ -127,14 +121,11 @@ typedef struct st_spider_param_string_parse
parameter value.
*/
- inline void set_param_value(char *start_value, char *end_value)
- {
+ inline void set_param_value(char *start_value, char *end_value) {
start_value_ptr = start_value--;
end_value_ptr = end_value;
- if (*start_value == '"' ||
- *start_value == '\'')
- {
+ if (*start_value == '"' || *start_value == '\'') {
delim_value = *start_value;
if (*--start_value == '\\')
@@ -155,23 +146,20 @@ typedef struct st_spider_param_string_parse
parameter values.
*/
- inline int has_extra_parameter_values()
- {
+ inline int has_extra_parameter_values() {
int error_num = 0;
DBUG_ENTER("has_extra_parameter_values");
- if (end_value_ptr)
- {
+ if (end_value_ptr) {
/* There is a current parameter value */
- char *end_param_ptr = end_value_ptr;
+ char *end_param_ptr = end_value_ptr;
while (end_param_ptr < end_ptr &&
- (*end_param_ptr == ' ' || *end_param_ptr == '\r' ||
- *end_param_ptr == '\n' || *end_param_ptr == '\t'))
+ (*end_param_ptr == ' ' || *end_param_ptr == '\r' ||
+ *end_param_ptr == '\n' || *end_param_ptr == '\t'))
end_param_ptr++;
- if (end_param_ptr < end_ptr && *end_param_ptr != '\0')
- {
+ if (end_param_ptr < end_ptr && *end_param_ptr != '\0') {
/* Extra values in parameter definition */
error_num = print_param_error();
}
@@ -180,88 +168,60 @@ typedef struct st_spider_param_string_parse
DBUG_RETURN(error_num);
}
- inline int get_next_parameter_head(char *st, char **nx)
- {
+ inline int get_next_parameter_head(char *st, char **nx) {
DBUG_ENTER("get_next_parameter_head");
char *sq = strchr(st, '\'');
char *dq = strchr(st, '"');
- if (!sq && !dq)
- {
+ if (!sq && !dq) {
DBUG_RETURN(print_param_error());
}
- if (dq && (!sq || sq > dq))
- {
- while (1)
- {
+ if (dq && (!sq || sq > dq)) {
+ while (1) {
++dq;
- if (*dq == '\\')
- {
+ if (*dq == '\\') {
++dq;
- }
- else if (*dq == '"')
- {
+ } else if (*dq == '"') {
break;
- }
- else if (*dq == '\0')
- {
+ } else if (*dq == '\0') {
DBUG_RETURN(print_param_error());
}
}
- while (1)
- {
+ while (1) {
++dq;
- if (*dq == '\0')
- {
+ if (*dq == '\0') {
*nx = dq;
break;
- }
- else if (*dq == ',')
- {
+ } else if (*dq == ',') {
*dq = '\0';
*nx = dq + 1;
break;
- }
- else if (*dq != ' ' && *dq != '\r' && *dq != '\n' && *dq != '\t')
- {
+ } else if (*dq != ' ' && *dq != '\r' && *dq != '\n' && *dq != '\t') {
DBUG_RETURN(print_param_error());
}
}
- }
- else /* sq && (!dq || sq <= dq) */
+ } else /* sq && (!dq || sq <= dq) */
{
- while (1)
- {
+ while (1) {
++sq;
- if (*sq == '\\')
- {
+ if (*sq == '\\') {
++sq;
- }
- else if (*sq == '\'')
- {
+ } else if (*sq == '\'') {
break;
- }
- else if (*sq == '\0')
- {
+ } else if (*sq == '\0') {
DBUG_RETURN(print_param_error());
}
}
- while (1)
- {
+ while (1) {
++sq;
- if (*sq == '\0')
- {
+ if (*sq == '\0') {
*nx = sq;
break;
- }
- else if (*sq == ',')
- {
+ } else if (*sq == ',') {
*sq = '\0';
*nx = sq + 1;
break;
- }
- else if (*sq != ' ' && *sq != '\r' && *sq != '\n' && *sq != '\t')
- {
+ } else if (*sq != ' ' && *sq != '\r' && *sq != '\n' && *sq != '\t') {
DBUG_RETURN(print_param_error());
}
}
@@ -274,27 +234,24 @@ typedef struct st_spider_param_string_parse
parameter string. They were NULLed during parameter parsing.
*/
- inline void restore_delims()
- {
+ inline void restore_delims() {
char *end = end_title_ptr - 1;
- switch (delim_title_len)
- {
- case 2:
- *end++ = '\\';
- /* Fall through */
- case 1:
- *end = delim_title;
+ switch (delim_title_len) {
+ case 2:
+ *end++ = '\\';
+ /* Fall through */
+ case 1:
+ *end = delim_title;
}
end = end_value_ptr - 1;
- switch (delim_value_len)
- {
- case 2:
- *end++ = '\\';
- /* Fall through */
- case 1:
- *end = delim_value;
+ switch (delim_value_len) {
+ case 2:
+ *end++ = '\\';
+ /* Fall through */
+ case 1:
+ *end = delim_value;
}
}
@@ -307,529 +264,289 @@ typedef struct st_spider_param_string_parse
int print_param_error();
} SPIDER_PARAM_STRING_PARSE;
-uchar *spider_tbl_get_key(
- SPIDER_SHARE *share,
- size_t *length,
- my_bool not_used __attribute__ ((unused))
-);
+uchar *spider_tbl_get_key(SPIDER_SHARE *share, size_t *length,
+ my_bool not_used __attribute__((unused)));
-uchar *spider_wide_share_get_key(
- SPIDER_WIDE_SHARE *share,
- size_t *length,
- my_bool not_used __attribute__ ((unused))
-);
+uchar *spider_wide_share_get_key(SPIDER_WIDE_SHARE *share, size_t *length,
+ my_bool not_used __attribute__((unused)));
#ifdef WITH_PARTITION_STORAGE_ENGINE
-uchar *spider_pt_handler_share_get_key(
- SPIDER_PARTITION_HANDLER_SHARE *share,
- size_t *length,
- my_bool not_used __attribute__ ((unused))
-);
+uchar *spider_pt_handler_share_get_key(SPIDER_PARTITION_HANDLER_SHARE *share,
+ size_t *length,
+ my_bool not_used
+ __attribute__((unused)));
#endif
-uchar *spider_link_get_key(
- SPIDER_LINK_FOR_HASH *link_for_hash,
- size_t *length,
- my_bool not_used __attribute__ ((unused))
-);
+uchar *spider_link_get_key(SPIDER_LINK_FOR_HASH *link_for_hash, size_t *length,
+ my_bool not_used __attribute__((unused)));
-uchar *spider_ha_get_key(
- ha_spider *spider,
- size_t *length,
- my_bool not_used __attribute__ ((unused))
-);
+uchar *spider_ha_get_key(ha_spider *spider, size_t *length,
+ my_bool not_used __attribute__((unused)));
-int spider_get_server(
- SPIDER_SHARE *share,
- int link_idx
-);
+int spider_get_server(SPIDER_SHARE *share, int link_idx);
-int spider_free_share_alloc(
- SPIDER_SHARE *share
-);
+int spider_free_share_alloc(SPIDER_SHARE *share);
-void spider_free_tmp_share_alloc(
- SPIDER_SHARE *share
-);
+void spider_free_tmp_share_alloc(SPIDER_SHARE *share);
char *spider_get_string_between_quote(
- char *ptr,
- bool alloc,
- SPIDER_PARAM_STRING_PARSE *param_string_parse = NULL
-);
-
-int spider_create_string_list(
- char ***string_list,
- uint **string_length_list,
- uint *list_length,
- char *str,
- uint length,
- SPIDER_PARAM_STRING_PARSE *param_string_parse
-);
-
-int spider_create_long_list(
- long **long_list,
- uint *list_length,
- char *str,
- uint length,
- long min_val,
- long max_val,
- SPIDER_PARAM_STRING_PARSE *param_string_parse
-);
-
-int spider_create_longlong_list(
- longlong **longlong_list,
- uint *list_length,
- char *str,
- uint length,
- longlong min_val,
- longlong max_val,
- SPIDER_PARAM_STRING_PARSE *param_string_parse
-);
-
-int spider_increase_string_list(
- char ***string_list,
- uint **string_length_list,
- uint *list_length,
- uint *list_charlen,
- uint link_count
-);
-
-int spider_increase_long_list(
- long **long_list,
- uint *list_length,
- uint link_count
-);
-
-int spider_increase_longlong_list(
- longlong **longlong_list,
- uint *list_length,
- uint link_count
-);
-
-int spider_parse_connect_info(
- SPIDER_SHARE *share,
- TABLE_SHARE *table_share,
+ char *ptr, bool alloc,
+ SPIDER_PARAM_STRING_PARSE *param_string_parse = NULL);
+
+int spider_create_string_list(char ***string_list, uint **string_length_list,
+ uint *list_length, char *str, uint length,
+ SPIDER_PARAM_STRING_PARSE *param_string_parse);
+
+int spider_create_long_list(long **long_list, uint *list_length, char *str,
+ uint length, long min_val, long max_val,
+ SPIDER_PARAM_STRING_PARSE *param_string_parse);
+
+int spider_create_longlong_list(longlong **longlong_list, uint *list_length,
+ char *str, uint length, longlong min_val,
+ longlong max_val,
+ SPIDER_PARAM_STRING_PARSE *param_string_parse);
+
+int spider_increase_string_list(char ***string_list, uint **string_length_list,
+ uint *list_length, uint *list_charlen,
+ uint link_count);
+
+int spider_increase_long_list(long **long_list, uint *list_length,
+ uint link_count);
+
+int spider_increase_longlong_list(longlong **longlong_list, uint *list_length,
+ uint link_count);
+
+int spider_parse_connect_info(SPIDER_SHARE *share, TABLE_SHARE *table_share,
#ifdef WITH_PARTITION_STORAGE_ENGINE
- partition_info *part_info,
+ partition_info *part_info,
#endif
- uint create_table
-);
+ uint create_table);
-int spider_set_connect_info_default(
- SPIDER_SHARE *share,
+int spider_set_connect_info_default(SPIDER_SHARE *share,
#ifdef WITH_PARTITION_STORAGE_ENGINE
- partition_element *part_elem,
- partition_element *sub_elem,
+ partition_element *part_elem,
+ partition_element *sub_elem,
#endif
- TABLE_SHARE *table_share
-);
-
-int spider_set_connect_info_default_db_table(
- SPIDER_SHARE *share,
- const char *db_name,
- uint db_name_length,
- const char *table_name,
- uint table_name_length
-);
-
-int spider_set_connect_info_default_dbtable(
- SPIDER_SHARE *share,
- const char *dbtable_name,
- int dbtable_name_length
-);
+ TABLE_SHARE *table_share);
+
+int spider_set_connect_info_default_db_table(SPIDER_SHARE *share,
+ const char *db_name,
+ uint db_name_length,
+ const char *table_name,
+ uint table_name_length);
+
+int spider_set_connect_info_default_dbtable(SPIDER_SHARE *share,
+ const char *dbtable_name,
+ int dbtable_name_length);
#ifndef DBUG_OFF
-void spider_print_keys(
- const char *key,
- uint length
-);
+void spider_print_keys(const char *key, uint length);
#endif
-int spider_create_conn_keys(
- SPIDER_SHARE *share
-);
+int spider_create_conn_keys(SPIDER_SHARE *share);
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share(
- const char *table_name,
- uint table_name_length,
- my_hash_value_type hash_value,
- bool locked,
- bool need_to_create,
- int *error_num
-);
+ const char *table_name, uint table_name_length,
+ my_hash_value_type hash_value, bool locked, bool need_to_create,
+ int *error_num);
#else
-SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share(
- const char *table_name,
- uint table_name_length,
- bool locked,
- bool need_to_create,
- int *error_num
-);
+SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share(const char *table_name,
+ uint table_name_length,
+ bool locked,
+ bool need_to_create,
+ int *error_num);
#endif
void spider_free_lgtm_tblhnd_share_alloc(
- SPIDER_LGTM_TBLHND_SHARE *lgtm_tblhnd_share,
- bool locked
-);
+ SPIDER_LGTM_TBLHND_SHARE *lgtm_tblhnd_share, bool locked);
-SPIDER_SHARE *spider_create_share(
- const char *table_name,
- TABLE_SHARE *table_share,
+SPIDER_SHARE *spider_create_share(const char *table_name,
+ TABLE_SHARE *table_share,
#ifdef WITH_PARTITION_STORAGE_ENGINE
- partition_info *part_info,
+ partition_info *part_info,
#endif
#ifdef SPIDER_HAS_HASH_VALUE_TYPE
- my_hash_value_type hash_value,
+ my_hash_value_type hash_value,
#endif
- int *error_num
-);
-
-SPIDER_SHARE *spider_get_share(
- const char *table_name,
- TABLE *table,
- THD *thd,
- ha_spider *spider,
- int *error_num
-);
-
-void spider_free_share_resource_only(
- SPIDER_SHARE *share
-);
-
-int spider_free_share(
- SPIDER_SHARE *share
-);
-
-void spider_update_link_status_for_share(
- const char *table_name,
- uint table_name_length,
- int link_idx,
- long link_status
-);
-
-SPIDER_WIDE_SHARE *spider_get_wide_share(
- SPIDER_SHARE *share,
- TABLE_SHARE *table_share,
- int *error_num
-);
-
-int spider_free_wide_share(
- SPIDER_WIDE_SHARE *wide_share
-);
-
-void spider_copy_sts_to_wide_share(
- SPIDER_WIDE_SHARE *wide_share,
- SPIDER_SHARE *share
-);
-
-void spider_copy_sts_to_share(
- SPIDER_SHARE *share,
- SPIDER_WIDE_SHARE *wide_share
-);
-
-void spider_copy_crd_to_wide_share(
- SPIDER_WIDE_SHARE *wide_share,
- SPIDER_SHARE *share,
- int fields
-);
-
-void spider_copy_crd_to_share(
- SPIDER_SHARE *share,
- SPIDER_WIDE_SHARE *wide_share,
- int fields
-);
-
-int spider_open_all_tables(
- SPIDER_TRX *trx,
- bool lock
-);
-
-bool spider_flush_logs(
- handlerton *hton
-);
-
-handler* spider_create_handler(
- handlerton *hton,
- TABLE_SHARE *table,
- MEM_ROOT *mem_root
-);
-
-int spider_close_connection(
- handlerton* hton,
- THD* thd
-);
-
-void spider_drop_database(
- handlerton *hton,
- char* path
-);
-
-bool spider_show_status(
- handlerton *hton,
- THD *thd,
- stat_print_fn *stat_print,
- enum ha_stat_type stat_type
-);
-
-int spider_db_done(
- void *p
-);
-
-int spider_panic(
- handlerton *hton,
- ha_panic_function type
-);
-
-int spider_db_init(
- void *p
-);
-
-char *spider_create_table_name_string(
- const char *table_name,
- const char *part_name,
- const char *sub_name
-);
+ int *error_num);
+
+SPIDER_SHARE *spider_get_share(const char *table_name, TABLE *table, THD *thd,
+ ha_spider *spider, int *error_num);
+
+void spider_free_share_resource_only(SPIDER_SHARE *share);
+
+int spider_free_share(SPIDER_SHARE *share);
+
+void spider_update_link_status_for_share(const char *table_name,
+ uint table_name_length, int link_idx,
+ long link_status);
+
+SPIDER_WIDE_SHARE *spider_get_wide_share(SPIDER_SHARE *share,
+ TABLE_SHARE *table_share,
+ int *error_num);
+
+int spider_free_wide_share(SPIDER_WIDE_SHARE *wide_share);
+
+void spider_copy_sts_to_wide_share(SPIDER_WIDE_SHARE *wide_share,
+ SPIDER_SHARE *share);
+
+void spider_copy_sts_to_share(SPIDER_SHARE *share,
+ SPIDER_WIDE_SHARE *wide_share);
+
+void spider_copy_crd_to_wide_share(SPIDER_WIDE_SHARE *wide_share,
+ SPIDER_SHARE *share, int fields);
+
+void spider_copy_crd_to_share(SPIDER_SHARE *share,
+ SPIDER_WIDE_SHARE *wide_share, int fields);
+
+int spider_open_all_tables(SPIDER_TRX *trx, bool lock);
+
+bool spider_flush_logs(handlerton *hton);
+
+handler *spider_create_handler(handlerton *hton, TABLE_SHARE *table,
+ MEM_ROOT *mem_root);
+
+int spider_close_connection(handlerton *hton, THD *thd);
+
+void spider_drop_database(handlerton *hton, char *path);
+
+bool spider_show_status(handlerton *hton, THD *thd, stat_print_fn *stat_print,
+ enum ha_stat_type stat_type);
+
+int spider_db_done(void *p);
+
+int spider_panic(handlerton *hton, ha_panic_function type);
+
+int spider_db_init(void *p);
+
+char *spider_create_table_name_string(const char *table_name,
+ const char *part_name,
+ const char *sub_name);
#ifdef WITH_PARTITION_STORAGE_ENGINE
-void spider_get_partition_info(
- const char *table_name,
- uint table_name_length,
- const TABLE_SHARE *table_share,
- partition_info *part_info,
- partition_element **part_elem,
- partition_element **sub_elem
-);
+void spider_get_partition_info(const char *table_name, uint table_name_length,
+ const TABLE_SHARE *table_share,
+ partition_info *part_info,
+ partition_element **part_elem,
+ partition_element **sub_elem);
#endif
-int spider_get_sts(
- SPIDER_SHARE *share,
- int link_idx,
- time_t tmp_time,
- ha_spider *spider,
- double sts_interval,
- int sts_mode,
+int spider_get_sts(SPIDER_SHARE *share, int link_idx, time_t tmp_time,
+ ha_spider *spider, double sts_interval, int sts_mode,
#ifdef WITH_PARTITION_STORAGE_ENGINE
- int sts_sync,
+ int sts_sync,
#endif
- int sts_sync_level,
- uint flag
-);
-
-int spider_get_crd(
- SPIDER_SHARE *share,
- int link_idx,
- time_t tmp_time,
- ha_spider *spider,
- TABLE *table,
- double crd_interval,
- int crd_mode,
+ int sts_sync_level, uint flag);
+
+int spider_get_crd(SPIDER_SHARE *share, int link_idx, time_t tmp_time,
+ ha_spider *spider, TABLE *table, double crd_interval,
+ int crd_mode,
#ifdef WITH_PARTITION_STORAGE_ENGINE
- int crd_sync,
+ int crd_sync,
#endif
- int crd_sync_level
-);
+ int crd_sync_level);
-void spider_set_result_list_param(
- ha_spider *spider
-);
+void spider_set_result_list_param(ha_spider *spider);
-SPIDER_INIT_ERROR_TABLE *spider_get_init_error_table(
- SPIDER_TRX *trx,
- SPIDER_SHARE *share,
- bool create
-);
+SPIDER_INIT_ERROR_TABLE *spider_get_init_error_table(SPIDER_TRX *trx,
+ SPIDER_SHARE *share,
+ bool create);
-void spider_delete_init_error_table(
- const char *name
-);
+void spider_delete_init_error_table(const char *name);
-bool spider_check_pk_update(
- TABLE *table
-);
+bool spider_check_pk_update(TABLE *table);
#if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
-bool spider_check_hs_pk_update(
- ha_spider *spider,
- key_range *key
-);
+bool spider_check_hs_pk_update(ha_spider *spider, key_range *key);
#endif
#endif
-void spider_set_tmp_share_pointer(
- SPIDER_SHARE *tmp_share,
- char **tmp_connect_info,
- uint *tmp_connect_info_length,
- long *tmp_long,
- longlong *tmp_longlong
-);
-
-int spider_create_tmp_dbton_share(
- SPIDER_SHARE *tmp_share
-);
-
-void spider_free_tmp_dbton_share(
- SPIDER_SHARE *tmp_share
-);
-
-int spider_create_tmp_dbton_handler(
- ha_spider *tmp_spider
-);
-
-void spider_free_tmp_dbton_handler(
- ha_spider *tmp_spider
-);
-
-TABLE_LIST *spider_get_parent_table_list(
- ha_spider *spider
-);
-List<Index_hint> *spider_get_index_hints(
- ha_spider *spider
- );
-
-st_select_lex *spider_get_select_lex(
- ha_spider *spider
-);
-
-void spider_get_select_limit_from_select_lex(
- st_select_lex *select_lex,
- longlong *select_limit,
- longlong *offset_limit
-);
-
-void spider_get_select_limit(
- ha_spider *spider,
- st_select_lex **select_lex,
- longlong *select_limit,
- longlong *offset_limit
-);
-
-longlong spider_split_read_param(
- ha_spider *spider
-);
-
-longlong spider_bg_split_read_param(
- ha_spider *spider
-);
-
-void spider_first_split_read_param(
- ha_spider *spider
-);
-
-void spider_next_split_read_param(
- ha_spider *spider
-);
-
-bool spider_check_direct_order_limit(
- ha_spider *spider
-);
+void spider_set_tmp_share_pointer(SPIDER_SHARE *tmp_share,
+ char **tmp_connect_info,
+ uint *tmp_connect_info_length, long *tmp_long,
+ longlong *tmp_longlong);
+
+int spider_create_tmp_dbton_share(SPIDER_SHARE *tmp_share);
+
+void spider_free_tmp_dbton_share(SPIDER_SHARE *tmp_share);
+
+int spider_create_tmp_dbton_handler(ha_spider *tmp_spider);
+
+void spider_free_tmp_dbton_handler(ha_spider *tmp_spider);
+
+TABLE_LIST *spider_get_parent_table_list(ha_spider *spider);
+List<Index_hint> *spider_get_index_hints(ha_spider *spider);
+
+st_select_lex *spider_get_select_lex(ha_spider *spider);
+
+void spider_get_select_limit_from_select_lex(st_select_lex *select_lex,
+ longlong *select_limit,
+ longlong *offset_limit);
+
+void spider_get_select_limit(ha_spider *spider, st_select_lex **select_lex,
+ longlong *select_limit, longlong *offset_limit);
+
+longlong spider_split_read_param(ha_spider *spider);
+
+longlong spider_bg_split_read_param(ha_spider *spider);
+
+void spider_first_split_read_param(ha_spider *spider);
+
+void spider_next_split_read_param(ha_spider *spider);
+
+bool spider_check_direct_order_limit(ha_spider *spider);
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
-bool spider_all_part_in_order(
- ORDER *order,
- TABLE *table
-);
-
-Field *spider_field_exchange(
- handler *handler,
- Field *field
-);
+bool spider_all_part_in_order(ORDER *order, TABLE *table);
+
+Field *spider_field_exchange(handler *handler, Field *field);
#endif
-int spider_set_direct_limit_offset(
- ha_spider *spider
-);
+int spider_set_direct_limit_offset(ha_spider *spider);
-bool spider_check_index_merge(
- TABLE *table,
- st_select_lex *select_lex
-);
+bool spider_check_index_merge(TABLE *table, st_select_lex *select_lex);
-int spider_compare_for_sort(
- SPIDER_SORT *a,
- SPIDER_SORT *b
-);
+int spider_compare_for_sort(SPIDER_SORT *a, SPIDER_SORT *b);
-ulong spider_calc_for_sort(
- uint count,
- ...
-);
+ulong spider_calc_for_sort(uint count, ...);
-double spider_rand(
- uint32 rand_source
-);
+double spider_rand(uint32 rand_source);
#ifdef SPIDER_HAS_DISCOVER_TABLE_STRUCTURE
-int spider_discover_table_structure_internal(
- SPIDER_TRX *trx,
- SPIDER_SHARE *spider_share,
- spider_string *str
-);
-
-int spider_discover_table_structure(
- handlerton *hton,
- THD* thd,
- TABLE_SHARE *share,
- HA_CREATE_INFO *info
-);
+int spider_discover_table_structure_internal(SPIDER_TRX *trx,
+ SPIDER_SHARE *spider_share,
+ spider_string *str);
+
+int spider_discover_table_structure(handlerton *hton, THD *thd,
+ TABLE_SHARE *share, HA_CREATE_INFO *info);
#endif
#ifndef WITHOUT_SPIDER_BG_SEARCH
-int spider_create_spider_object_for_share(
- SPIDER_TRX *trx,
- SPIDER_SHARE *share,
- ha_spider **spider
-);
-
-void spider_free_spider_object_for_share(
- ha_spider **spider
-);
-
-int spider_create_sts_threads(
- SPIDER_THREAD *spider_thread
-);
-
-void spider_free_sts_threads(
- SPIDER_THREAD *spider_thread
-);
-
-int spider_create_crd_threads(
- SPIDER_THREAD *spider_thread
-);
-
-void spider_free_crd_threads(
- SPIDER_THREAD *spider_thread
-);
-
-void *spider_table_bg_sts_action(
- void *arg
-);
-
-void *spider_table_bg_crd_action(
- void *arg
-);
-
-void spider_table_add_share_to_sts_thread(
- SPIDER_SHARE *share
-);
-
-void spider_table_add_share_to_crd_thread(
- SPIDER_SHARE *share
-);
-
-void spider_table_remove_share_from_sts_thread(
- SPIDER_SHARE *share
-);
-
-void spider_table_remove_share_from_crd_thread(
- SPIDER_SHARE *share
-);
+int spider_create_spider_object_for_share(SPIDER_TRX *trx, SPIDER_SHARE *share,
+ ha_spider **spider);
+
+void spider_free_spider_object_for_share(ha_spider **spider);
+
+int spider_create_sts_threads(SPIDER_THREAD *spider_thread);
+
+void spider_free_sts_threads(SPIDER_THREAD *spider_thread);
+
+int spider_create_crd_threads(SPIDER_THREAD *spider_thread);
+
+void spider_free_crd_threads(SPIDER_THREAD *spider_thread);
+
+void *spider_table_bg_sts_action(void *arg);
+
+void *spider_table_bg_crd_action(void *arg);
+
+void spider_table_add_share_to_sts_thread(SPIDER_SHARE *share);
+
+void spider_table_add_share_to_crd_thread(SPIDER_SHARE *share);
+
+void spider_table_remove_share_from_sts_thread(SPIDER_SHARE *share);
+
+void spider_table_remove_share_from_crd_thread(SPIDER_SHARE *share);
#endif
-uchar *spider_duplicate_char(
- uchar *dst,
- uchar esc,
- uchar *src,
- uint src_lgt
-);
+uchar *spider_duplicate_char(uchar *dst, uchar esc, uchar *src, uint src_lgt);
diff --git a/storage/spider/spd_trx.h b/storage/spider/spd_trx.h
index 3bf93aada1a..c36bf7b1362 100644
--- a/storage/spider/spd_trx.h
+++ b/storage/spider/spd_trx.h
@@ -12,263 +12,119 @@
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
-);
+ 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
-);
+void spider_free_tmp_thd(THD *thd);
-int spider_create_trx_ha(
- SPIDER_TRX *trx,
- ha_spider *spider,
- SPIDER_TRX_HA *trx_ha
-);
+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
-);
+SPIDER_TRX_HA *spider_check_trx_ha(SPIDER_TRX *trx, ha_spider *spider);
-void spider_free_trx_ha(
- SPIDER_TRX *trx
-);
+void spider_free_trx_ha(SPIDER_TRX *trx);
-void spider_reuse_trx_ha(
- SPIDER_TRX *trx
-);
+void spider_reuse_trx_ha(SPIDER_TRX *trx);
-void spider_trx_set_link_idx_for_all(
- ha_spider *spider
-);
+void spider_trx_set_link_idx_for_all(ha_spider *spider);
-int spider_trx_check_link_idx_failed(
- ha_spider *spider
-);
+int spider_trx_check_link_idx_failed(ha_spider *spider);
#ifdef HA_CAN_BULK_ACCESS
-void spider_trx_add_bulk_access_conn(
- SPIDER_TRX *trx,
- SPIDER_CONN *conn
-);
+void spider_trx_add_bulk_access_conn(SPIDER_TRX *trx, SPIDER_CONN *conn);
#endif
diff --git a/storage/spider/spd_udf.h b/storage/spider/spd_udf.h
index d00a6151894..6e792ae2dec 100644
--- a/storage/spider/spd_udf.h
+++ b/storage/spider/spd_udf.h
@@ -11,69 +11,37 @@
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 */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
+*/
-long long spider_direct_sql_body(
- UDF_INIT *initid,
- UDF_ARGS *args,
- char *is_null,
- char *error,
- my_bool bg
-);
+long long spider_direct_sql_body(UDF_INIT *initid, UDF_ARGS *args,
+ char *is_null, char *error, my_bool bg);
-my_bool spider_direct_sql_init_body(
- UDF_INIT *initid,
- UDF_ARGS *args,
- char *message,
- my_bool bg
-);
+my_bool spider_direct_sql_init_body(UDF_INIT *initid, UDF_ARGS *args,
+ char *message, my_bool bg);
-void spider_direct_sql_deinit_body(
- UDF_INIT *initid
-);
+void spider_direct_sql_deinit_body(UDF_INIT *initid);
#ifndef WITHOUT_SPIDER_BG_SEARCH
-void spider_direct_sql_bg_start(
- UDF_INIT *initid
-);
+void spider_direct_sql_bg_start(UDF_INIT *initid);
-long long spider_direct_sql_bg_end(
- UDF_INIT *initid
-);
+long long spider_direct_sql_bg_end(UDF_INIT *initid);
#endif
-long long spider_ping_table_body(
- UDF_INIT *initid,
- UDF_ARGS *args,
- char *is_null,
- char *error
-);
+long long spider_ping_table_body(UDF_INIT *initid, UDF_ARGS *args,
+ char *is_null, char *error);
-my_bool spider_ping_table_init_body(
- UDF_INIT *initid,
- UDF_ARGS *args,
- char *message
-);
+my_bool spider_ping_table_init_body(UDF_INIT *initid, UDF_ARGS *args,
+ char *message);
-void spider_ping_table_deinit_body(
- UDF_INIT *initid
-);
+void spider_ping_table_deinit_body(UDF_INIT *initid);
long long spider_flush_table_mon_cache_body();
-long long spider_copy_tables_body(
- UDF_INIT *initid,
- UDF_ARGS *args,
- char *is_null,
- char *error
-);
+long long spider_copy_tables_body(UDF_INIT *initid, UDF_ARGS *args,
+ char *is_null, char *error);
-my_bool spider_copy_tables_init_body(
- UDF_INIT *initid,
- UDF_ARGS *args,
- char *message
-);
+my_bool spider_copy_tables_init_body(UDF_INIT *initid, UDF_ARGS *args,
+ char *message);
-void spider_copy_tables_deinit_body(
- UDF_INIT *initid
-);
+void spider_copy_tables_deinit_body(UDF_INIT *initid);