diff --git a/be/src/vec/exec/runtime_filter_consumer.h b/be/src/vec/exec/runtime_filter_consumer.h index a6527fae62334da..a6e87e9de9b7e37 100644 --- a/be/src/vec/exec/runtime_filter_consumer.h +++ b/be/src/vec/exec/runtime_filter_consumer.h @@ -51,7 +51,6 @@ class RuntimeFilterConsumer { // For runtime filters struct RuntimeFilterContext { - RuntimeFilterContext() : apply_mark(false), runtime_filter(nullptr) {} RuntimeFilterContext(IRuntimeFilter* rf) : apply_mark(false), runtime_filter(rf) {} // set to true if this runtime filter is already applied to vconjunct_ctx_ptr bool apply_mark; diff --git a/be/src/vec/exprs/vexpr.h b/be/src/vec/exprs/vexpr.h index ec1c8affc7ed616..2c01c3b3b48461d 100644 --- a/be/src/vec/exprs/vexpr.h +++ b/be/src/vec/exprs/vexpr.h @@ -97,7 +97,7 @@ class VExpr { VExpr() = default; virtual ~VExpr() = default; - virtual VExprSPtr clone() const = 0; + virtual VExprSPtr clone() const { return nullptr; } virtual const std::string& expr_name() const = 0; diff --git a/be/src/vec/exprs/vruntimefilter_wrapper.cpp b/be/src/vec/exprs/vruntimefilter_wrapper.cpp index 1d498f610000f1a..968bad5fedb1ffb 100644 --- a/be/src/vec/exprs/vruntimefilter_wrapper.cpp +++ b/be/src/vec/exprs/vruntimefilter_wrapper.cpp @@ -47,13 +47,6 @@ namespace doris::vectorized { VRuntimeFilterWrapper::VRuntimeFilterWrapper(const TExprNode& node, const VExprSPtr& impl) : VExpr(node), _impl(impl), _always_true(false), _filtered_rows(0), _scan_rows(0) {} -VRuntimeFilterWrapper::VRuntimeFilterWrapper(const VRuntimeFilterWrapper& vexpr) - : VExpr(vexpr), - _impl(vexpr._impl), - _always_true(vexpr._always_true), - _filtered_rows(vexpr._filtered_rows.load()), - _scan_rows(vexpr._scan_rows.load()) {} - Status VRuntimeFilterWrapper::prepare(RuntimeState* state, const RowDescriptor& desc, VExprContext* context) { RETURN_IF_ERROR_OR_PREPARED(_impl->prepare(state, desc, context)); @@ -71,10 +64,6 @@ void VRuntimeFilterWrapper::close(VExprContext* context, _impl->close(context, scope); } -bool VRuntimeFilterWrapper::is_constant() const { - return _impl->is_constant(); -} - Status VRuntimeFilterWrapper::execute(VExprContext* context, Block* block, int* result_column_id) { if (_always_true) { auto res_data_column = ColumnVector::create(block->rows(), 1); diff --git a/be/src/vec/exprs/vruntimefilter_wrapper.h b/be/src/vec/exprs/vruntimefilter_wrapper.h index 4c76acd11477e16..4e9831ca028547b 100644 --- a/be/src/vec/exprs/vruntimefilter_wrapper.h +++ b/be/src/vec/exprs/vruntimefilter_wrapper.h @@ -45,7 +45,6 @@ class VRuntimeFilterWrapper final : public VExpr { public: VRuntimeFilterWrapper(const TExprNode& node, const VExprSPtr& impl); - VRuntimeFilterWrapper(const VRuntimeFilterWrapper& vexpr); ~VRuntimeFilterWrapper() override = default; doris::Status execute(VExprContext* context, doris::vectorized::Block* block, int* result_column_id) override; @@ -54,9 +53,7 @@ class VRuntimeFilterWrapper final : public VExpr { doris::Status open(doris::RuntimeState* state, VExprContext* context, FunctionContext::FunctionStateScope scope) override; std::string debug_string() const override { return _impl->debug_string(); } - bool is_constant() const override; void close(VExprContext* context, FunctionContext::FunctionStateScope scope) override; - VExprSPtr clone() const override { return VRuntimeFilterWrapper::create_shared(*this); } const std::string& expr_name() const override; const VExprSPtrs& children() const override { return _impl->children(); }