Fix some problems in aggregate pushdown to decoder.

This commit is contained in:
XIAO-HOU
2024-06-17 22:33:28 +00:00
committed by ob-robot
parent 2c96a67376
commit 91f7fea875
2 changed files with 2 additions and 2 deletions

View File

@ -719,7 +719,7 @@ int ObIntegerColumnDecoder::get_aggregate_result(
ret = OB_INVALID_ARGUMENT;
LOG_WARN("Invalid arguments to get aggregate result", KR(ret), KP(row_ids), K(row_cap));
} else {
const bool is_reverse = row_cap > 1 && row_ids[2] < row_ids[1];
const bool is_reverse = row_cap > 1 && row_ids[1] < row_ids[0];
int64_t row_id_start = is_reverse ? row_ids[row_cap - 1] : row_ids[0];
if (integer_ctx.has_null_bitmap()) {
if (OB_FAIL(agg_cell.reserve_bitmap(row_cap))) {

View File

@ -1657,7 +1657,7 @@ bool ObMicroBlockCSDecoder::can_pushdown_decoder(
bool is_col_signed = false;
const ObObjType store_col_type = integer_ctx.col_header_->get_store_obj_type();
const bool can_convert = ObCSDecodingUtil::can_convert_to_integer(store_col_type, is_col_signed);
const int64_t row_gap = std::abs(row_ids[0] - row_ids[row_cap - 1] + 1);
const int64_t row_gap = std::abs(row_ids[0] - row_ids[row_cap - 1]) + 1;
bret = ((PD_MIN == agg_type || PD_MAX == agg_type) &&
row_cap == row_gap &&
can_convert);