fix vec2.0 px merge sort receive and table scan partition pruning bug

This commit is contained in:
sdc
2024-01-03 11:52:19 +00:00
committed by ob-robot
parent 512e24e98e
commit 33600ef896
2 changed files with 4 additions and 3 deletions

View File

@ -939,8 +939,6 @@ int ObPxMSReceiveVecOp::get_all_rows_from_channels(ObPhysicalPlanCtx *phy_plan_c
const_cast<ObCompactRow **>(stored_compact_rows_)))) { const_cast<ObCompactRow **>(stored_compact_rows_)))) {
LOG_WARN("temp row store add batch failed", K(ret)); LOG_WARN("temp row store add batch failed", K(ret));
} else { } else {
last_store_row = stored_compact_rows_[0];
last_store_row_array.at(got_channel_idx) = last_store_row;
start_idx = cur_idx; start_idx = cur_idx;
} }
} }
@ -974,7 +972,7 @@ int ObPxMSReceiveVecOp::get_all_rows_from_channels(ObPhysicalPlanCtx *phy_plan_c
const_cast<ObCompactRow **>(stored_compact_rows_)))) { const_cast<ObCompactRow **>(stored_compact_rows_)))) {
LOG_WARN("temp row store add batch failed", K(ret)); LOG_WARN("temp row store add batch failed", K(ret));
} else { } else {
last_store_row = stored_compact_rows_[0]; last_store_row = stored_compact_rows_[cur_idx - start_idx - 1];
last_store_row_array.at(got_channel_idx) = last_store_row; last_store_row_array.at(got_channel_idx) = last_store_row;
} }
} }

View File

@ -2386,6 +2386,9 @@ int ObTableScanOp::construct_partition_range(ObArenaAllocator &allocator,
end_row_key[i] = scan_range.end_key_.get_obj_ptr()[pos]; end_row_key[i] = scan_range.end_key_.get_obj_ptr()[pos];
sql::ObExpr *expr = part_dep_cols.at(i); sql::ObExpr *expr = part_dep_cols.at(i);
sql::ObDatum &datum = expr->locate_datum_for_write(eval_ctx_); sql::ObDatum &datum = expr->locate_datum_for_write(eval_ctx_);
if (get_spec().use_rich_format_) {
expr->init_vector_for_write(eval_ctx_, VEC_UNIFORM, 1);
}
if (OB_FAIL(datum.from_obj(start_row_key[i], expr->obj_datum_map_))) { if (OB_FAIL(datum.from_obj(start_row_key[i], expr->obj_datum_map_))) {
LOG_WARN("convert obj to datum failed", K(ret)); LOG_WARN("convert obj to datum failed", K(ret));
} else if (is_lob_storage(start_row_key[i].get_type()) && } else if (is_lob_storage(start_row_key[i].get_type()) &&