This is an automated email from the ASF dual-hosted git repository.

morrysnow pushed a commit to branch runtimefilter_multi_send
in repository https://gitbox.apache.org/repos/asf/doris.git

commit de384542228ffba8c750c12fdffcabd39583ae0e
Author: Jerry Hu <[email protected]>
AuthorDate: Fri Jun 30 16:15:56 2023 +0800

    [fix] conjuncts not initialized (#21376)
---
 be/src/pipeline/exec/multi_cast_data_stream_source.cpp | 16 +++++-----------
 be/src/pipeline/exec/multi_cast_data_stream_source.h   |  2 --
 2 files changed, 5 insertions(+), 13 deletions(-)

diff --git a/be/src/pipeline/exec/multi_cast_data_stream_source.cpp 
b/be/src/pipeline/exec/multi_cast_data_stream_source.cpp
index 18ca62ea15..3ef7100063 100644
--- a/be/src/pipeline/exec/multi_cast_data_stream_source.cpp
+++ b/be/src/pipeline/exec/multi_cast_data_stream_source.cpp
@@ -53,26 +53,20 @@ 
MultiCastDataStreamerSourceOperator::MultiCastDataStreamerSourceOperator(
           _multi_cast_data_streamer(data_streamer),
           _t_data_stream_sink(sink) {}
 
-Status MultiCastDataStreamerSourceOperator::init(const TDataSink& tsink) {
-    RETURN_IF_ERROR(OperatorBase::init(tsink));
+Status MultiCastDataStreamerSourceOperator::prepare(doris::RuntimeState* 
state) {
+    RETURN_IF_ERROR(vectorized::RuntimeFilterConsumer::init(state));
+    _register_runtime_filter();
     if (_t_data_stream_sink.__isset.output_exprs) {
         
RETURN_IF_ERROR(vectorized::VExpr::create_expr_trees(_t_data_stream_sink.output_exprs,
                                                              
_output_expr_contexts));
+        RETURN_IF_ERROR(vectorized::VExpr::prepare(_output_expr_contexts, 
state, row_desc()));
     }
 
     if (_t_data_stream_sink.__isset.conjuncts) {
         RETURN_IF_ERROR(
                 
vectorized::VExpr::create_expr_trees(_t_data_stream_sink.conjuncts, 
_conjuncts));
+        RETURN_IF_ERROR(vectorized::VExpr::prepare(_conjuncts, state, 
row_desc()));
     }
-
-    return Status::OK();
-}
-
-Status MultiCastDataStreamerSourceOperator::prepare(doris::RuntimeState* 
state) {
-    RETURN_IF_ERROR(vectorized::RuntimeFilterConsumer::init(state));
-    _register_runtime_filter();
-    RETURN_IF_ERROR(vectorized::VExpr::prepare(_conjuncts, state, row_desc()));
-    RETURN_IF_ERROR(vectorized::VExpr::prepare(_output_expr_contexts, state, 
row_desc()));
     return Status::OK();
 }
 
diff --git a/be/src/pipeline/exec/multi_cast_data_stream_source.h 
b/be/src/pipeline/exec/multi_cast_data_stream_source.h
index b2c7ca9e55..8c9cb99f82 100644
--- a/be/src/pipeline/exec/multi_cast_data_stream_source.h
+++ b/be/src/pipeline/exec/multi_cast_data_stream_source.h
@@ -64,8 +64,6 @@ public:
     Status get_block(RuntimeState* state, vectorized::Block* block,
                      SourceState& source_state) override;
 
-    Status init(const TDataSink& tsink) override;
-
     Status prepare(RuntimeState* state) override;
 
     Status open(RuntimeState* state) override;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to