mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-27647 Spider: remove HANDLER_HAS_DIRECT_UPDATE_ROWS
This commit is contained in:
@@ -96,9 +96,7 @@ ha_spider::ha_spider(
|
||||
dml_inited = FALSE;
|
||||
use_pre_call = FALSE;
|
||||
use_pre_action = FALSE;
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
#ifdef HA_CAN_BULK_ACCESS
|
||||
is_bulk_access_clone = FALSE;
|
||||
synced_from_clone_source = FALSE;
|
||||
@@ -181,9 +179,7 @@ ha_spider::ha_spider(
|
||||
dml_inited = FALSE;
|
||||
use_pre_call = FALSE;
|
||||
use_pre_action = FALSE;
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
#ifdef HA_CAN_BULK_ACCESS
|
||||
is_bulk_access_clone = FALSE;
|
||||
synced_from_clone_source = FALSE;
|
||||
@@ -793,22 +789,7 @@ void ha_spider::check_access_kind(
|
||||
wide_handler->sql_command = thd_sql_command(thd);
|
||||
DBUG_PRINT("info",("spider sql_command=%u", wide_handler->sql_command));
|
||||
DBUG_PRINT("info",("spider thd->query_id=%lld", thd->query_id));
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
wide_handler->update_request = FALSE;
|
||||
#else
|
||||
if (
|
||||
wide_handler->sql_command == SQLCOM_UPDATE ||
|
||||
wide_handler->sql_command == SQLCOM_UPDATE_MULTI ||
|
||||
/* for triggers */
|
||||
wide_handler->sql_command == SQLCOM_INSERT ||
|
||||
wide_handler->sql_command == SQLCOM_INSERT_SELECT ||
|
||||
wide_handler->sql_command == SQLCOM_DELETE ||
|
||||
wide_handler->sql_command == SQLCOM_DELETE_MULTI
|
||||
)
|
||||
wide_handler->update_request = TRUE;
|
||||
else
|
||||
wide_handler->update_request = FALSE;
|
||||
#endif
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
@@ -1263,9 +1244,7 @@ int ha_spider::reset()
|
||||
wide_handler->condition = tmp_cond;
|
||||
}
|
||||
wide_handler->cond_check = FALSE;
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
wide_handler->direct_update_fields = NULL;
|
||||
#endif
|
||||
#ifdef INFO_KIND_FORCE_LIMIT_BEGIN
|
||||
wide_handler->info_limit = 9223372036854775807LL;
|
||||
#endif
|
||||
@@ -1343,9 +1322,7 @@ int ha_spider::reset()
|
||||
ft_count = 0;
|
||||
ft_init_without_index_init = FALSE;
|
||||
sql_kinds = 0;
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
prev_index_rnd_init = SPD_NONE;
|
||||
result_list.have_sql_kind_backup = FALSE;
|
||||
result_list.direct_order_limit = FALSE;
|
||||
@@ -1421,11 +1398,9 @@ int ha_spider::extra(
|
||||
case HA_EXTRA_WRITE_CANNOT_REPLACE:
|
||||
wide_handler->write_can_replace = FALSE;
|
||||
break;
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
case HA_EXTRA_INSERT_WITH_UPDATE:
|
||||
wide_handler->insert_with_update = TRUE;
|
||||
break;
|
||||
#endif
|
||||
case HA_EXTRA_ATTACH_CHILDREN:
|
||||
DBUG_PRINT("info",("spider HA_EXTRA_ATTACH_CHILDREN"));
|
||||
if (!(wide_handler->trx = spider_get_trx(ha_thd(), TRUE, &error_num)))
|
||||
@@ -1616,9 +1591,7 @@ int ha_spider::index_read_map_internal(
|
||||
my_error(ER_QUERY_INTERRUPTED, MYF(0));
|
||||
DBUG_RETURN(ER_QUERY_INTERRUPTED);
|
||||
}
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
if (
|
||||
find_flag >= HA_READ_MBR_CONTAIN &&
|
||||
find_flag <= HA_READ_MBR_EQUAL
|
||||
@@ -2088,9 +2061,7 @@ int ha_spider::index_read_last_map_internal(
|
||||
my_error(ER_QUERY_INTERRUPTED, MYF(0));
|
||||
DBUG_RETURN(ER_QUERY_INTERRUPTED);
|
||||
}
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
if ((error_num = index_handler_init()))
|
||||
DBUG_RETURN(check_error_mode_eof(error_num));
|
||||
if (is_clone)
|
||||
@@ -2546,9 +2517,7 @@ int ha_spider::index_first_internal(
|
||||
my_error(ER_QUERY_INTERRUPTED, MYF(0));
|
||||
DBUG_RETURN(ER_QUERY_INTERRUPTED);
|
||||
}
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
if ((error_num = index_handler_init()))
|
||||
DBUG_RETURN(check_error_mode_eof(error_num));
|
||||
if (is_clone)
|
||||
@@ -2920,9 +2889,7 @@ int ha_spider::index_last_internal(
|
||||
my_error(ER_QUERY_INTERRUPTED, MYF(0));
|
||||
DBUG_RETURN(ER_QUERY_INTERRUPTED);
|
||||
}
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
if ((error_num = index_handler_init()))
|
||||
DBUG_RETURN(check_error_mode_eof(error_num));
|
||||
if (is_clone)
|
||||
@@ -3347,9 +3314,7 @@ int ha_spider::read_range_first_internal(
|
||||
my_error(ER_QUERY_INTERRUPTED, MYF(0));
|
||||
DBUG_RETURN(ER_QUERY_INTERRUPTED);
|
||||
}
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
if (
|
||||
start_key &&
|
||||
start_key->flag >= HA_READ_MBR_CONTAIN &&
|
||||
@@ -3935,9 +3900,7 @@ int ha_spider::read_multi_range_first_internal(
|
||||
my_error(ER_QUERY_INTERRUPTED, MYF(0));
|
||||
DBUG_RETURN(ER_QUERY_INTERRUPTED);
|
||||
}
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
if ((error_num = index_handler_init()))
|
||||
DBUG_RETURN(check_error_mode_eof(error_num));
|
||||
if (is_clone)
|
||||
@@ -6809,9 +6772,7 @@ int ha_spider::rnd_next_internal(
|
||||
/* do not copy table data at alter table */
|
||||
if (wide_handler->sql_command == SQLCOM_ALTER_TABLE)
|
||||
DBUG_RETURN(HA_ERR_END_OF_FILE);
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
|
||||
if (rnd_scan_and_first)
|
||||
{
|
||||
@@ -9274,12 +9235,8 @@ int ha_spider::write_row(
|
||||
DBUG_RETURN(check_error_mode(error_num));
|
||||
if (bulk_insert)
|
||||
bulk_size =
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
(wide_handler->insert_with_update &&
|
||||
!result_list.insert_dup_update_pushdown) ||
|
||||
#else
|
||||
wide_handler->insert_with_update ||
|
||||
#endif
|
||||
(!direct_dup_insert && wide_handler->ignore_dup_key) ?
|
||||
0 : spider_param_bulk_size(wide_handler->trx->thd, share->bulk_size);
|
||||
else
|
||||
@@ -9318,7 +9275,6 @@ int ha_spider::pre_write_row(
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
void ha_spider::direct_update_init(
|
||||
THD *thd,
|
||||
bool hs_request
|
||||
@@ -9328,7 +9284,6 @@ void ha_spider::direct_update_init(
|
||||
do_direct_update = TRUE;
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
#endif
|
||||
|
||||
bool ha_spider::start_bulk_update(
|
||||
) {
|
||||
@@ -9424,9 +9379,7 @@ int ha_spider::update_row(
|
||||
#ifndef SPIDER_WITHOUT_HA_STATISTIC_INCREMENT
|
||||
ha_statistic_increment(&SSV::ha_update_count);
|
||||
#endif
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
if ((error_num = spider_db_update(this, table, old_data)))
|
||||
DBUG_RETURN(check_error_mode(error_num));
|
||||
if (table->found_next_number_field &&
|
||||
@@ -9470,7 +9423,6 @@ int ha_spider::update_row(
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
bool ha_spider::check_direct_update_sql_part(
|
||||
st_select_lex *select_lex,
|
||||
longlong select_limit,
|
||||
@@ -10006,7 +9958,6 @@ int ha_spider::pre_direct_update_rows()
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
bool ha_spider::start_bulk_delete(
|
||||
) {
|
||||
@@ -10056,15 +10007,12 @@ int ha_spider::delete_row(
|
||||
#ifndef SPIDER_WITHOUT_HA_STATISTIC_INCREMENT
|
||||
ha_statistic_increment(&SSV::ha_delete_count);
|
||||
#endif
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
if ((error_num = spider_db_delete(this, table, buf)))
|
||||
DBUG_RETURN(check_error_mode(error_num));
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
bool ha_spider::check_direct_delete_sql_part(
|
||||
st_select_lex *select_lex,
|
||||
longlong select_limit,
|
||||
@@ -10451,7 +10399,6 @@ int ha_spider::pre_direct_delete_rows()
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
int ha_spider::delete_all_rows()
|
||||
{
|
||||
@@ -10480,9 +10427,7 @@ int ha_spider::truncate()
|
||||
{
|
||||
DBUG_RETURN(error_num);
|
||||
}
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
do_direct_update = FALSE;
|
||||
#endif
|
||||
sql_kinds = SPIDER_SQL_KIND_SQL;
|
||||
for (roop_count = 0; roop_count < (int) share->link_count; roop_count++)
|
||||
sql_kind[roop_count] = SPIDER_SQL_KIND_SQL;
|
||||
@@ -11453,8 +11398,6 @@ int ha_spider::info_push(
|
||||
#endif
|
||||
#ifdef HA_CAN_BULK_ACCESS
|
||||
if (
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
#endif
|
||||
info_type != INFO_KIND_BULK_ACCESS_BEGIN &&
|
||||
info_type != INFO_KIND_BULK_ACCESS_CURRENT &&
|
||||
info_type != INFO_KIND_BULK_ACCESS_END
|
||||
@@ -11476,10 +11419,8 @@ int ha_spider::info_push(
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(HANDLER_HAS_DIRECT_UPDATE_ROWS) || defined(HA_CAN_BULK_ACCESS)
|
||||
switch (info_type)
|
||||
{
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
#ifdef INFO_KIND_UPDATE_FIELDS
|
||||
case INFO_KIND_UPDATE_FIELDS:
|
||||
DBUG_PRINT("info",("spider INFO_KIND_UPDATE_FIELDS"));
|
||||
@@ -11507,7 +11448,6 @@ int ha_spider::info_push(
|
||||
wide_handler->info_limit = 9223372036854775807LL;
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
#ifdef HA_CAN_BULK_ACCESS
|
||||
case INFO_KIND_BULK_ACCESS_BEGIN:
|
||||
DBUG_PRINT("info",("spider INFO_KIND_BULK_ACCESS_BEGIN"));
|
||||
@@ -11570,7 +11510,6 @@ int ha_spider::info_push(
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
DBUG_RETURN(error_num);
|
||||
}
|
||||
|
||||
@@ -12379,9 +12318,7 @@ int ha_spider::index_handler_init()
|
||||
roop_end = search_link_idx + 1;
|
||||
}
|
||||
sql_kinds = 0;
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
direct_update_kinds = 0;
|
||||
#endif
|
||||
for (roop_count = roop_start; roop_count < roop_end;
|
||||
roop_count = spider_conn_link_idx_next(share->link_statuses,
|
||||
conn_link_idx, roop_count, share->link_count,
|
||||
@@ -12467,9 +12404,7 @@ int ha_spider::rnd_handler_init()
|
||||
roop_end = search_link_idx + 1;
|
||||
}
|
||||
sql_kinds = 0;
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
direct_update_kinds = 0;
|
||||
#endif
|
||||
for (roop_count = roop_start; roop_count < roop_end;
|
||||
roop_count = spider_conn_link_idx_next(share->link_statuses,
|
||||
conn_link_idx, roop_count, share->link_count,
|
||||
@@ -12695,7 +12630,6 @@ void ha_spider::check_pre_call(
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
void ha_spider::check_insert_dup_update_pushdown()
|
||||
{
|
||||
THD *thd = wide_handler->trx->thd;
|
||||
@@ -12714,7 +12648,6 @@ void ha_spider::check_insert_dup_update_pushdown()
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HA_CAN_BULK_ACCESS
|
||||
SPIDER_BULK_ACCESS_LINK *ha_spider::create_bulk_access_link()
|
||||
@@ -12848,8 +12781,6 @@ int ha_spider::sync_from_clone_source(
|
||||
external_lock_cnt = spider->external_lock_cnt;
|
||||
}
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
#endif
|
||||
DBUG_PRINT("info",("spider bulk_access_link->spider->dbton_handler=%p",
|
||||
dbton_handler));
|
||||
DBUG_PRINT("info",("spider ptr bulk_access_link->spider->dbton_handler=%p",
|
||||
@@ -13132,7 +13063,6 @@ int ha_spider::append_update_set_sql_part()
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
int ha_spider::append_direct_update_set_sql_part()
|
||||
{
|
||||
int error_num;
|
||||
@@ -13153,9 +13083,7 @@ int ha_spider::append_direct_update_set_sql_part()
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
int ha_spider::append_dup_update_pushdown_sql_part(
|
||||
const char *alias,
|
||||
uint alias_length
|
||||
@@ -13221,7 +13149,6 @@ int ha_spider::check_update_columns_sql_part()
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
#endif
|
||||
|
||||
int ha_spider::append_delete_sql_part()
|
||||
{
|
||||
@@ -15030,12 +14957,10 @@ int ha_spider::dml_init()
|
||||
conns[roop_count]->semi_trx_isolation = -1;
|
||||
}
|
||||
}
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
if (wide_handler->insert_with_update)
|
||||
{
|
||||
check_insert_dup_update_pushdown();
|
||||
}
|
||||
#endif
|
||||
dml_inited = TRUE;
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
@@ -175,10 +175,8 @@ public:
|
||||
corresponding m_handler_cid is t00003
|
||||
*/
|
||||
char **m_handler_cid;
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
bool do_direct_update;
|
||||
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;
|
||||
@@ -494,12 +492,10 @@ public:
|
||||
uchar *buf
|
||||
);
|
||||
#endif
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
void direct_update_init(
|
||||
THD *thd,
|
||||
bool hs_request
|
||||
);
|
||||
#endif
|
||||
bool start_bulk_update() override;
|
||||
int exec_bulk_update(
|
||||
ha_rows *dup_key_found
|
||||
@@ -526,7 +522,6 @@ public:
|
||||
uchar *new_data
|
||||
);
|
||||
#endif
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
bool check_direct_update_sql_part(
|
||||
st_select_lex *select_lex,
|
||||
longlong select_limit,
|
||||
@@ -648,14 +643,12 @@ public:
|
||||
#else
|
||||
int pre_direct_update_rows();
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
bool start_bulk_delete() override;
|
||||
int end_bulk_delete() override;
|
||||
int delete_row(
|
||||
const uchar *buf
|
||||
) override;
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
bool check_direct_delete_sql_part(
|
||||
st_select_lex *select_lex,
|
||||
longlong select_limit,
|
||||
@@ -724,7 +717,6 @@ public:
|
||||
#else
|
||||
int pre_direct_delete_rows();
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
int delete_all_rows() override;
|
||||
int truncate() override;
|
||||
@@ -895,9 +887,7 @@ public:
|
||||
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(
|
||||
@@ -926,10 +916,7 @@ public:
|
||||
int append_insert_sql_part();
|
||||
int append_update_sql_part();
|
||||
int append_update_set_sql_part();
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
int append_direct_update_set_sql_part();
|
||||
#endif
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
int append_dup_update_pushdown_sql_part(
|
||||
const char *alias,
|
||||
uint alias_length
|
||||
@@ -939,7 +926,6 @@ public:
|
||||
uint alias_length
|
||||
);
|
||||
int check_update_columns_sql_part();
|
||||
#endif
|
||||
int append_delete_sql_part();
|
||||
int append_select_sql_part(
|
||||
ulong sql_type
|
||||
|
@@ -4100,7 +4100,6 @@ bool spider_conn_use_handler(
|
||||
DBUG_PRINT("info",("spider use_handler=%d", use_handler));
|
||||
DBUG_PRINT("info",("spider spider->conn_kind[link_idx]=%u",
|
||||
spider->conn_kind[link_idx]));
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
if (spider->do_direct_update)
|
||||
{
|
||||
spider->sql_kinds |= SPIDER_SQL_KIND_SQL;
|
||||
@@ -4109,7 +4108,6 @@ bool spider_conn_use_handler(
|
||||
DBUG_PRINT("info",("spider FALSE by using direct_update"));
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
#endif
|
||||
if (spider->use_spatial_index)
|
||||
{
|
||||
DBUG_PRINT("info",("spider FALSE by use_spatial_index"));
|
||||
|
@@ -6908,7 +6908,6 @@ int spider_db_update(
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
|
||||
int spider_db_direct_update(
|
||||
ha_spider *spider,
|
||||
@@ -6956,17 +6955,14 @@ int spider_db_direct_update(
|
||||
(spider->direct_update_kinds & SPIDER_SQL_KIND_HS)
|
||||
*/
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
if (!spider->do_direct_update)
|
||||
{
|
||||
#endif
|
||||
if (
|
||||
(spider->sql_kinds & SPIDER_SQL_KIND_SQL) &&
|
||||
(error_num = spider->append_update_set_sql_part())
|
||||
) {
|
||||
DBUG_RETURN(error_num);
|
||||
}
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
} else {
|
||||
if (
|
||||
(spider->direct_update_kinds & SPIDER_SQL_KIND_SQL) &&
|
||||
@@ -6975,7 +6971,6 @@ int spider_db_direct_update(
|
||||
DBUG_RETURN(error_num);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
result_list->desc_flg = FALSE;
|
||||
result_list->sorted = TRUE;
|
||||
@@ -7171,17 +7166,14 @@ int spider_db_direct_update(
|
||||
spider->wide_handler->direct_update_fields
|
||||
*/
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
if (!spider->do_direct_update)
|
||||
{
|
||||
#endif
|
||||
if (
|
||||
(spider->sql_kinds & SPIDER_SQL_KIND_SQL) &&
|
||||
(error_num = spider->append_update_set_sql_part())
|
||||
) {
|
||||
DBUG_RETURN(error_num);
|
||||
}
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
} else {
|
||||
if (
|
||||
(spider->direct_update_kinds & SPIDER_SQL_KIND_SQL) &&
|
||||
@@ -7190,7 +7182,6 @@ int spider_db_direct_update(
|
||||
DBUG_RETURN(error_num);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
result_list->desc_flg = FALSE;
|
||||
result_list->sorted = TRUE;
|
||||
@@ -7351,7 +7342,6 @@ int spider_db_direct_update(
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HA_CAN_BULK_ACCESS
|
||||
int spider_db_bulk_direct_update(
|
||||
@@ -7491,7 +7481,6 @@ int spider_db_delete(
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS_WITH_HS
|
||||
int spider_db_direct_delete(
|
||||
ha_spider *spider,
|
||||
@@ -7858,7 +7847,6 @@ int spider_db_direct_delete(
|
||||
DBUG_RETURN(error_num2);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
int spider_db_delete_all_rows(
|
||||
ha_spider *spider
|
||||
@@ -9506,7 +9494,6 @@ int spider_db_append_condition(
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
int spider_db_append_update_columns(
|
||||
ha_spider *spider,
|
||||
spider_string *str,
|
||||
@@ -9561,7 +9548,6 @@ int spider_db_append_update_columns(
|
||||
str->length(str->length() - SPIDER_SQL_COMMA_LEN);
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
|
||||
bool spider_db_check_select_colum_in_group(
|
||||
|
@@ -799,7 +799,6 @@ int spider_db_update(
|
||||
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,
|
||||
@@ -817,7 +816,6 @@ int spider_db_direct_update(
|
||||
ha_rows *found_rows
|
||||
);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HA_CAN_BULK_ACCESS
|
||||
int spider_db_bulk_direct_update(
|
||||
@@ -838,7 +836,6 @@ int spider_db_delete(
|
||||
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,
|
||||
@@ -854,7 +851,6 @@ int spider_db_direct_delete(
|
||||
ha_rows *delete_rows
|
||||
);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
int spider_db_delete_all_rows(
|
||||
ha_spider *spider
|
||||
@@ -1056,7 +1052,6 @@ int spider_db_append_condition(
|
||||
bool test_flg
|
||||
);
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
int spider_db_append_update_columns(
|
||||
ha_spider *spider,
|
||||
spider_string *str,
|
||||
@@ -1066,7 +1061,6 @@ int spider_db_append_update_columns(
|
||||
bool use_fields,
|
||||
spider_fields *fields
|
||||
);
|
||||
#endif
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_AGGREGATE
|
||||
bool spider_db_check_select_colum_in_group(
|
||||
|
@@ -154,7 +154,6 @@ int spider_db_handler::checksum_table(
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
bool spider_db_handler::check_direct_update(
|
||||
st_select_lex *select_lex,
|
||||
longlong select_limit,
|
||||
@@ -188,4 +187,3 @@ bool spider_db_handler::check_direct_delete(
|
||||
}
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
#endif
|
||||
|
@@ -1188,7 +1188,6 @@ public:
|
||||
virtual int append_update_part() = 0;
|
||||
virtual int append_delete_part() = 0;
|
||||
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,
|
||||
@@ -1199,7 +1198,6 @@ public:
|
||||
uint alias_length
|
||||
) = 0;
|
||||
virtual int check_update_columns_part() = 0;
|
||||
#endif
|
||||
virtual int append_select_part(
|
||||
ulong sql_type
|
||||
) = 0;
|
||||
@@ -1591,7 +1589,6 @@ public:
|
||||
ulong sql_type
|
||||
) = 0;
|
||||
#endif
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
virtual bool check_direct_update(
|
||||
st_select_lex *select_lex,
|
||||
longlong select_limit,
|
||||
@@ -1602,7 +1599,6 @@ public:
|
||||
longlong select_limit,
|
||||
longlong offset_limit
|
||||
);
|
||||
#endif
|
||||
};
|
||||
|
||||
class spider_db_copy_table
|
||||
|
@@ -9167,11 +9167,7 @@ int spider_mbase_handler::append_insert(
|
||||
spider->wide_handler->ignore_dup_key &&
|
||||
spider->direct_dup_insert &&
|
||||
!spider->wide_handler->write_can_replace &&
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
(!spider->wide_handler->insert_with_update || !dup_update_sql.length()) &&
|
||||
#else
|
||||
!spider->wide_handler->insert_with_update &&
|
||||
#endif
|
||||
/* for direct_dup_insert without patch for partition */
|
||||
spider->wide_handler->sql_command != SQLCOM_REPLACE &&
|
||||
spider->wide_handler->sql_command != SQLCOM_REPLACE_SELECT
|
||||
@@ -9329,7 +9325,6 @@ int spider_mbase_handler::append_update_set(
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
int spider_mbase_handler::append_direct_update_set_part()
|
||||
{
|
||||
int error_num;
|
||||
@@ -9406,7 +9401,6 @@ int spider_mbase_handler::append_update_columns(
|
||||
alias, alias_length, dbton_id, FALSE, NULL);
|
||||
DBUG_RETURN(error_num);
|
||||
}
|
||||
#endif
|
||||
|
||||
int spider_mbase_handler::append_select_part(
|
||||
ulong sql_type
|
||||
@@ -15721,7 +15715,6 @@ int spider_mbase_handler::append_order_by(
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
bool spider_mbase_handler::check_direct_update(
|
||||
st_select_lex *select_lex,
|
||||
longlong select_limit,
|
||||
@@ -15741,7 +15734,6 @@ bool spider_mbase_handler::check_direct_delete(
|
||||
DBUG_PRINT("info",("spider this=%p", this));
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
#endif
|
||||
|
||||
spider_mbase_copy_table::spider_mbase_copy_table(
|
||||
spider_mbase_share *db_share
|
||||
|
@@ -858,7 +858,6 @@ public:
|
||||
int append_update_set(
|
||||
spider_string *str
|
||||
);
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
int append_direct_update_set_part() override;
|
||||
int append_direct_update_set(
|
||||
spider_string *str
|
||||
@@ -877,7 +876,6 @@ public:
|
||||
const char *alias,
|
||||
uint alias_length
|
||||
);
|
||||
#endif
|
||||
int append_select_part(
|
||||
ulong sql_type
|
||||
) override;
|
||||
@@ -1555,7 +1553,6 @@ public:
|
||||
spider_fields *fields
|
||||
);
|
||||
#endif
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
bool check_direct_update(
|
||||
st_select_lex *select_lex,
|
||||
longlong select_limit,
|
||||
@@ -1566,7 +1563,6 @@ public:
|
||||
longlong select_limit,
|
||||
longlong offset_limit
|
||||
) override;
|
||||
#endif
|
||||
};
|
||||
|
||||
class spider_mysql_handler: public spider_mbase_handler
|
||||
|
@@ -6329,7 +6329,6 @@ int spider_oracle_handler::append_update_set(
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
int spider_oracle_handler::append_direct_update_set_part()
|
||||
{
|
||||
int error_num;
|
||||
@@ -6446,7 +6445,6 @@ int spider_oracle_handler::append_update_columns(
|
||||
DBUG_RETURN(error_num);
|
||||
*/
|
||||
}
|
||||
#endif
|
||||
|
||||
int spider_oracle_handler::append_select_part(
|
||||
ulong sql_type
|
||||
|
@@ -743,7 +743,6 @@ public:
|
||||
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
|
||||
@@ -762,7 +761,6 @@ public:
|
||||
const char *alias,
|
||||
uint alias_length
|
||||
);
|
||||
#endif
|
||||
int append_select_part(
|
||||
ulong sql_type
|
||||
);
|
||||
|
@@ -25,7 +25,6 @@
|
||||
#define SPIDER_SUPPORT_CREATE_OR_REPLACE_TABLE
|
||||
|
||||
#define HANDLER_HAS_TOP_TABLE_FIELDS
|
||||
#define HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
#define HANDLER_HAS_DIRECT_AGGREGATE
|
||||
#define PARTITION_HAS_GET_PART_SPEC
|
||||
#define HANDLER_HAS_NEED_INFO_FOR_AUTO_INC
|
||||
|
@@ -1033,10 +1033,8 @@ static int spider_prepare_init_scan(
|
||||
for (link_idx = 0; link_idx < (int) share->link_count; ++link_idx)
|
||||
spider->sql_kind[link_idx] = SPIDER_SQL_KIND_SQL;
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
spider->do_direct_update = FALSE;
|
||||
spider->direct_update_kinds = 0;
|
||||
#endif
|
||||
spider_get_select_limit(spider, &select_lex, &select_limit, &offset_limit);
|
||||
direct_order_limit = spider_param_direct_order_limit(thd,
|
||||
share->direct_order_limit);
|
||||
|
@@ -880,10 +880,8 @@ typedef struct st_spider_wide_handler
|
||||
#ifdef WITH_PARTITION_STORAGE_ENGINE
|
||||
SPIDER_PARTITION_HANDLER *partition_handler;
|
||||
#endif
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
List<Item> *direct_update_fields;
|
||||
List<Item> *direct_update_values;
|
||||
#endif
|
||||
TABLE_SHARE *top_share;
|
||||
enum thr_lock_type lock_type;
|
||||
uchar lock_table_type;
|
||||
@@ -892,11 +890,9 @@ typedef struct st_spider_wide_handler
|
||||
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;
|
||||
#endif
|
||||
#endif
|
||||
#ifdef HA_CAN_BULK_ACCESS
|
||||
ulonglong external_lock_cnt;
|
||||
#endif
|
||||
|
@@ -109,7 +109,6 @@ extern volatile ulonglong spider_mon_table_cache_version_req;
|
||||
MYSQL_SYSVAR_NAME(param_name).def_val; \
|
||||
}
|
||||
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
static int spider_direct_update(THD *thd, SHOW_VAR *var, void *,
|
||||
system_status_var *, enum_var_type)
|
||||
{
|
||||
@@ -133,7 +132,6 @@ static int spider_direct_delete(THD *thd, SHOW_VAR *var, void *,
|
||||
var->value = (char *) &trx->direct_delete_count;
|
||||
DBUG_RETURN(error_num);
|
||||
}
|
||||
#endif
|
||||
|
||||
static int spider_direct_order_limit(THD *thd, SHOW_VAR *var, void *,
|
||||
system_status_var *, enum_var_type)
|
||||
@@ -178,7 +176,6 @@ struct st_mysql_show_var spider_status_variables[] =
|
||||
(char *) &spider_mon_table_cache_version, SHOW_LONGLONG},
|
||||
{"Spider_mon_table_cache_version_req",
|
||||
(char *) &spider_mon_table_cache_version_req, SHOW_LONGLONG},
|
||||
#ifdef HANDLER_HAS_DIRECT_UPDATE_ROWS
|
||||
#ifdef SPIDER_HAS_SHOW_SIMPLE_FUNC
|
||||
{"Spider_direct_update", (char *) &spider_direct_update, SHOW_SIMPLE_FUNC},
|
||||
{"Spider_direct_delete", (char *) &spider_direct_delete, SHOW_SIMPLE_FUNC},
|
||||
@@ -186,7 +183,6 @@ struct st_mysql_show_var spider_status_variables[] =
|
||||
{"Spider_direct_update", (char *) &spider_direct_update, SHOW_FUNC},
|
||||
{"Spider_direct_delete", (char *) &spider_direct_delete, SHOW_FUNC},
|
||||
#endif
|
||||
#endif
|
||||
#ifdef SPIDER_HAS_SHOW_SIMPLE_FUNC
|
||||
{"Spider_direct_order_limit",
|
||||
(char *) &spider_direct_order_limit, SHOW_SIMPLE_FUNC},
|
||||
|
Reference in New Issue
Block a user