fix table location compute bug

This commit is contained in:
chimyue
2023-09-21 11:40:21 +00:00
committed by ob-robot
parent c5d85bd5f5
commit 47547fac71

View File

@ -2158,16 +2158,18 @@ int ObTableLocation::record_in_dml_partition_info(const ObDMLStmt &stmt,
RowDesc value_row_desc;
OZ(add_se_value_expr(value_expr->get_param_expr(pos1),
value_row_desc, 0, exec_ctx, vies_));
for (int64_t i = 0; OB_SUCC(ret) && i < vies_.count(); i++) {
vies_.at(i).dst_type_ = op_left_expr->get_param_expr(0)->get_result_type().get_type();
vies_.at(i).dst_cs_type_ = op_left_expr->get_param_expr(0)
->get_result_type().get_collation_type();
}
OZ(add_se_value_expr(value_expr->get_param_expr(pos2),
value_row_desc, 0, exec_ctx, sub_vies_));
}
if (OB_SUCC(ret) && hit) {
for (int64_t i = 0; OB_SUCC(ret) && i < vies_.count(); i++) {
vies_.at(i).dst_type_ = op_left_expr->get_param_expr(pos1)->get_result_type().get_type();
vies_.at(i).dst_cs_type_ = op_left_expr->get_param_expr(pos1)
->get_result_type().get_collation_type();
}
for (int64_t i = 0; OB_SUCC(ret) && i < sub_vies_.count(); i++) {
sub_vies_.at(i).dst_type_ = op_left_expr->get_param_expr(1)->get_result_type().get_type();
sub_vies_.at(i).dst_cs_type_ = op_left_expr->get_param_expr(1)
sub_vies_.at(i).dst_type_ = op_left_expr->get_param_expr(pos2)->get_result_type().get_type();
sub_vies_.at(i).dst_cs_type_ = op_left_expr->get_param_expr(pos2)
->get_result_type().get_collation_type();
}
}