1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-27256 Delete spider_use_handler and related code (3/3)

Fix indentation and format code (mostly done by clang-format-diff).
This commit is contained in:
Nayuta Yanagisawa
2022-05-10 22:26:36 +09:00
parent 57d233e2a6
commit 978eb616ca
5 changed files with 230 additions and 311 deletions

View File

@@ -482,7 +482,7 @@ error_wide_handler_alloc:
int ha_spider::close() int ha_spider::close()
{ {
int error_num = 0, roop_count; int error_num= 0, roop_count;
THD *thd = ha_thd(); THD *thd = ha_thd();
backup_error_status(); backup_error_status();
DBUG_ENTER("ha_spider::close"); DBUG_ENTER("ha_spider::close");
@@ -1253,8 +1253,7 @@ int ha_spider::index_init(
set_select_column_mode(); set_select_column_mode();
} }
if ((error_num = reset_sql_sql( if ((error_num= reset_sql_sql(SPIDER_SQL_TYPE_SELECT_SQL)))
SPIDER_SQL_TYPE_SELECT_SQL)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
result_list.check_direct_order_limit = FALSE; result_list.check_direct_order_limit = FALSE;
prev_index_rnd_init = SPD_INDEX; prev_index_rnd_init = SPD_INDEX;
@@ -1324,8 +1323,7 @@ int ha_spider::index_read_map_internal(
start_key.key = key; start_key.key = key;
start_key.keypart_map = keypart_map; start_key.keypart_map = keypart_map;
start_key.flag = find_flag; start_key.flag = find_flag;
if ((error_num = reset_sql_sql( if ((error_num= reset_sql_sql(SPIDER_SQL_TYPE_SELECT_SQL)))
SPIDER_SQL_TYPE_SELECT_SQL)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
if ((error_num = spider_set_conn_bg_param(this))) if ((error_num = spider_set_conn_bg_param(this)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
@@ -1457,10 +1455,8 @@ int ha_spider::index_read_map_internal(
} }
} else { } else {
ulong sql_type; ulong sql_type;
conn = conns[roop_count]; conn= conns[roop_count];
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL;
}
spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id]; spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type)) if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type))
@@ -1688,8 +1684,7 @@ int ha_spider::index_read_last_map_internal(
start_key.key = key; start_key.key = key;
start_key.keypart_map = keypart_map; start_key.keypart_map = keypart_map;
start_key.flag = HA_READ_KEY_EXACT; start_key.flag = HA_READ_KEY_EXACT;
if ((error_num = reset_sql_sql( if ((error_num= reset_sql_sql(SPIDER_SQL_TYPE_SELECT_SQL)))
SPIDER_SQL_TYPE_SELECT_SQL)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
if ((error_num = spider_set_conn_bg_param(this))) if ((error_num = spider_set_conn_bg_param(this)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
@@ -1809,10 +1804,8 @@ int ha_spider::index_read_last_map_internal(
} }
} else { } else {
ulong sql_type; ulong sql_type;
conn = conns[roop_count]; conn= conns[roop_count];
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL;
}
spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id]; spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type)) if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type))
@@ -2077,16 +2070,14 @@ int ha_spider::index_first_internal(
pt_clone_source_handler)); pt_clone_source_handler));
pt_clone_source_handler->pt_clone_last_searcher = this; pt_clone_source_handler->pt_clone_last_searcher = this;
} }
if ( if (sql_is_empty(SPIDER_SQL_TYPE_SELECT_SQL))
sql_is_empty(SPIDER_SQL_TYPE_SELECT_SQL) {
) { /*
/*
spider_db_free_one_result_for_start_next(this); spider_db_free_one_result_for_start_next(this);
*/ */
if ((error_num = spider_db_free_result(this, FALSE))) if ((error_num = spider_db_free_result(this, FALSE)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
if ((error_num = reset_sql_sql( if ((error_num= reset_sql_sql(SPIDER_SQL_TYPE_SELECT_SQL)))
SPIDER_SQL_TYPE_SELECT_SQL)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
check_direct_order_limit(); check_direct_order_limit();
@@ -2209,10 +2200,8 @@ int ha_spider::index_first_internal(
} }
} else { } else {
ulong sql_type; ulong sql_type;
conn = conns[roop_count]; conn= conns[roop_count];
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL;
}
spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id]; spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type)) if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type))
@@ -2425,16 +2414,14 @@ int ha_spider::index_last_internal(
pt_clone_source_handler)); pt_clone_source_handler));
pt_clone_source_handler->pt_clone_last_searcher = this; pt_clone_source_handler->pt_clone_last_searcher = this;
} }
if ( if (sql_is_empty(SPIDER_SQL_TYPE_SELECT_SQL))
sql_is_empty(SPIDER_SQL_TYPE_SELECT_SQL) {
) { /*
/*
spider_db_free_one_result_for_start_next(this); spider_db_free_one_result_for_start_next(this);
*/ */
if ((error_num = spider_db_free_result(this, FALSE))) if ((error_num = spider_db_free_result(this, FALSE)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
if ((error_num = reset_sql_sql( if ((error_num= reset_sql_sql(SPIDER_SQL_TYPE_SELECT_SQL)))
SPIDER_SQL_TYPE_SELECT_SQL)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
check_direct_order_limit(); check_direct_order_limit();
@@ -2557,10 +2544,8 @@ int ha_spider::index_last_internal(
} }
} else { } else {
ulong sql_type; ulong sql_type;
conn = conns[roop_count]; conn= conns[roop_count];
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL;
}
spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id]; spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type)) if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type))
@@ -2827,8 +2812,7 @@ int ha_spider::read_range_first_internal(
} }
spider_db_free_one_result_for_start_next(this); spider_db_free_one_result_for_start_next(this);
check_direct_order_limit(); check_direct_order_limit();
if ((error_num = reset_sql_sql( if ((error_num= reset_sql_sql(SPIDER_SQL_TYPE_SELECT_SQL)))
SPIDER_SQL_TYPE_SELECT_SQL)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
if ((error_num = spider_set_conn_bg_param(this))) if ((error_num = spider_set_conn_bg_param(this)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
@@ -2949,10 +2933,8 @@ int ha_spider::read_range_first_internal(
} }
} else { } else {
ulong sql_type; ulong sql_type;
conn = conns[roop_count]; conn= conns[roop_count];
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL;
}
spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id]; spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type)) if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type))
@@ -3363,16 +3345,13 @@ int ha_spider::multi_range_read_next_first(
DBUG_PRINT("info",("spider result_list.finish_flg = FALSE")); DBUG_PRINT("info",("spider result_list.finish_flg = FALSE"));
result_list.finish_flg = FALSE; result_list.finish_flg = FALSE;
result_list.record_num = 0; result_list.record_num = 0;
if ((error_num = reset_sql_sql( if ((error_num= reset_sql_sql(SPIDER_SQL_TYPE_SELECT_SQL)))
SPIDER_SQL_TYPE_SELECT_SQL)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
result_list.desc_flg = FALSE; result_list.desc_flg = FALSE;
result_list.sorted = mrr_is_output_sorted; result_list.sorted = mrr_is_output_sorted;
result_list.key_info = &table->key_info[active_index]; result_list.key_info = &table->key_info[active_index];
if ( if (multi_range_num == 1 || result_list.multi_split_read <= 1)
multi_range_num == 1 || {
result_list.multi_split_read <= 1
) {
if (wide_handler->keyread) if (wide_handler->keyread)
result_list.keyread = TRUE; result_list.keyread = TRUE;
else else
@@ -3489,10 +3468,8 @@ int ha_spider::multi_range_read_next_first(
} }
} else { } else {
ulong sql_type; ulong sql_type;
conn = conns[roop_count]; conn= conns[roop_count];
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL;
}
spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id]; spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type)) if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type))
@@ -4119,10 +4096,8 @@ int ha_spider::multi_range_read_next_first(
} }
} else { } else {
ulong sql_type; ulong sql_type;
conn = conns[roop_count]; conn= conns[roop_count];
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL | SPIDER_SQL_TYPE_TMP_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL | SPIDER_SQL_TYPE_TMP_SQL;
}
spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id]; spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type)) if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type))
@@ -4396,8 +4371,7 @@ int ha_spider::multi_range_read_next_first(
DBUG_RETURN(check_error_mode_eof(0)); DBUG_RETURN(check_error_mode_eof(0));
} }
multi_range_cnt = 0; multi_range_cnt = 0;
if ((error_num = reset_sql_sql( if ((error_num= reset_sql_sql(SPIDER_SQL_TYPE_SELECT_SQL)))
SPIDER_SQL_TYPE_SELECT_SQL)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
} while (!error_num); } while (!error_num);
} }
@@ -4470,10 +4444,8 @@ int ha_spider::multi_range_read_next_next(
pt_clone_source_handler)); pt_clone_source_handler));
pt_clone_source_handler->pt_clone_last_searcher = this; pt_clone_source_handler->pt_clone_last_searcher = this;
} }
if ( if (multi_range_num == 1 || result_list.multi_split_read <= 1)
multi_range_num == 1 || {
result_list.multi_split_read <= 1
) {
if (!(error_num = spider_db_seek_next(table->record[0], this, if (!(error_num = spider_db_seek_next(table->record[0], this,
search_link_idx, table))) search_link_idx, table)))
{ {
@@ -4607,10 +4579,8 @@ int ha_spider::multi_range_read_next_next(
} }
} else { } else {
ulong sql_type; ulong sql_type;
conn = conns[roop_count]; conn= conns[roop_count];
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL;
}
spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id]; spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type)) if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type))
@@ -4882,8 +4852,7 @@ int ha_spider::multi_range_read_next_next(
} }
result_list.record_num = 0; result_list.record_num = 0;
if ((error_num = reset_sql_sql( if ((error_num= reset_sql_sql(SPIDER_SQL_TYPE_SELECT_SQL)))
SPIDER_SQL_TYPE_SELECT_SQL)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
bool tmp_high_priority = wide_handler->high_priority; bool tmp_high_priority = wide_handler->high_priority;
@@ -5231,10 +5200,8 @@ int ha_spider::multi_range_read_next_next(
} }
} else { } else {
ulong sql_type; ulong sql_type;
conn = conns[roop_count]; conn= conns[roop_count];
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL | SPIDER_SQL_TYPE_TMP_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL | SPIDER_SQL_TYPE_TMP_SQL;
}
spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id]; spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type)) if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type))
@@ -5506,8 +5473,7 @@ int ha_spider::multi_range_read_next_next(
DBUG_RETURN(check_error_mode_eof(0)); DBUG_RETURN(check_error_mode_eof(0));
} }
multi_range_cnt = 0; multi_range_cnt = 0;
if ((error_num = reset_sql_sql( if ((error_num= reset_sql_sql(SPIDER_SQL_TYPE_SELECT_SQL)))
SPIDER_SQL_TYPE_SELECT_SQL)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
} while (!error_num); } while (!error_num);
} }
@@ -5612,8 +5578,7 @@ int ha_spider::rnd_init(
result_list.keyread = FALSE; result_list.keyread = FALSE;
init_rnd_handler = FALSE; init_rnd_handler = FALSE;
if ((error_num = reset_sql_sql( if ((error_num= reset_sql_sql(SPIDER_SQL_TYPE_SELECT_SQL)))
SPIDER_SQL_TYPE_SELECT_SQL)))
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
result_list.check_direct_order_limit = FALSE; result_list.check_direct_order_limit = FALSE;
} }
@@ -5815,9 +5780,7 @@ int ha_spider::rnd_next_internal(
} else { } else {
SPIDER_CONN *conn = conns[roop_count]; SPIDER_CONN *conn = conns[roop_count];
ulong sql_type; ulong sql_type;
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL;
}
spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id]; spider_db_handler *dbton_hdl = dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type)) if (dbton_hdl->need_lock_before_set_sql_for_exec(sql_type))
@@ -8342,9 +8305,8 @@ int ha_spider::direct_update_rows(
table_share->db.str, table_share->table_name.str); table_share->db.str, table_share->table_name.str);
DBUG_RETURN(ER_SPIDER_READ_ONLY_NUM); DBUG_RETURN(ER_SPIDER_READ_ONLY_NUM);
} }
if ( if ((error_num=
(error_num = spider_db_direct_update(this, table, update_rows, found_rows)) spider_db_direct_update(this, table, update_rows, found_rows)))
)
DBUG_RETURN(check_error_mode(error_num)); DBUG_RETURN(check_error_mode(error_num));
DBUG_RETURN(0); DBUG_RETURN(0);
@@ -8486,9 +8448,7 @@ int ha_spider::direct_delete_rows(
table_share->db.str, table_share->table_name.str); table_share->db.str, table_share->table_name.str);
DBUG_RETURN(ER_SPIDER_READ_ONLY_NUM); DBUG_RETURN(ER_SPIDER_READ_ONLY_NUM);
} }
if ( if ((error_num= spider_db_direct_delete(this, table, delete_rows)))
(error_num = spider_db_direct_delete(this, table, delete_rows))
)
DBUG_RETURN(check_error_mode(error_num)); DBUG_RETURN(check_error_mode(error_num));
DBUG_RETURN(0); DBUG_RETURN(0);

View File

@@ -2516,9 +2516,7 @@ void *spider_bg_conn_action(
!result_list->bgs_current->result !result_list->bgs_current->result
) { ) {
ulong sql_type; ulong sql_type;
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL | SPIDER_SQL_TYPE_TMP_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL | SPIDER_SQL_TYPE_TMP_SQL;
}
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
if (dbton_handler->need_lock_before_set_sql_for_exec(sql_type)) if (dbton_handler->need_lock_before_set_sql_for_exec(sql_type))
{ {

View File

@@ -1688,10 +1688,8 @@ int spider_db_append_key_where_internal(
) { ) {
if (error_num > 0) if (error_num > 0)
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
if ( if (!set_order && start_key->flag != HA_READ_KEY_EXACT)
!set_order && {
start_key->flag != HA_READ_KEY_EXACT
) {
result_list->key_order = key_count; result_list->key_order = key_count;
set_order = TRUE; set_order = TRUE;
} }
@@ -1712,88 +1710,82 @@ int spider_db_append_key_where_internal(
} }
} else { } else {
DBUG_PRINT("info", ("spider start_key->flag=%d", start_key->flag)); DBUG_PRINT("info", ("spider start_key->flag=%d", start_key->flag));
const char *op_str;
uint32 op_len;
switch (start_key->flag) switch (start_key->flag)
{ {
case HA_READ_PREFIX_LAST: case HA_READ_PREFIX_LAST:
result_list->desc_flg = TRUE; result_list->desc_flg = TRUE;
/* fall through */ /* fall through */
case HA_READ_KEY_EXACT: case HA_READ_KEY_EXACT:
{
if (str->reserve(store_length + key_name_length + if (str->reserve(store_length + key_name_length +
/* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 +
SPIDER_SQL_EQUAL_LEN)) SPIDER_SQL_EQUAL_LEN))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
dbton_share->append_column_name(str, field->field_index); dbton_share->append_column_name(str, field->field_index);
str->q_append(SPIDER_SQL_EQUAL_STR, SPIDER_SQL_EQUAL_LEN); str->q_append(SPIDER_SQL_EQUAL_STR, SPIDER_SQL_EQUAL_LEN);
if (spider_dbton[dbton_id].db_util-> if (spider_dbton[dbton_id].db_util->append_column_value(
append_column_value(spider, str, field, ptr, spider, str, field, ptr, share->access_charset))
share->access_charset))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
}
break; break;
case HA_READ_AFTER_KEY: case HA_READ_AFTER_KEY:
if (start_key_part_map == 1)
{ {
const char* op_str; op_str= rev ? SPIDER_SQL_LT_STR : SPIDER_SQL_GT_STR;
uint32 op_len; op_len= rev ? SPIDER_SQL_LT_LEN : SPIDER_SQL_GT_LEN;
if (start_key_part_map == 1) { }
op_str = rev ? SPIDER_SQL_LT_STR : SPIDER_SQL_GT_STR; else
op_len = rev ? SPIDER_SQL_LT_LEN : SPIDER_SQL_GT_LEN; {
} else { op_str= rev ? SPIDER_SQL_LTEQUAL_STR : SPIDER_SQL_GTEQUAL_STR;
op_str = rev ? SPIDER_SQL_LTEQUAL_STR : SPIDER_SQL_GTEQUAL_STR; op_len= rev ? SPIDER_SQL_LTEQUAL_LEN : SPIDER_SQL_GTEQUAL_LEN;
op_len = rev ? SPIDER_SQL_LTEQUAL_LEN : SPIDER_SQL_GTEQUAL_LEN;
} }
if (str->reserve(store_length + key_name_length + if (str->reserve(store_length + key_name_length +
/* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + op_len)) /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + op_len))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
dbton_share->append_column_name(str, field->field_index); dbton_share->append_column_name(str, field->field_index);
str->q_append(op_str, op_len); str->q_append(op_str, op_len);
if (spider_dbton[dbton_id].db_util-> if (spider_dbton[dbton_id].db_util->append_column_value(
append_column_value(spider, str, field, ptr, spider, str, field, ptr, share->access_charset))
share->access_charset))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
if (use_both) if (use_both)
start_key_part_map = 0; start_key_part_map= 0;
if (!set_order) if (!set_order)
{ {
result_list->key_order = key_count; result_list->key_order= key_count;
set_order = TRUE; set_order= TRUE;
}
} }
break; break;
case HA_READ_BEFORE_KEY: case HA_READ_BEFORE_KEY:
result_list->desc_flg = TRUE; result_list->desc_flg = TRUE;
if (start_key_part_map == 1)
{ {
const char* op_str; op_str= rev ? SPIDER_SQL_GT_STR : SPIDER_SQL_LT_STR;
uint32 op_len; op_len= rev ? SPIDER_SQL_GT_LEN : SPIDER_SQL_LT_LEN;
if (start_key_part_map == 1) { }
op_str = rev ? SPIDER_SQL_GT_STR : SPIDER_SQL_LT_STR; else
op_len = rev ? SPIDER_SQL_GT_LEN : SPIDER_SQL_LT_LEN; {
} else { op_str= rev ? SPIDER_SQL_GTEQUAL_STR : SPIDER_SQL_LTEQUAL_STR;
op_str = rev ? SPIDER_SQL_GTEQUAL_STR : SPIDER_SQL_LTEQUAL_STR; op_len= rev ? SPIDER_SQL_GTEQUAL_LEN : SPIDER_SQL_LTEQUAL_LEN;
op_len = rev ? SPIDER_SQL_GTEQUAL_LEN : SPIDER_SQL_LTEQUAL_LEN;
} }
if (str->reserve(store_length + key_name_length + if (str->reserve(store_length + key_name_length +
/* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + op_len)) /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + op_len))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
dbton_share->append_column_name(str, field->field_index); dbton_share->append_column_name(str, field->field_index);
str->q_append(op_str, op_len); str->q_append(op_str, op_len);
if (spider_dbton[dbton_id].db_util-> if (spider_dbton[dbton_id].db_util->append_column_value(
append_column_value(spider, str, field, ptr, spider, str, field, ptr, share->access_charset))
share->access_charset))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
if (use_both) if (use_both)
start_key_part_map = 0; start_key_part_map= 0;
if (!set_order) if (!set_order)
{ {
result_list->key_order = key_count; result_list->key_order= key_count;
set_order = TRUE; set_order= TRUE;
}
} }
break; break;
case HA_READ_KEY_OR_PREV: case HA_READ_KEY_OR_PREV:
case HA_READ_PREFIX_LAST_OR_PREV: case HA_READ_PREFIX_LAST_OR_PREV:
result_list->desc_flg = TRUE; result_list->desc_flg = TRUE;
{
if (str->reserve(store_length + key_name_length + if (str->reserve(store_length + key_name_length +
/* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 +
SPIDER_SQL_LTEQUAL_LEN)) SPIDER_SQL_LTEQUAL_LEN))
@@ -1803,15 +1795,13 @@ int spider_db_append_key_where_internal(
str->q_append(SPIDER_SQL_GTEQUAL_STR, SPIDER_SQL_GTEQUAL_LEN); str->q_append(SPIDER_SQL_GTEQUAL_STR, SPIDER_SQL_GTEQUAL_LEN);
else else
str->q_append(SPIDER_SQL_LTEQUAL_STR, SPIDER_SQL_LTEQUAL_LEN); str->q_append(SPIDER_SQL_LTEQUAL_STR, SPIDER_SQL_LTEQUAL_LEN);
if (spider_dbton[dbton_id].db_util-> if (spider_dbton[dbton_id].db_util->append_column_value(
append_column_value(spider, str, field, ptr, spider, str, field, ptr, share->access_charset))
share->access_charset))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
if (!set_order) if (!set_order)
{ {
result_list->key_order = key_count; result_list->key_order= key_count;
set_order = TRUE; set_order= TRUE;
}
} }
break; break;
case HA_READ_MBR_CONTAIN: case HA_READ_MBR_CONTAIN:
@@ -1904,7 +1894,6 @@ int spider_db_append_key_where_internal(
SPIDER_SQL_CLOSE_PAREN_LEN); SPIDER_SQL_CLOSE_PAREN_LEN);
break; break;
default: default:
{
if (str->reserve(store_length + key_name_length + if (str->reserve(store_length + key_name_length +
/* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 +
SPIDER_SQL_GTEQUAL_LEN)) SPIDER_SQL_GTEQUAL_LEN))
@@ -1914,25 +1903,20 @@ int spider_db_append_key_where_internal(
str->q_append(SPIDER_SQL_LTEQUAL_STR, SPIDER_SQL_LTEQUAL_LEN); str->q_append(SPIDER_SQL_LTEQUAL_STR, SPIDER_SQL_LTEQUAL_LEN);
else else
str->q_append(SPIDER_SQL_GTEQUAL_STR, SPIDER_SQL_GTEQUAL_LEN); str->q_append(SPIDER_SQL_GTEQUAL_STR, SPIDER_SQL_GTEQUAL_LEN);
if (spider_dbton[dbton_id].db_util-> if (spider_dbton[dbton_id].db_util->append_column_value(
append_column_value(spider, str, field, ptr, spider, str, field, ptr, share->access_charset))
share->access_charset))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
if (!set_order) if (!set_order)
{ {
result_list->key_order = key_count; result_list->key_order= key_count;
set_order = TRUE; set_order= TRUE;
}
} }
break; break;
} }
} }
{
if (str->reserve(SPIDER_SQL_AND_LEN)) if (str->reserve(SPIDER_SQL_AND_LEN))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
str->q_append(SPIDER_SQL_AND_STR, str->q_append(SPIDER_SQL_AND_STR, SPIDER_SQL_AND_LEN);
SPIDER_SQL_AND_LEN);
}
} }
if ( if (
@@ -1946,63 +1930,57 @@ int spider_db_append_key_where_internal(
{ {
if (error_num > 0) if (error_num > 0)
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
if ( if (!set_order && end_key->flag != HA_READ_KEY_EXACT)
!set_order && {
end_key->flag != HA_READ_KEY_EXACT
) {
result_list->key_order = key_count; result_list->key_order = key_count;
set_order = TRUE; set_order = TRUE;
} }
} else if (key_eq) } else if (key_eq)
{ {
DBUG_PRINT("info", ("spider key_eq")); DBUG_PRINT("info", ("spider key_eq"));
{
if (str->reserve(store_length + key_name_length + if (str->reserve(store_length + key_name_length +
/* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 +
SPIDER_SQL_EQUAL_LEN + SPIDER_SQL_AND_LEN)) SPIDER_SQL_EQUAL_LEN + SPIDER_SQL_AND_LEN))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
dbton_share->append_column_name(str, field->field_index); dbton_share->append_column_name(str, field->field_index);
str->q_append(SPIDER_SQL_EQUAL_STR, SPIDER_SQL_EQUAL_LEN); str->q_append(SPIDER_SQL_EQUAL_STR, SPIDER_SQL_EQUAL_LEN);
if (spider_dbton[dbton_id].db_util-> if (spider_dbton[dbton_id].db_util->append_column_value(
append_column_value(spider, str, field, ptr, spider, str, field, ptr, share->access_charset))
share->access_charset))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
}
} else { } else {
DBUG_PRINT("info", ("spider end_key->flag=%d", end_key->flag)); DBUG_PRINT("info", ("spider end_key->flag=%d", end_key->flag));
switch (end_key->flag) switch (end_key->flag)
{ {
case HA_READ_BEFORE_KEY: case HA_READ_BEFORE_KEY:
{ const char *op_str;
const char* op_str;
uint32 op_len; uint32 op_len;
if (end_key_part_map == 1) { if (end_key_part_map == 1)
op_str = rev ? SPIDER_SQL_GT_STR : SPIDER_SQL_LT_STR; {
op_len = rev ? SPIDER_SQL_GT_LEN : SPIDER_SQL_LT_LEN; op_str= rev ? SPIDER_SQL_GT_STR : SPIDER_SQL_LT_STR;
} else { op_len= rev ? SPIDER_SQL_GT_LEN : SPIDER_SQL_LT_LEN;
op_str = rev ? SPIDER_SQL_GTEQUAL_STR : SPIDER_SQL_LTEQUAL_STR; }
op_len = rev ? SPIDER_SQL_GTEQUAL_LEN : SPIDER_SQL_LTEQUAL_LEN; else
{
op_str= rev ? SPIDER_SQL_GTEQUAL_STR : SPIDER_SQL_LTEQUAL_STR;
op_len= rev ? SPIDER_SQL_GTEQUAL_LEN : SPIDER_SQL_LTEQUAL_LEN;
} }
if (str->reserve(store_length + key_name_length + if (str->reserve(store_length + key_name_length +
/* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + op_len)) /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + op_len))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
dbton_share->append_column_name(str, field->field_index); dbton_share->append_column_name(str, field->field_index);
str->q_append(op_str, op_len); str->q_append(op_str, op_len);
if (spider_dbton[dbton_id].db_util-> if (spider_dbton[dbton_id].db_util->append_column_value(
append_column_value(spider, str, field, ptr, spider, str, field, ptr, share->access_charset))
share->access_charset))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
if (use_both) if (use_both)
end_key_part_map = 0; end_key_part_map= 0;
if (!set_order) if (!set_order)
{ {
result_list->key_order = key_count; result_list->key_order= key_count;
set_order = TRUE; set_order= TRUE;
}
} }
break; break;
default: default:
{
if (str->reserve(store_length + key_name_length + if (str->reserve(store_length + key_name_length +
/* SPIDER_SQL_NAME_QUOTE_LEN */ 2 + /* SPIDER_SQL_NAME_QUOTE_LEN */ 2 +
SPIDER_SQL_LTEQUAL_LEN)) SPIDER_SQL_LTEQUAL_LEN))
@@ -2012,15 +1990,13 @@ int spider_db_append_key_where_internal(
str->q_append(SPIDER_SQL_GTEQUAL_STR, SPIDER_SQL_GTEQUAL_LEN); str->q_append(SPIDER_SQL_GTEQUAL_STR, SPIDER_SQL_GTEQUAL_LEN);
else else
str->q_append(SPIDER_SQL_LTEQUAL_STR, SPIDER_SQL_LTEQUAL_LEN); str->q_append(SPIDER_SQL_LTEQUAL_STR, SPIDER_SQL_LTEQUAL_LEN);
if (spider_dbton[dbton_id].db_util-> if (spider_dbton[dbton_id].db_util->append_column_value(
append_column_value(spider, str, field, ptr, spider, str, field, ptr, share->access_charset))
share->access_charset))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
if (!set_order) if (!set_order)
{ {
result_list->key_order = key_count; result_list->key_order= key_count;
set_order = TRUE; set_order= TRUE;
}
} }
break; break;
} }
@@ -2028,8 +2004,7 @@ int spider_db_append_key_where_internal(
{ {
if (str->reserve(SPIDER_SQL_AND_LEN)) if (str->reserve(SPIDER_SQL_AND_LEN))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
str->q_append(SPIDER_SQL_AND_STR, str->q_append(SPIDER_SQL_AND_STR, SPIDER_SQL_AND_LEN);
SPIDER_SQL_AND_LEN);
} }
} }
if (use_both && (!start_key_part_map || !end_key_part_map)) if (use_both && (!start_key_part_map || !end_key_part_map))
@@ -4265,10 +4240,8 @@ int spider_db_seek_next(
SPIDER_LINK_STATUS_RECOVERY) SPIDER_LINK_STATUS_RECOVERY)
) { ) {
ulong sql_type; ulong sql_type;
conn = spider->conns[roop_count]; conn= spider->conns[roop_count];
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL;
}
spider_db_handler *dbton_handler = spider_db_handler *dbton_handler =
spider->dbton_handler[conn->dbton_id]; spider->dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
@@ -4531,9 +4504,7 @@ int spider_db_seek_last(
SPIDER_LINK_STATUS_RECOVERY) SPIDER_LINK_STATUS_RECOVERY)
) { ) {
ulong sql_type; ulong sql_type;
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL;
}
conn = spider->conns[roop_count]; conn = spider->conns[roop_count];
spider_db_handler *dbton_handler = spider->dbton_handler[conn->dbton_id]; spider_db_handler *dbton_handler = spider->dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
@@ -4739,9 +4710,7 @@ int spider_db_seek_last(
SPIDER_LINK_STATUS_RECOVERY) SPIDER_LINK_STATUS_RECOVERY)
) { ) {
ulong sql_type; ulong sql_type;
{ sql_type= SPIDER_SQL_TYPE_SELECT_SQL;
sql_type = SPIDER_SQL_TYPE_SELECT_SQL;
}
conn = spider->conns[roop_count]; conn = spider->conns[roop_count];
spider_db_handler *dbton_handler = spider->dbton_handler[conn->dbton_id]; spider_db_handler *dbton_handler = spider->dbton_handler[conn->dbton_id];
pthread_mutex_assert_not_owner(&conn->mta_conn_mutex); pthread_mutex_assert_not_owner(&conn->mta_conn_mutex);
@@ -5572,12 +5541,9 @@ int spider_db_bulk_insert(
spider_conn_set_timeout_from_share(conn, roop_count2, spider_conn_set_timeout_from_share(conn, roop_count2,
spider->wide_handler->trx->thd, spider->wide_handler->trx->thd,
share); share);
if (dbton_handler->execute_sql( if (dbton_handler->execute_sql(sql_type, conn, -1,
sql_type, &spider->need_mons[roop_count2]))
conn, {
-1,
&spider->need_mons[roop_count2])
) {
spider->set_insert_to_pos_sql(SPIDER_SQL_TYPE_INSERT_SQL); spider->set_insert_to_pos_sql(SPIDER_SQL_TYPE_INSERT_SQL);
error_num = spider_db_errorno(conn); error_num = spider_db_errorno(conn);
if (error_num == HA_ERR_FOUND_DUPP_KEY) if (error_num == HA_ERR_FOUND_DUPP_KEY)
@@ -5642,7 +5608,7 @@ int spider_db_bulk_insert(
DBUG_ASSERT(!conn->mta_conn_mutex_lock_already); DBUG_ASSERT(!conn->mta_conn_mutex_lock_already);
DBUG_ASSERT(!conn->mta_conn_mutex_unlock_later); DBUG_ASSERT(!conn->mta_conn_mutex_unlock_later);
conn->mta_conn_mutex_lock_already = TRUE; conn->mta_conn_mutex_lock_already = TRUE;
conn->mta_conn_mutex_unlock_later = TRUE; conn->mta_conn_mutex_unlock_later= TRUE;
spider->set_insert_to_pos_sql(SPIDER_SQL_TYPE_INSERT_SQL); spider->set_insert_to_pos_sql(SPIDER_SQL_TYPE_INSERT_SQL);
if (table->next_number_field && if (table->next_number_field &&
( (
@@ -6252,15 +6218,13 @@ int spider_db_direct_update(
if (!spider->do_direct_update) if (!spider->do_direct_update)
{ {
if ( if ((error_num= spider->append_update_set_sql_part()))
(error_num = spider->append_update_set_sql_part()) {
) {
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
} }
} else { } else {
if ( if ((error_num= spider->append_direct_update_set_sql_part()))
(error_num = spider->append_direct_update_set_sql_part()) {
) {
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
} }
} }

View File

@@ -9757,9 +9757,8 @@ int spider_mbase_handler::append_direct_update_set(
spider_string *str spider_string *str
) { ) {
DBUG_ENTER("spider_mbase_handler::append_direct_update_set"); DBUG_ENTER("spider_mbase_handler::append_direct_update_set");
if ( if (spider->wide_handler->direct_update_fields)
spider->wide_handler->direct_update_fields {
) {
if (str->reserve(SPIDER_SQL_SET_LEN)) if (str->reserve(SPIDER_SQL_SET_LEN))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
str->q_append(SPIDER_SQL_SET_STR, SPIDER_SQL_SET_LEN); str->q_append(SPIDER_SQL_SET_STR, SPIDER_SQL_SET_LEN);
@@ -10882,12 +10881,11 @@ int spider_mbase_handler::append_where_terminator(
) { ) {
SPIDER_RESULT_LIST *result_list = &spider->result_list; SPIDER_RESULT_LIST *result_list = &spider->result_list;
DBUG_ENTER("spider_mbase_handler::append_where_terminator"); DBUG_ENTER("spider_mbase_handler::append_where_terminator");
DBUG_PRINT("info",("spider this=%p", this)); DBUG_PRINT("info", ("spider this=%p", this));
{
str->length(str->length() - SPIDER_SQL_AND_LEN); str->length(str->length() - SPIDER_SQL_AND_LEN);
if (!set_order) if (!set_order)
result_list->key_order = key_count; result_list->key_order= key_count;
}
DBUG_RETURN(0); DBUG_RETURN(0);
} }
@@ -12447,20 +12445,19 @@ int spider_mbase_handler::append_from(
DBUG_ENTER("spider_mbase_handler::append_from"); DBUG_ENTER("spider_mbase_handler::append_from");
DBUG_PRINT("info",("spider this=%p", this)); DBUG_PRINT("info",("spider this=%p", this));
DBUG_PRINT("info",("spider link_idx=%d", link_idx)); DBUG_PRINT("info",("spider link_idx=%d", link_idx));
int error_num = 0; int error_num= 0;
{
if (str->reserve(SPIDER_SQL_FROM_LEN + mysql_share->db_nm_max_length + if (str->reserve(SPIDER_SQL_FROM_LEN + mysql_share->db_nm_max_length +
SPIDER_SQL_DOT_LEN + mysql_share->table_nm_max_length + SPIDER_SQL_DOT_LEN + mysql_share->table_nm_max_length +
/* SPIDER_SQL_NAME_QUOTE_LEN */ 4 + SPIDER_SQL_OPEN_PAREN_LEN)) /* SPIDER_SQL_NAME_QUOTE_LEN */ 4 +
SPIDER_SQL_OPEN_PAREN_LEN))
DBUG_RETURN(HA_ERR_OUT_OF_MEM); DBUG_RETURN(HA_ERR_OUT_OF_MEM);
str->q_append(SPIDER_SQL_FROM_STR, SPIDER_SQL_FROM_LEN); str->q_append(SPIDER_SQL_FROM_STR, SPIDER_SQL_FROM_LEN);
table_name_pos = str->length(); table_name_pos= str->length();
append_table_name_with_adjusting(str, link_idx, sql_type); append_table_name_with_adjusting(str, link_idx, sql_type);
if(spider_param_index_hint_pushdown(spider->wide_handler->trx->thd)) if (spider_param_index_hint_pushdown(spider->wide_handler->trx->thd))
{ {
DBUG_RETURN(error_num); DBUG_RETURN(error_num);
} }
}
DBUG_RETURN(0); DBUG_RETURN(0);
} }

View File

@@ -3585,7 +3585,7 @@ int spider_check_trx_and_get_conn(
*spider->conn_keys[0] = first_byte; *spider->conn_keys[0] = first_byte;
for (roop_count = 0; roop_count < (int) share->link_count; roop_count++) for (roop_count = 0; roop_count < (int) share->link_count; roop_count++)
{ {
spider->conns[roop_count] = NULL; spider->conns[roop_count]= NULL;
} }
bool search_link_idx_is_checked = FALSE; bool search_link_idx_is_checked = FALSE;
for ( for (