diff --git a/be/src/vec/functions/function_multi_match.h b/be/src/vec/functions/function_multi_match.h index ba395450a30f6f..7fe1d47b38ade8 100644 --- a/be/src/vec/functions/function_multi_match.h +++ b/be/src/vec/functions/function_multi_match.h @@ -45,14 +45,6 @@ class FunctionMultiMatch : public IFunction { return std::make_shared<DataTypeUInt8>(); } - Status open(FunctionContext* context, FunctionContext::FunctionStateScope scope) override { - return Status::OK(); - } - - Status close(FunctionContext* context, FunctionContext::FunctionStateScope scope) override { - return Status::OK(); - } - Status execute_impl(FunctionContext* /*context*/, Block& block, const ColumnNumbers& arguments, uint32_t result, size_t /*input_rows_count*/) const override; diff --git a/be/src/vec/functions/function_tokenize.h b/be/src/vec/functions/function_tokenize.h index 4a7cb0dad26214..1b919a8a20a041 100644 --- a/be/src/vec/functions/function_tokenize.h +++ b/be/src/vec/functions/function_tokenize.h @@ -70,14 +70,6 @@ class FunctionTokenize : public IFunction { NullMapType* dest_nested_null_map) const; Status execute_impl(FunctionContext* /*context*/, Block& block, const ColumnNumbers& arguments, uint32_t result, size_t /*input_rows_count*/) const override; - - Status open(FunctionContext* context, FunctionContext::FunctionStateScope scope) override { - return Status::OK(); - } - - Status close(FunctionContext* context, FunctionContext::FunctionStateScope scope) override { - return Status::OK(); - } }; void register_function_tokenize(SimpleFunctionFactory& factory) { diff --git a/be/src/vec/functions/functions_geo.cpp b/be/src/vec/functions/functions_geo.cpp index 03b25638de8a5d..6bb513a96dd8ad 100644 --- a/be/src/vec/functions/functions_geo.cpp +++ b/be/src/vec/functions/functions_geo.cpp @@ -32,7 +32,6 @@ #include "vec/common/string_ref.h" #include "vec/core/block.h" #include "vec/core/column_with_type_and_name.h" -#include "vec/core/field.h" #include "vec/data_types/data_type_nullable.h" #include "vec/data_types/data_type_number.h" #include "vec/data_types/data_type_string.h" @@ -41,7 +40,6 @@ namespace doris::vectorized { struct StPoint { - static constexpr auto NEED_CONTEXT = false; static constexpr auto NAME = "st_point"; static const size_t NUM_ARGS = 2; using Type = DataTypeString; @@ -129,7 +127,6 @@ struct StAsWktName { template <typename FunctionName> struct StAsText { - static constexpr auto NEED_CONTEXT = false; static constexpr auto NAME = FunctionName::NAME; static const size_t NUM_ARGS = 1; using Type = DataTypeString; @@ -165,7 +162,6 @@ struct StAsText { }; struct StX { - static constexpr auto NEED_CONTEXT = false; static constexpr auto NAME = "st_x"; static const size_t NUM_ARGS = 1; using Type = DataTypeFloat64; @@ -203,7 +199,6 @@ struct StX { }; struct StY { - static constexpr auto NEED_CONTEXT = false; static constexpr auto NAME = "st_y"; static const size_t NUM_ARGS = 1; using Type = DataTypeFloat64; @@ -241,7 +236,6 @@ struct StY { }; struct StDistanceSphere { - static constexpr auto NEED_CONTEXT = false; static constexpr auto NAME = "st_distance_sphere"; static const size_t NUM_ARGS = 4; using Type = DataTypeFloat64; @@ -288,7 +282,6 @@ struct StDistanceSphere { }; struct StAngleSphere { - static constexpr auto NEED_CONTEXT = false; static constexpr auto NAME = "st_angle_sphere"; static const size_t NUM_ARGS = 4; using Type = DataTypeFloat64; @@ -337,7 +330,6 @@ struct StAngleSphere { }; struct StAngle { - static constexpr auto NEED_CONTEXT = false; static constexpr auto NAME = "st_angle"; static const size_t NUM_ARGS = 3; using Type = DataTypeFloat64; @@ -397,7 +389,6 @@ struct StAngle { }; struct StAzimuth { - static constexpr auto NEED_CONTEXT = false; static constexpr auto NAME = "st_azimuth"; static const size_t NUM_ARGS = 2; using Type = DataTypeFloat64; @@ -487,7 +478,6 @@ struct StAzimuth { }; struct StAreaSquareMeters { - static constexpr auto NEED_CONTEXT = false; static constexpr auto NAME = "st_area_square_meters"; static const size_t NUM_ARGS = 1; using Type = DataTypeFloat64; @@ -528,7 +518,6 @@ struct StAreaSquareMeters { }; struct StAreaSquareKm { - static constexpr auto NEED_CONTEXT = false; static constexpr auto NAME = "st_area_square_km"; static const size_t NUM_ARGS = 1; using Type = DataTypeFloat64; @@ -571,12 +560,10 @@ struct StAreaSquareKm { }; struct StCircle { - static constexpr auto NEED_CONTEXT = true; static constexpr auto NAME = "st_circle"; static const size_t NUM_ARGS = 3; using Type = DataTypeString; - static Status execute(FunctionContext* context, Block& block, const ColumnNumbers& arguments, - size_t result) { + static Status execute(Block& block, const ColumnNumbers& arguments, size_t result) { DCHECK_EQ(arguments.size(), 3); auto return_type = block.get_data_type(result); auto center_lng = @@ -616,25 +603,15 @@ struct StCircle { ColumnNullable::create(std::move(res), std::move(null_map))); return Status::OK(); } - - static Status open(FunctionContext* context, FunctionContext::FunctionStateScope scope) { - return Status::OK(); - } - - static Status close(FunctionContext* context, FunctionContext::FunctionStateScope scope) { - return Status::OK(); - } }; template <typename Func> struct StRelationFunction { - static constexpr auto NEED_CONTEXT = true; static constexpr auto NAME = Func::NAME; static const size_t NUM_ARGS = 2; using Type = DataTypeUInt8; - static Status execute(FunctionContext* context, Block& block, const ColumnNumbers& arguments, - size_t result) { + static Status execute(Block& block, const ColumnNumbers& arguments, size_t result) { DCHECK_EQ(arguments.size(), 2); auto return_type = block.get_data_type(result); const auto& [left_column, left_const] = @@ -707,14 +684,6 @@ struct StRelationFunction { loop_do(lhs_value, rhs_value, shapes, res, null_map, row); } } - - static Status open(FunctionContext* context, FunctionContext::FunctionStateScope scope) { - return Status::OK(); - } - - static Status close(FunctionContext* context, FunctionContext::FunctionStateScope scope) { - return Status::OK(); - } }; struct StContainsFunc { @@ -774,12 +743,10 @@ struct StPolygonFromText { template <typename Impl> struct StGeoFromText { - static constexpr auto NEED_CONTEXT = true; static constexpr auto NAME = Impl::NAME; static const size_t NUM_ARGS = 1; using Type = DataTypeString; - static Status execute(FunctionContext* context, Block& block, const ColumnNumbers& arguments, - size_t result) { + static Status execute(Block& block, const ColumnNumbers& arguments, size_t result) { DCHECK_EQ(arguments.size(), 1); auto return_type = block.get_data_type(result); auto& geo = block.get_by_position(arguments[0]).column; @@ -807,14 +774,6 @@ struct StGeoFromText { ColumnNullable::create(std::move(res), std::move(null_map))); return Status::OK(); } - - static Status open(FunctionContext* context, FunctionContext::FunctionStateScope scope) { - return Status::OK(); - } - - static Status close(FunctionContext* context, FunctionContext::FunctionStateScope scope) { - return Status::OK(); - } }; struct StGeometryFromWKB { @@ -829,12 +788,10 @@ struct StGeomFromWKB { template <typename Impl> struct StGeoFromWkb { - static constexpr auto NEED_CONTEXT = true; static constexpr auto NAME = Impl::NAME; static const size_t NUM_ARGS = 1; using Type = DataTypeString; - static Status execute(FunctionContext* context, Block& block, const ColumnNumbers& arguments, - size_t result) { + static Status execute(Block& block, const ColumnNumbers& arguments, size_t result) { DCHECK_EQ(arguments.size(), 1); auto return_type = block.get_data_type(result); auto& geo = block.get_by_position(arguments[0]).column; @@ -861,23 +818,13 @@ struct StGeoFromWkb { ColumnNullable::create(std::move(res), std::move(null_map))); return Status::OK(); } - - static Status open(FunctionContext* context, FunctionContext::FunctionStateScope scope) { - return Status::OK(); - } - - static Status close(FunctionContext* context, FunctionContext::FunctionStateScope scope) { - return Status::OK(); - } }; struct StAsBinary { - static constexpr auto NEED_CONTEXT = true; static constexpr auto NAME = "st_asbinary"; static const size_t NUM_ARGS = 1; using Type = DataTypeString; - static Status execute(FunctionContext* context, Block& block, const ColumnNumbers& arguments, - size_t result) { + static Status execute(Block& block, const ColumnNumbers& arguments, size_t result) { DCHECK_EQ(arguments.size(), 1); auto return_type = block.get_data_type(result); auto res = ColumnString::create(); @@ -910,14 +857,6 @@ struct StAsBinary { ColumnNullable::create(std::move(res), std::move(null_map))); return Status::OK(); } - - static Status open(FunctionContext* context, FunctionContext::FunctionStateScope scope) { - return Status::OK(); - } - - static Status close(FunctionContext* context, FunctionContext::FunctionStateScope scope) { - return Status::OK(); - } }; void register_function_geo(SimpleFunctionFactory& factory) { diff --git a/be/src/vec/functions/functions_geo.h b/be/src/vec/functions/functions_geo.h index 92d6bc1b1b0381..437f032abdc69e 100644 --- a/be/src/vec/functions/functions_geo.h +++ b/be/src/vec/functions/functions_geo.h @@ -28,7 +28,6 @@ #include "vec/core/column_numbers.h" #include "vec/core/types.h" #include "vec/data_types/data_type.h" -#include "vec/data_types/data_type_string.h" #include "vec/functions/function.h" namespace doris { @@ -72,27 +71,7 @@ class GeoFunction : public IFunction { Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments, uint32_t result, size_t input_rows_count) const override { - if constexpr (Impl::NEED_CONTEXT) { - return Impl::execute(context, block, arguments, result); - } else { - return Impl::execute(block, arguments, result); - } - } - - Status open(FunctionContext* context, FunctionContext::FunctionStateScope scope) override { - if constexpr (Impl::NEED_CONTEXT) { - return Impl::open(context, scope); - } else { - return Status::OK(); - } - } - - Status close(FunctionContext* context, FunctionContext::FunctionStateScope scope) override { - if constexpr (Impl::NEED_CONTEXT) { - return Impl::close(context, scope); - } else { - return Status::OK(); - } + return Impl::execute(block, arguments, result); } }; diff --git a/be/src/vec/functions/in.h b/be/src/vec/functions/in.h index 4a588353d58732..84a77f1b2c11c0 100644 --- a/be/src/vec/functions/in.h +++ b/be/src/vec/functions/in.h @@ -281,10 +281,6 @@ class FunctionIn : public IFunction { return Status::OK(); } - Status close(FunctionContext* context, FunctionContext::FunctionStateScope scope) override { - return Status::OK(); - } - private: template <typename T> static void search_hash_set_check_null(InState* in_state, size_t input_rows_count, diff --git a/be/src/vec/functions/like.cpp b/be/src/vec/functions/like.cpp index 09bfc961a2e067..2eac3ce4b3a9e3 100644 --- a/be/src/vec/functions/like.cpp +++ b/be/src/vec/functions/like.cpp @@ -545,11 +545,6 @@ Status FunctionLikeBase::execute_impl(FunctionContext* context, Block& block, return Status::OK(); } -Status FunctionLikeBase::close(FunctionContext* context, - FunctionContext::FunctionStateScope scope) { - return Status::OK(); -} - Status FunctionLikeBase::execute_substring(const ColumnString::Chars& values, const ColumnString::Offsets& value_offsets, ColumnUInt8::Container& result, diff --git a/be/src/vec/functions/like.h b/be/src/vec/functions/like.h index fed26718603575..a2aac11e0b751e 100644 --- a/be/src/vec/functions/like.h +++ b/be/src/vec/functions/like.h @@ -159,8 +159,6 @@ class FunctionLikeBase : public IFunction { Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments, uint32_t result, size_t /*input_rows_count*/) const override; - Status close(FunctionContext* context, FunctionContext::FunctionStateScope scope) override; - friend struct VectorAllpassSearchState; friend struct VectorEqualSearchState; friend struct VectorSubStringSearchState; diff --git a/be/src/vec/functions/random.cpp b/be/src/vec/functions/random.cpp index 9927f1a6dfb40a..78e75303a66181 100644 --- a/be/src/vec/functions/random.cpp +++ b/be/src/vec/functions/random.cpp @@ -97,10 +97,6 @@ class Random : public IFunction { return _execute_float(context, block, arguments, result, input_rows_count); } - Status close(FunctionContext* context, FunctionContext::FunctionStateScope scope) override { - return Status::OK(); - } - private: static Status _execute_int_range(FunctionContext* context, Block& block, const ColumnNumbers& arguments, uint32_t result,