This is an automated email from the ASF dual-hosted git repository.
lihaopeng 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 151401506a2 [refine](function)Some functions are not using the default
const handling logic. (#60810)
151401506a2 is described below
commit 151401506a229df65932cb32a6de485e95715c7f
Author: Mryange <[email protected]>
AuthorDate: Fri Feb 27 16:14:36 2026 +0800
[refine](function)Some functions are not using the default const handling
logic. (#60810)
We have some functions with code written to handle inputs as const, but
because there’s default const handling logic, that code was never
reached before.
---
be/src/vec/functions/binary_arithmetic.h | 2 ++
be/src/vec/functions/divide.cpp | 2 ++
be/src/vec/functions/function_bit.cpp | 2 ++
be/src/vec/functions/function_bit_shift.cpp | 2 ++
be/src/vec/functions/functions_comparison.h | 6 ------
be/src/vec/functions/int_div.cpp | 2 ++
be/src/vec/functions/modulo.cpp | 2 ++
be/src/vec/functions/multiply.cpp | 2 ++
8 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/be/src/vec/functions/binary_arithmetic.h
b/be/src/vec/functions/binary_arithmetic.h
index f9fa2d3c921..523d554db66 100644
--- a/be/src/vec/functions/binary_arithmetic.h
+++ b/be/src/vec/functions/binary_arithmetic.h
@@ -418,6 +418,8 @@ public:
return arguments[0];
}
+ bool use_default_implementation_for_constants() const final { return
false; }
+
Status execute_impl(FunctionContext* context, Block& block, const
ColumnNumbers& arguments,
uint32_t result, size_t input_rows_count) const
override {
auto& column_left = block.get_by_position(arguments[0]).column;
diff --git a/be/src/vec/functions/divide.cpp b/be/src/vec/functions/divide.cpp
index bd4ff242cdd..9e43a46df6b 100644
--- a/be/src/vec/functions/divide.cpp
+++ b/be/src/vec/functions/divide.cpp
@@ -52,6 +52,8 @@ public:
size_t get_number_of_arguments() const override { return 2; }
+ bool use_default_implementation_for_constants() const final { return
false; }
+
DataTypes get_variadic_argument_types_impl() const override {
return Impl::get_variadic_argument_types();
}
diff --git a/be/src/vec/functions/function_bit.cpp
b/be/src/vec/functions/function_bit.cpp
index c8daa205635..a23f189d22c 100644
--- a/be/src/vec/functions/function_bit.cpp
+++ b/be/src/vec/functions/function_bit.cpp
@@ -54,6 +54,8 @@ public:
size_t get_number_of_arguments() const override { return 2; }
+ bool use_default_implementation_for_constants() const final { return
false; }
+
Status execute_impl(FunctionContext* context, Block& block, const
ColumnNumbers& arguments,
uint32_t result, size_t input_rows_count) const
override {
auto& column_left = block.get_by_position(arguments[0]).column;
diff --git a/be/src/vec/functions/function_bit_shift.cpp
b/be/src/vec/functions/function_bit_shift.cpp
index 211da9ddb59..4bd4748122f 100644
--- a/be/src/vec/functions/function_bit_shift.cpp
+++ b/be/src/vec/functions/function_bit_shift.cpp
@@ -43,6 +43,8 @@ public:
size_t get_number_of_arguments() const override { return 2; }
+ bool use_default_implementation_for_constants() const final { return
false; }
+
Status execute_impl(FunctionContext* context, Block& block, const
ColumnNumbers& arguments,
uint32_t result, size_t input_rows_count) const
override {
auto& column_left = block.get_by_position(arguments[0]).column;
diff --git a/be/src/vec/functions/functions_comparison.h
b/be/src/vec/functions/functions_comparison.h
index fc831997681..2dece09f7da 100644
--- a/be/src/vec/functions/functions_comparison.h
+++ b/be/src/vec/functions/functions_comparison.h
@@ -94,8 +94,6 @@ struct NumComparisonImpl {
static void constant_vector(A a, const PaddedPODArray<B>& b,
PaddedPODArray<UInt8>& c) {
NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b,
a, c);
}
-
- static void constant_constant(A a, B b, UInt8& c) { c = Op::apply(a, b); }
};
/// Generic version, implemented for columns of same type.
@@ -117,10 +115,6 @@ struct GenericComparisonImpl {
static void constant_vector(const IColumn& a, const IColumn& b,
PaddedPODArray<UInt8>& c) {
GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a,
c);
}
-
- static void constant_constant(const IColumn& a, const IColumn& b, UInt8&
c) {
- c = Op::apply(a.compare_at(0, 0, b, 1), 0);
- }
};
template <typename Op>
diff --git a/be/src/vec/functions/int_div.cpp b/be/src/vec/functions/int_div.cpp
index 6a303c3b93d..6dd9def237a 100644
--- a/be/src/vec/functions/int_div.cpp
+++ b/be/src/vec/functions/int_div.cpp
@@ -50,6 +50,8 @@ public:
return make_nullable(type_res);
}
+ bool use_default_implementation_for_constants() const final { return
false; }
+
Status execute_impl(FunctionContext* context, Block& block, const
ColumnNumbers& arguments,
uint32_t result, size_t input_rows_count) const
override {
auto& column_left = block.get_by_position(arguments[0]).column;
diff --git a/be/src/vec/functions/modulo.cpp b/be/src/vec/functions/modulo.cpp
index 23a8ea95548..509fa03e8dd 100644
--- a/be/src/vec/functions/modulo.cpp
+++ b/be/src/vec/functions/modulo.cpp
@@ -78,6 +78,8 @@ public:
return make_nullable(arguments[0]);
}
+ bool use_default_implementation_for_constants() const final { return
false; }
+
Status execute_impl(FunctionContext* context, Block& block, const
ColumnNumbers& arguments,
uint32_t result, size_t input_rows_count) const
override {
auto& column_left = block.get_by_position(arguments[0]).column;
diff --git a/be/src/vec/functions/multiply.cpp
b/be/src/vec/functions/multiply.cpp
index 26b0d3f2f9d..ae3f676c813 100644
--- a/be/src/vec/functions/multiply.cpp
+++ b/be/src/vec/functions/multiply.cpp
@@ -568,6 +568,8 @@ public:
return Impl::need_replace_null_data_to_default;
}
+ bool use_default_implementation_for_constants() const final { return
false; }
+
size_t get_number_of_arguments() const override { return 2; }
DataTypes get_variadic_argument_types_impl() const override {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]