1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00

Merge pull request #1467 from drrtuy/MCOL-4278-dev

MCOL-4278 MCS quits early from rnd_end() in the presense of sql_selec…
This commit is contained in:
David.Hall
2020-09-24 10:11:08 -05:00
committed by GitHub
3 changed files with 9 additions and 20 deletions

View File

@ -2702,7 +2702,6 @@ int ha_mcs_impl_rnd_next(uchar* buf, TABLE* table)
if (get_fe_conn_info_ptr() == nullptr)
set_fe_conn_info_ptr((void*)new cal_connection_info());
// @bug 3078
if (thd->killed == KILL_QUERY || thd->killed == KILL_QUERY_HARD)
{
force_close_fep_conn(thd, ci);
@ -2804,11 +2803,7 @@ int ha_mcs_impl_rnd_end(TABLE* table, bool is_pushdown_hand)
ci = reinterpret_cast<cal_connection_info*>(get_fe_conn_info_ptr());
}
// @bug 3078. Also session limit variable works the same as ctrl+c
if (thd->killed == KILL_QUERY || thd->killed == KILL_QUERY_HARD ||
((thd->lex)->sql_command != SQLCOM_INSERT &&
(thd->lex)->sql_command != SQLCOM_INSERT_SELECT &&
thd->variables.select_limit != (uint64_t) - 1))
if (thd->killed == KILL_QUERY || thd->killed == KILL_QUERY_HARD)
{
force_close_fep_conn(thd, ci);
// clear querystats because no query stats available for cancelled query
@ -4672,7 +4667,6 @@ int ha_mcs_impl_group_by_next(TABLE* table)
thd->lex->sql_command == SQLCOM_LOAD))
return 0;
// @bug 3078
if (thd->killed == KILL_QUERY || thd->killed == KILL_QUERY_HARD)
{
force_close_fep_conn(thd, ci);
@ -4767,11 +4761,7 @@ int ha_mcs_impl_group_by_end(TABLE* table)
ci = reinterpret_cast<cal_connection_info*>(get_fe_conn_info_ptr());
}
// @bug 3078. Also session limit variable works the same as ctrl+c
if (thd->killed == KILL_QUERY || thd->killed == KILL_QUERY_HARD ||
((thd->lex)->sql_command != SQLCOM_INSERT &&
(thd->lex)->sql_command != SQLCOM_INSERT_SELECT &&
thd->variables.select_limit != (uint64_t) - 1))
if (thd->killed == KILL_QUERY || thd->killed == KILL_QUERY_HARD)
{
force_close_fep_conn(thd, ci);
// clear querystats because no query stats available for cancelled query
@ -4912,7 +4902,7 @@ int ha_mcs_impl_group_by_end(TABLE* table)
* RETURN:
* rc as int
***********************************************************/
int ha_cs_impl_pushdown_init(mcs_handler_info* handler_info, TABLE* table)
int ha_mcs_impl_pushdown_init(mcs_handler_info* handler_info, TABLE* table)
{
IDEBUG( cout << "pushdown_init for table " << endl );
THD* thd = current_thd;
@ -5364,7 +5354,7 @@ internal_error:
return ER_INTERNAL_ERROR;
}
int ha_cs_impl_select_next(uchar* buf, TABLE* table)
int ha_mcs_impl_select_next(uchar* buf, TABLE* table)
{
int rc = HA_ERR_END_OF_FILE;
THD* thd = current_thd;
@ -5394,7 +5384,6 @@ int ha_cs_impl_select_next(uchar* buf, TABLE* table)
// if (MIGR::infinidb_vtable.impossibleWhereOnUnion)
// return HA_ERR_END_OF_FILE;
// @bug 3078
if (thd->killed == KILL_QUERY || thd->killed == KILL_QUERY_HARD)
{
force_close_fep_conn(thd, ci);

View File

@ -43,8 +43,8 @@ extern int ha_mcs_impl_update_row();
extern int ha_mcs_impl_direct_update_delete_rows(bool execute, ha_rows *affected_rows, const std::vector<COND*>& condStack);
extern int ha_mcs_impl_delete_row();
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_select_next(uchar *buf, TABLE *table);
extern int ha_mcs_impl_pushdown_init(mcs_handler_info* handler_info, TABLE* table);
extern int ha_mcs_impl_select_next(uchar *buf, TABLE *table);
extern int ha_mcs_impl_group_by_init(mcs_handler_info *handler_info, TABLE* table);
extern int ha_mcs_impl_group_by_next(TABLE* table);
extern int ha_mcs_impl_group_by_end(TABLE* table);

View File

@ -603,7 +603,7 @@ int ha_columnstore_derived_handler::init_scan()
mcs_handler_info mhi = mcs_handler_info(reinterpret_cast<void*>(this), DERIVED);
// this::table is the place for the result set
int rc = ha_cs_impl_pushdown_init(&mhi, table);
int rc = ha_mcs_impl_pushdown_init(&mhi, table);
DBUG_RETURN(rc);
}
@ -923,7 +923,7 @@ int ha_columnstore_select_handler::init_scan()
{
mcs_handler_info mhi= mcs_handler_info(
reinterpret_cast<void*>(this), SELECT);
rc= ha_cs_impl_pushdown_init(&mhi, this->table);
rc= ha_mcs_impl_pushdown_init(&mhi, this->table);
}
}
else
@ -950,7 +950,7 @@ int ha_columnstore_select_handler::next_row()
{
DBUG_ENTER("ha_columnstore_select_handler::next_row");
int rc= ha_cs_impl_select_next(table->record[0], table);
int rc= ha_mcs_impl_select_next(table->record[0], table);
DBUG_RETURN(rc);
}