Fix: swallow error code

This commit is contained in:
yaojing624
2024-06-25 17:03:45 +00:00
committed by ob-robot
parent 13de62425e
commit bd76a37642

View File

@ -106,79 +106,81 @@ int ObHashUnionVecOp::inner_get_next_batch(const int64_t max_row_cnt)
ObBitVector *output_vec = nullptr; ObBitVector *output_vec = nullptr;
const ObBatchRows *child_brs = nullptr; const ObBatchRows *child_brs = nullptr;
if (!has_got_part_) { if (OB_SUCC(ret)) {
if (child_op_end) { if (!has_got_part_) {
end_to_process = true; if (child_op_end) {
} else if (OB_FAIL(get_child_next_batch(batch_size, child_brs))) { end_to_process = true;
LOG_WARN("failed to get child next batch", K(ret)); } else if (OB_FAIL(get_child_next_batch(batch_size, child_brs))) {
} else if (OB_FAIL(convert_vector(cur_child_op_->get_spec().output_, LOG_WARN("failed to get child next batch", K(ret));
MY_SPEC.set_exprs_, } else if (OB_FAIL(convert_vector(cur_child_op_->get_spec().output_,
child_brs))) { MY_SPEC.set_exprs_,
LOG_WARN("copy current row failed", K(ret)); child_brs))) {
} else if (OB_FAIL(hp_infras_.calc_hash_value_for_batch(MY_SPEC.set_exprs_, LOG_WARN("copy current row failed", K(ret));
*child_brs, } else if (OB_FAIL(hp_infras_.calc_hash_value_for_batch(MY_SPEC.set_exprs_,
hash_values_for_batch_))) { *child_brs,
LOG_WARN("failed to calc hash value for batch", K(ret)); hash_values_for_batch_))) {
} else { LOG_WARN("failed to calc hash value for batch", K(ret));
child_op_end = cur_child_op_ == right_ && child_brs->end_ && 0 != child_brs->size_; } else {
end_to_process = cur_child_op_ == right_ && child_brs->end_ && 0 == child_brs->size_; child_op_end = cur_child_op_ == right_ && child_brs->end_ && 0 != child_brs->size_;
read_rows = child_brs->size_; end_to_process = cur_child_op_ == right_ && child_brs->end_ && 0 == child_brs->size_;
} read_rows = child_brs->size_;
} else if (OB_FAIL(hp_infras_.get_left_next_batch(MY_SPEC.set_exprs_, }
batch_size, } else if (OB_FAIL(hp_infras_.get_left_next_batch(MY_SPEC.set_exprs_,
read_rows, batch_size,
hash_values_for_batch_))) { read_rows,
if (OB_ITER_END == ret) { hash_values_for_batch_))) {
ret = OB_SUCCESS; if (OB_ITER_END == ret) {
end_to_process = true; ret = OB_SUCCESS;
} else { end_to_process = true;
LOG_WARN("failed to get batch from infra", K(ret)); } else {
} LOG_WARN("failed to get batch from infra", K(ret));
}
if (OB_SUCC(ret) && end_to_process) {
end_to_process = false;
if (OB_FAIL(hp_infras_.finish_insert_row())) {
LOG_WARN("failed to finish insert row", K(ret));
} else if (!has_got_part_) {
has_got_part_ = true;
} else if (OB_FAIL(hp_infras_.close_cur_part(InputSide::LEFT))) {
LOG_WARN("failed to close cur part", K(ret));
}
if (OB_FAIL(ret)) {
} else if (OB_FAIL(hp_infras_.end_round())) {
LOG_WARN("failed to end round", K(ret));
} else if (OB_FAIL(try_check_status())) {
LOG_WARN("failed to check status", K(ret));
} else if (OB_FAIL(hp_infras_.start_round())) {
LOG_WARN("failed to start round", K(ret));
} else if (OB_FAIL(hp_infras_.get_next_partition(InputSide::LEFT))) {
if (OB_ITER_END != ret) {
LOG_WARN("failed to get next dumped partition", K(ret));
} }
} else if (OB_FAIL(hp_infras_.open_cur_part(InputSide::LEFT))) {
LOG_WARN("failed to open cur part", K(ret));
} else if (OB_FAIL(hp_infras_.resize(hp_infras_.get_cur_part_row_cnt(InputSide::LEFT)))) {
LOG_WARN("failed to resize cur part", K(ret));
} }
} else if (OB_FAIL(ret)) { if (OB_SUCC(ret) && end_to_process) {
} else if (has_got_part_ && OB_FAIL(hp_infras_.insert_row_for_batch(MY_SPEC.set_exprs_, end_to_process = false;
hash_values_for_batch_, if (OB_FAIL(hp_infras_.finish_insert_row())) {
read_rows, LOG_WARN("failed to finish insert row", K(ret));
nullptr, } else if (!has_got_part_) {
output_vec))) { has_got_part_ = true;
LOG_WARN("failed to insert batch for dump", K(ret)); } else if (OB_FAIL(hp_infras_.close_cur_part(InputSide::LEFT))) {
} else if (!has_got_part_ && OB_FAIL(hp_infras_.insert_row_for_batch(MY_SPEC.set_exprs_, LOG_WARN("failed to close cur part", K(ret));
}
if (OB_FAIL(ret)) {
} else if (OB_FAIL(hp_infras_.end_round())) {
LOG_WARN("failed to end round", K(ret));
} else if (OB_FAIL(try_check_status())) {
LOG_WARN("failed to check status", K(ret));
} else if (OB_FAIL(hp_infras_.start_round())) {
LOG_WARN("failed to start round", K(ret));
} else if (OB_FAIL(hp_infras_.get_next_partition(InputSide::LEFT))) {
if (OB_ITER_END != ret) {
LOG_WARN("failed to get next dumped partition", K(ret));
}
} else if (OB_FAIL(hp_infras_.open_cur_part(InputSide::LEFT))) {
LOG_WARN("failed to open cur part", K(ret));
} else if (OB_FAIL(hp_infras_.resize(hp_infras_.get_cur_part_row_cnt(InputSide::LEFT)))) {
LOG_WARN("failed to resize cur part", K(ret));
}
} else if (OB_FAIL(ret)) {
} else if (has_got_part_ && OB_FAIL(hp_infras_.insert_row_for_batch(MY_SPEC.set_exprs_,
hash_values_for_batch_, hash_values_for_batch_,
read_rows, read_rows,
child_brs->skip_, nullptr,
output_vec))) { output_vec))) {
LOG_WARN("failed to insert batch for no dump", K(ret)); LOG_WARN("failed to insert batch for dump", K(ret));
} else if (OB_ISNULL(output_vec)) { } else if (!has_got_part_ && OB_FAIL(hp_infras_.insert_row_for_batch(MY_SPEC.set_exprs_,
ret = OB_ERR_UNEXPECTED; hash_values_for_batch_,
LOG_WARN("failed to get output vec", K(ret)); read_rows,
} else { child_brs->skip_,
brs_.size_ = read_rows; output_vec))) {
brs_.skip_->deep_copy(*output_vec, read_rows); LOG_WARN("failed to insert batch for no dump", K(ret));
} else if (OB_ISNULL(output_vec)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("failed to get output vec", K(ret));
} else {
brs_.size_ = read_rows;
brs_.skip_->deep_copy(*output_vec, read_rows);
}
} }