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 <98214048+dataroar...@users.noreply.github.com>
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: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to