You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
MCOL-3672 Fix regression in deletes
Deletes appear to only use the direct delete path. This allows that to happen.
This commit is contained in:
@ -360,14 +360,14 @@ int ha_mcs::direct_update_rows_init(List<Item> *update_fields)
|
|||||||
int ha_mcs::direct_update_rows(ha_rows *update_rows)
|
int ha_mcs::direct_update_rows(ha_rows *update_rows)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("ha_mcs::direct_update_rows");
|
DBUG_ENTER("ha_mcs::direct_update_rows");
|
||||||
int rc = ha_mcs_impl_direct_update_delete_rows(update_rows);
|
int rc = ha_mcs_impl_direct_update_delete_rows(false, update_rows);
|
||||||
DBUG_RETURN(rc);
|
DBUG_RETURN(rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ha_mcs::direct_update_rows(ha_rows *update_rows, ha_rows *found_rows)
|
int ha_mcs::direct_update_rows(ha_rows *update_rows, ha_rows *found_rows)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("ha_mcs::direct_update_rows");
|
DBUG_ENTER("ha_mcs::direct_update_rows");
|
||||||
int rc = ha_mcs_impl_direct_update_delete_rows(update_rows);
|
int rc = ha_mcs_impl_direct_update_delete_rows(false, update_rows);
|
||||||
*found_rows = *update_rows;
|
*found_rows = *update_rows;
|
||||||
DBUG_RETURN(rc);
|
DBUG_RETURN(rc);
|
||||||
}
|
}
|
||||||
@ -381,7 +381,7 @@ int ha_mcs::direct_delete_rows_init()
|
|||||||
int ha_mcs::direct_delete_rows(ha_rows *deleted_rows)
|
int ha_mcs::direct_delete_rows(ha_rows *deleted_rows)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("ha_mcs::direct_delete_rows");
|
DBUG_ENTER("ha_mcs::direct_delete_rows");
|
||||||
int rc = ha_mcs_impl_direct_update_delete_rows(deleted_rows);
|
int rc = ha_mcs_impl_direct_update_delete_rows(true, deleted_rows);
|
||||||
DBUG_RETURN(rc);
|
DBUG_RETURN(rc);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
@ -2281,12 +2281,18 @@ int ha_mcs_impl_discover_existence(const char* schema, const char* name)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ha_mcs_impl_direct_update_delete_rows(ha_rows *affected_rows)
|
int ha_mcs_impl_direct_update_delete_rows(bool execute, ha_rows *affected_rows)
|
||||||
{
|
{
|
||||||
THD* thd = current_thd;
|
THD* thd = current_thd;
|
||||||
|
int rc = 0;
|
||||||
cal_impl_if::gp_walk_info gwi;
|
cal_impl_if::gp_walk_info gwi;
|
||||||
gwi.thd = thd;
|
gwi.thd = thd;
|
||||||
|
|
||||||
|
if (execute)
|
||||||
|
{
|
||||||
|
rc = doUpdateDelete(thd, gwi);
|
||||||
|
}
|
||||||
|
|
||||||
cal_connection_info* ci = reinterpret_cast<cal_connection_info*>(get_fe_conn_info_ptr());
|
cal_connection_info* ci = reinterpret_cast<cal_connection_info*>(get_fe_conn_info_ptr());
|
||||||
if (ci)
|
if (ci)
|
||||||
{
|
{
|
||||||
|
@ -42,7 +42,7 @@ extern int ha_mcs_impl_close_connection (handlerton* hton, THD* thd);
|
|||||||
extern COND* ha_mcs_impl_cond_push(COND* cond, TABLE* table);
|
extern COND* ha_mcs_impl_cond_push(COND* cond, TABLE* table);
|
||||||
extern int ha_mcs_impl_external_lock(THD* thd, TABLE* table, int lock_type);
|
extern int ha_mcs_impl_external_lock(THD* thd, TABLE* table, int lock_type);
|
||||||
extern int ha_mcs_impl_update_row();
|
extern int ha_mcs_impl_update_row();
|
||||||
extern int ha_mcs_impl_direct_update_delete_rows(ha_rows *affected_rows);
|
extern int ha_mcs_impl_direct_update_delete_rows(bool execute, ha_rows *affected_rows);
|
||||||
extern int ha_mcs_impl_delete_row();
|
extern int ha_mcs_impl_delete_row();
|
||||||
extern int ha_mcs_impl_rnd_pos(uchar* buf, uchar* pos);
|
extern int ha_mcs_impl_rnd_pos(uchar* buf, uchar* pos);
|
||||||
extern int ha_cs_impl_pushdown_init(mcs_handler_info* handler_info, TABLE* table);
|
extern int ha_cs_impl_pushdown_init(mcs_handler_info* handler_info, TABLE* table);
|
||||||
|
Reference in New Issue
Block a user