From a33521b2ce3b3a756bbd19cc42aa2d5faa72bb95 Mon Sep 17 00:00:00 2001 From: zhangstar333 <87313068+zhangstar333@users.noreply.github.com> Date: Thu, 22 Jun 2023 01:04:47 +0800 Subject: [PATCH] [enhancement](exchange) add filter for exchange node in BE (#21087) --- be/src/vec/exec/vexchange_node.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/be/src/vec/exec/vexchange_node.cpp b/be/src/vec/exec/vexchange_node.cpp index 61fb57e06b..3d9a50ded2 100644 --- a/be/src/vec/exec/vexchange_node.cpp +++ b/be/src/vec/exec/vexchange_node.cpp @@ -31,6 +31,7 @@ #include "util/telemetry/telemetry.h" #include "vec/core/block.h" #include "vec/core/column_with_type_and_name.h" +#include "vec/exprs/vexpr_context.h" #include "vec/runtime/vdata_stream_mgr.h" #include "vec/runtime/vdata_stream_recvr.h" @@ -104,6 +105,7 @@ Status VExchangeNode::get_next(RuntimeState* state, Block* block, bool* eos) { return Status::OK(); } auto status = _stream_recvr->get_next(block, eos); + RETURN_IF_ERROR(VExprContext::filter_block(_conjuncts, block, block->columns())); // In vsortrunmerger, it will set eos=true, and block not empty // so that eos==true, could not make sure that block not have valid data if (!*eos || block->rows() > 0) {