Skip to content

Commit

Permalink
[fix](load) return error instead of panic when slot and expr do not (a…
Browse files Browse the repository at this point in the history
  • Loading branch information
dataroaring authored Nov 26, 2023
1 parent 148f365 commit b6dd43b
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
10 changes: 10 additions & 0 deletions be/src/vec/sink/writer/vtablet_writer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1145,6 +1145,16 @@ Status VTabletWriter::_init(RuntimeState* state, RuntimeProfile* profile) {
return Status::InternalError("unknown destination tuple descriptor");
}

if (_vec_output_expr_ctxs.size() > 0 &&
_output_tuple_desc->slots().size() != _vec_output_expr_ctxs.size()) {
LOG(WARNING) << "output tuple slot num should be equal to num of output exprs, "
<< "output_tuple_slot_num " << _output_tuple_desc->slots().size()
<< " output_expr_num " << _vec_output_expr_ctxs.size();
return Status::InvalidArgument(
"output_tuple_slot_num {} should be equal to output_expr_num {}",
_output_tuple_desc->slots().size(), _vec_output_expr_ctxs.size());
}

_block_convertor = std::make_unique<OlapTableBlockConvertor>(_output_tuple_desc);
_block_convertor->init_autoinc_info(_schema->db_id(), _schema->table_id(),
_state->batch_size());
Expand Down
10 changes: 10 additions & 0 deletions be/src/vec/sink/writer/vtablet_writer_v2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,16 @@ Status VTabletWriterV2::_init(RuntimeState* state, RuntimeProfile* profile) {
return Status::InternalError("unknown destination tuple descriptor, id = {}",
_tuple_desc_id);
}
if (_vec_output_expr_ctxs.size() > 0 &&
_output_tuple_desc->slots().size() != _vec_output_expr_ctxs.size()) {
LOG(WARNING) << "output tuple slot num should be equal to num of output exprs, "
<< "output_tuple_slot_num " << _output_tuple_desc->slots().size()
<< " output_expr_num " << _vec_output_expr_ctxs.size();
return Status::InvalidArgument(
"output_tuple_slot_num {} should be equal to output_expr_num {}",
_output_tuple_desc->slots().size(), _vec_output_expr_ctxs.size());
}

_block_convertor = std::make_unique<OlapTableBlockConvertor>(_output_tuple_desc);
_block_convertor->init_autoinc_info(_schema->db_id(), _schema->table_id(),
_state->batch_size());
Expand Down

0 comments on commit b6dd43b

Please sign in to comment.