From 71026bff8c491bb8efa1e3f977d1e67fbd4da72c Mon Sep 17 00:00:00 2001 From: lijianan Date: Thu, 11 Jan 2024 13:24:30 +0800 Subject: [PATCH 1/2] enhance UDF name validation --- src/Functions/UserDefined/UDFHelper.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Functions/UserDefined/UDFHelper.cpp b/src/Functions/UserDefined/UDFHelper.cpp index 0e4072d1042..d64bf399057 100644 --- a/src/Functions/UserDefined/UDFHelper.cpp +++ b/src/Functions/UserDefined/UDFHelper.cpp @@ -1,5 +1,6 @@ #include +#include #include #include #include @@ -51,6 +52,9 @@ void validateUDFName(const String & func_name) if (!std::isalpha(func_name[0]) && func_name[0] != '_') throw Exception(ErrorCodes::UDF_INVALID_NAME, "UDF name's first char shall be an alphabetic or underscore"); + + if (AggregateFunctionCombinatorPtr combinator = AggregateFunctionCombinatorFactory::instance().tryFindSuffix(func_name)) + throw Exception(ErrorCodes::UDF_INVALID_NAME, "UDF name can not end up with " + combinator->getName() + ", because it is key word suffix"); } namespace From 993775a68620bf226fcd0a2d07459e169dbd6a86 Mon Sep 17 00:00:00 2001 From: lijianan Date: Wed, 17 Jan 2024 15:21:31 +0800 Subject: [PATCH 2/2] fix comment --- src/Functions/UserDefined/UDFHelper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Functions/UserDefined/UDFHelper.cpp b/src/Functions/UserDefined/UDFHelper.cpp index d64bf399057..fec7addfef5 100644 --- a/src/Functions/UserDefined/UDFHelper.cpp +++ b/src/Functions/UserDefined/UDFHelper.cpp @@ -54,7 +54,7 @@ void validateUDFName(const String & func_name) throw Exception(ErrorCodes::UDF_INVALID_NAME, "UDF name's first char shall be an alphabetic or underscore"); if (AggregateFunctionCombinatorPtr combinator = AggregateFunctionCombinatorFactory::instance().tryFindSuffix(func_name)) - throw Exception(ErrorCodes::UDF_INVALID_NAME, "UDF name can not end up with " + combinator->getName() + ", because it is key word suffix"); + throw Exception(fmt::format("UDF name can not end up with {}, because it is key word suffix", combinator->getName()), ErrorCodes::UDF_INVALID_NAME); } namespace