Fix some problems in aggregate pushdown to decoder.
This commit is contained in:
@ -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))) {
|
||||
|
@ -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);
|
||||
|
Reference in New Issue
Block a user