From ea181e9798bd34a12f658d2f1c99bd1e7ee5ebd3 Mon Sep 17 00:00:00 2001 From: Jerry Hu Date: Sat, 1 Jul 2023 17:19:36 +0800 Subject: [PATCH] [fix] slot id not found with projection in multi cast sender --- be/src/pipeline/pipeline_fragment_context.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/be/src/pipeline/pipeline_fragment_context.cpp b/be/src/pipeline/pipeline_fragment_context.cpp index a97128ee323499..2b916c46a7a395 100644 --- a/be/src/pipeline/pipeline_fragment_context.cpp +++ b/be/src/pipeline/pipeline_fragment_context.cpp @@ -767,9 +767,17 @@ Status PipelineFragmentContext::_create_sink(int sender_id, const TDataSink& thr _multi_cast_stream_sink_senders.resize(sender_size); for (int i = 0; i < sender_size; ++i) { auto new_pipeline = add_pipeline(); + + auto row_desc = + !thrift_sink.multi_cast_stream_sink.sinks[i].output_exprs.empty() + ? RowDescriptor( + _runtime_state->desc_tbl(), + {thrift_sink.multi_cast_stream_sink.sinks[i].output_tuple_id}, + {false}) + : sink_->row_desc(); // 1. create the data stream sender sink _multi_cast_stream_sink_senders[i].reset(new vectorized::VDataStreamSender( - _runtime_state.get(), _runtime_state->obj_pool(), sender_id, sink_->row_desc(), + _runtime_state.get(), _runtime_state->obj_pool(), sender_id, row_desc, thrift_sink.multi_cast_stream_sink.sinks[i], thrift_sink.multi_cast_stream_sink.destinations[i], 16 * 1024, false));