This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new b6dd43bb9d6 [fix](load) return error instead of panic when slot and
expr do not (#27423)
b6dd43bb9d6 is described below
commit b6dd43bb9d63b2399396a02de9fec19b1295dcb5
Author: Yongqiang YANG <[email protected]>
AuthorDate: Sun Nov 26 18:53:37 2023 +0800
[fix](load) return error instead of panic when slot and expr do not (#27423)
---
be/src/vec/sink/writer/vtablet_writer.cpp | 10 ++++++++++
be/src/vec/sink/writer/vtablet_writer_v2.cpp | 10 ++++++++++
2 files changed, 20 insertions(+)
diff --git a/be/src/vec/sink/writer/vtablet_writer.cpp
b/be/src/vec/sink/writer/vtablet_writer.cpp
index 1639703d986..c85e5520287 100644
--- a/be/src/vec/sink/writer/vtablet_writer.cpp
+++ b/be/src/vec/sink/writer/vtablet_writer.cpp
@@ -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());
diff --git a/be/src/vec/sink/writer/vtablet_writer_v2.cpp
b/be/src/vec/sink/writer/vtablet_writer_v2.cpp
index e5b6cc9642a..33bca6a9401 100644
--- a/be/src/vec/sink/writer/vtablet_writer_v2.cpp
+++ b/be/src/vec/sink/writer/vtablet_writer_v2.cpp
@@ -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());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]