This is an automated email from the ASF dual-hosted git repository.

jayzhan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git


The following commit(s) were added to refs/heads/main by this push:
     new 0f5634ec3d refactor: simplify the `make_udf_function` macro (#13712)
0f5634ec3d is described below

commit 0f5634ec3de8cae77804aae883b655db38da4648
Author: Jonah Gao <[email protected]>
AuthorDate: Wed Dec 11 09:14:44 2024 +0800

    refactor: simplify the `make_udf_function` macro (#13712)
---
 datafusion/functions/src/core/mod.rs     | 22 ++++++-------
 datafusion/functions/src/crypto/mod.rs   | 12 +++----
 datafusion/functions/src/datetime/mod.rs | 54 ++++++++++----------------------
 datafusion/functions/src/encoding/mod.rs |  4 +--
 datafusion/functions/src/macros.rs       | 25 +++++++--------
 datafusion/functions/src/math/mod.rs     | 53 +++++++++----------------------
 datafusion/functions/src/regex/mod.rs    | 12 +++----
 datafusion/functions/src/string/mod.rs   | 44 +++++++++++++-------------
 datafusion/functions/src/unicode/mod.rs  | 28 +++++++----------
 9 files changed, 101 insertions(+), 153 deletions(-)

diff --git a/datafusion/functions/src/core/mod.rs 
b/datafusion/functions/src/core/mod.rs
index 24d26c5395..bd8305cd56 100644
--- a/datafusion/functions/src/core/mod.rs
+++ b/datafusion/functions/src/core/mod.rs
@@ -35,17 +35,17 @@ pub mod r#struct;
 pub mod version;
 
 // create UDFs
-make_udf_function!(arrow_cast::ArrowCastFunc, ARROW_CAST, arrow_cast);
-make_udf_function!(nullif::NullIfFunc, NULLIF, nullif);
-make_udf_function!(nvl::NVLFunc, NVL, nvl);
-make_udf_function!(nvl2::NVL2Func, NVL2, nvl2);
-make_udf_function!(arrowtypeof::ArrowTypeOfFunc, ARROWTYPEOF, arrow_typeof);
-make_udf_function!(r#struct::StructFunc, STRUCT, r#struct);
-make_udf_function!(named_struct::NamedStructFunc, NAMED_STRUCT, named_struct);
-make_udf_function!(getfield::GetFieldFunc, GET_FIELD, get_field);
-make_udf_function!(coalesce::CoalesceFunc, COALESCE, coalesce);
-make_udf_function!(greatest::GreatestFunc, GREATEST, greatest);
-make_udf_function!(version::VersionFunc, VERSION, version);
+make_udf_function!(arrow_cast::ArrowCastFunc, arrow_cast);
+make_udf_function!(nullif::NullIfFunc, nullif);
+make_udf_function!(nvl::NVLFunc, nvl);
+make_udf_function!(nvl2::NVL2Func, nvl2);
+make_udf_function!(arrowtypeof::ArrowTypeOfFunc, arrow_typeof);
+make_udf_function!(r#struct::StructFunc, r#struct);
+make_udf_function!(named_struct::NamedStructFunc, named_struct);
+make_udf_function!(getfield::GetFieldFunc, get_field);
+make_udf_function!(coalesce::CoalesceFunc, coalesce);
+make_udf_function!(greatest::GreatestFunc, greatest);
+make_udf_function!(version::VersionFunc, version);
 
 pub mod expr_fn {
     use datafusion_expr::{Expr, Literal};
diff --git a/datafusion/functions/src/crypto/mod.rs 
b/datafusion/functions/src/crypto/mod.rs
index 46177fc22b..62ea3c2e27 100644
--- a/datafusion/functions/src/crypto/mod.rs
+++ b/datafusion/functions/src/crypto/mod.rs
@@ -27,12 +27,12 @@ pub mod sha224;
 pub mod sha256;
 pub mod sha384;
 pub mod sha512;
-make_udf_function!(digest::DigestFunc, DIGEST, digest);
-make_udf_function!(md5::Md5Func, MD5, md5);
-make_udf_function!(sha224::SHA224Func, SHA224, sha224);
-make_udf_function!(sha256::SHA256Func, SHA256, sha256);
-make_udf_function!(sha384::SHA384Func, SHA384, sha384);
-make_udf_function!(sha512::SHA512Func, SHA512, sha512);
+make_udf_function!(digest::DigestFunc, digest);
+make_udf_function!(md5::Md5Func, md5);
+make_udf_function!(sha224::SHA224Func, sha224);
+make_udf_function!(sha256::SHA256Func, sha256);
+make_udf_function!(sha384::SHA384Func, sha384);
+make_udf_function!(sha512::SHA512Func, sha512);
 
 pub mod expr_fn {
     export_functions!((
diff --git a/datafusion/functions/src/datetime/mod.rs 
b/datafusion/functions/src/datetime/mod.rs
index db4e365267..96ca63010e 100644
--- a/datafusion/functions/src/datetime/mod.rs
+++ b/datafusion/functions/src/datetime/mod.rs
@@ -37,43 +37,23 @@ pub mod to_timestamp;
 pub mod to_unixtime;
 
 // create UDFs
-make_udf_function!(current_date::CurrentDateFunc, CURRENT_DATE, current_date);
-make_udf_function!(current_time::CurrentTimeFunc, CURRENT_TIME, current_time);
-make_udf_function!(date_bin::DateBinFunc, DATE_BIN, date_bin);
-make_udf_function!(date_part::DatePartFunc, DATE_PART, date_part);
-make_udf_function!(date_trunc::DateTruncFunc, DATE_TRUNC, date_trunc);
-make_udf_function!(make_date::MakeDateFunc, MAKE_DATE, make_date);
-make_udf_function!(
-    from_unixtime::FromUnixtimeFunc,
-    FROM_UNIXTIME,
-    from_unixtime
-);
-make_udf_function!(now::NowFunc, NOW, now);
-make_udf_function!(to_char::ToCharFunc, TO_CHAR, to_char);
-make_udf_function!(to_date::ToDateFunc, TO_DATE, to_date);
-make_udf_function!(to_local_time::ToLocalTimeFunc, TO_LOCAL_TIME, 
to_local_time);
-make_udf_function!(to_unixtime::ToUnixtimeFunc, TO_UNIXTIME, to_unixtime);
-make_udf_function!(to_timestamp::ToTimestampFunc, TO_TIMESTAMP, to_timestamp);
-make_udf_function!(
-    to_timestamp::ToTimestampSecondsFunc,
-    TO_TIMESTAMP_SECONDS,
-    to_timestamp_seconds
-);
-make_udf_function!(
-    to_timestamp::ToTimestampMillisFunc,
-    TO_TIMESTAMP_MILLIS,
-    to_timestamp_millis
-);
-make_udf_function!(
-    to_timestamp::ToTimestampMicrosFunc,
-    TO_TIMESTAMP_MICROS,
-    to_timestamp_micros
-);
-make_udf_function!(
-    to_timestamp::ToTimestampNanosFunc,
-    TO_TIMESTAMP_NANOS,
-    to_timestamp_nanos
-);
+make_udf_function!(current_date::CurrentDateFunc, current_date);
+make_udf_function!(current_time::CurrentTimeFunc, current_time);
+make_udf_function!(date_bin::DateBinFunc, date_bin);
+make_udf_function!(date_part::DatePartFunc, date_part);
+make_udf_function!(date_trunc::DateTruncFunc, date_trunc);
+make_udf_function!(make_date::MakeDateFunc, make_date);
+make_udf_function!(from_unixtime::FromUnixtimeFunc, from_unixtime);
+make_udf_function!(now::NowFunc, now);
+make_udf_function!(to_char::ToCharFunc, to_char);
+make_udf_function!(to_date::ToDateFunc, to_date);
+make_udf_function!(to_local_time::ToLocalTimeFunc, to_local_time);
+make_udf_function!(to_unixtime::ToUnixtimeFunc, to_unixtime);
+make_udf_function!(to_timestamp::ToTimestampFunc, to_timestamp);
+make_udf_function!(to_timestamp::ToTimestampSecondsFunc, to_timestamp_seconds);
+make_udf_function!(to_timestamp::ToTimestampMillisFunc, to_timestamp_millis);
+make_udf_function!(to_timestamp::ToTimestampMicrosFunc, to_timestamp_micros);
+make_udf_function!(to_timestamp::ToTimestampNanosFunc, to_timestamp_nanos);
 
 // we cannot currently use the export_functions macro since it doesn't handle
 // functions with varargs currently
diff --git a/datafusion/functions/src/encoding/mod.rs 
b/datafusion/functions/src/encoding/mod.rs
index 48171370ad..b0ddbd368a 100644
--- a/datafusion/functions/src/encoding/mod.rs
+++ b/datafusion/functions/src/encoding/mod.rs
@@ -21,8 +21,8 @@ use std::sync::Arc;
 pub mod inner;
 
 // create `encode` and `decode` UDFs
-make_udf_function!(inner::EncodeFunc, ENCODE, encode);
-make_udf_function!(inner::DecodeFunc, DECODE, decode);
+make_udf_function!(inner::EncodeFunc, encode);
+make_udf_function!(inner::DecodeFunc, decode);
 
 // Export the functions out of this package, both as expr_fn as well as a list 
of functions
 pub mod expr_fn {
diff --git a/datafusion/functions/src/macros.rs 
b/datafusion/functions/src/macros.rs
index bedec9bb2e..8230860149 100644
--- a/datafusion/functions/src/macros.rs
+++ b/datafusion/functions/src/macros.rs
@@ -65,24 +65,23 @@ macro_rules! export_functions {
     };
 }
 
-/// Creates a singleton `ScalarUDF` of the `$UDF` function named `$GNAME` and a
-/// function named `$NAME` which returns that singleton.
+/// Creates a singleton `ScalarUDF` of the `$UDF` function and a function
+/// named `$NAME` which returns that singleton.
 ///
 /// This is used to ensure creating the list of `ScalarUDF` only happens once.
 macro_rules! make_udf_function {
-    ($UDF:ty, $GNAME:ident, $NAME:ident) => {
-        #[doc = "Return a [`ScalarUDF`](datafusion_expr::ScalarUDF) 
implementation "]
-        #[doc = stringify!($UDF)]
+    ($UDF:ty, $NAME:ident) => {
+        #[doc = concat!("Return a [`ScalarUDF`](datafusion_expr::ScalarUDF) 
implementation of ", stringify!($NAME))]
         pub fn $NAME() -> std::sync::Arc<datafusion_expr::ScalarUDF> {
             // Singleton instance of the function
-            static $GNAME: std::sync::LazyLock<
+            static INSTANCE: std::sync::LazyLock<
                 std::sync::Arc<datafusion_expr::ScalarUDF>,
             > = std::sync::LazyLock::new(|| {
                 std::sync::Arc::new(datafusion_expr::ScalarUDF::new_from_impl(
                     <$UDF>::new(),
                 ))
             });
-            std::sync::Arc::clone(&$GNAME)
+            std::sync::Arc::clone(&INSTANCE)
         }
     };
 }
@@ -134,13 +133,13 @@ macro_rules! downcast_arg {
 /// applies a unary floating function to the argument, and returns a value of 
the same type.
 ///
 /// $UDF: the name of the UDF struct that implements `ScalarUDFImpl`
-/// $GNAME: a singleton instance of the UDF
 /// $NAME: the name of the function
 /// $UNARY_FUNC: the unary function to apply to the argument
 /// $OUTPUT_ORDERING: the output ordering calculation method of the function
+/// $GET_DOC: the function to get the documentation of the UDF
 macro_rules! make_math_unary_udf {
-    ($UDF:ident, $GNAME:ident, $NAME:ident, $UNARY_FUNC:ident, 
$OUTPUT_ORDERING:expr, $EVALUATE_BOUNDS:expr, $GET_DOC:expr) => {
-        make_udf_function!($NAME::$UDF, $GNAME, $NAME);
+    ($UDF:ident, $NAME:ident, $UNARY_FUNC:ident, $OUTPUT_ORDERING:expr, 
$EVALUATE_BOUNDS:expr, $GET_DOC:expr) => {
+        make_udf_function!($NAME::$UDF, $NAME);
 
         mod $NAME {
             use std::any::Any;
@@ -248,13 +247,13 @@ macro_rules! make_math_unary_udf {
 /// applies a binary floating function to the argument, and returns a value of 
the same type.
 ///
 /// $UDF: the name of the UDF struct that implements `ScalarUDFImpl`
-/// $GNAME: a singleton instance of the UDF
 /// $NAME: the name of the function
 /// $BINARY_FUNC: the binary function to apply to the argument
 /// $OUTPUT_ORDERING: the output ordering calculation method of the function
+/// $GET_DOC: the function to get the documentation of the UDF
 macro_rules! make_math_binary_udf {
-    ($UDF:ident, $GNAME:ident, $NAME:ident, $BINARY_FUNC:ident, 
$OUTPUT_ORDERING:expr, $GET_DOC:expr) => {
-        make_udf_function!($NAME::$UDF, $GNAME, $NAME);
+    ($UDF:ident, $NAME:ident, $BINARY_FUNC:ident, $OUTPUT_ORDERING:expr, 
$GET_DOC:expr) => {
+        make_udf_function!($NAME::$UDF, $NAME);
 
         mod $NAME {
             use std::any::Any;
diff --git a/datafusion/functions/src/math/mod.rs 
b/datafusion/functions/src/math/mod.rs
index 1452bfdee5..4eb337a301 100644
--- a/datafusion/functions/src/math/mod.rs
+++ b/datafusion/functions/src/math/mod.rs
@@ -40,10 +40,9 @@ pub mod signum;
 pub mod trunc;
 
 // Create UDFs
-make_udf_function!(abs::AbsFunc, ABS, abs);
+make_udf_function!(abs::AbsFunc, abs);
 make_math_unary_udf!(
     AcosFunc,
-    ACOS,
     acos,
     acos,
     super::acos_order,
@@ -52,7 +51,6 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     AcoshFunc,
-    ACOSH,
     acosh,
     acosh,
     super::acosh_order,
@@ -61,7 +59,6 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     AsinFunc,
-    ASIN,
     asin,
     asin,
     super::asin_order,
@@ -70,7 +67,6 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     AsinhFunc,
-    ASINH,
     asinh,
     asinh,
     super::asinh_order,
@@ -79,7 +75,6 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     AtanFunc,
-    ATAN,
     atan,
     atan,
     super::atan_order,
@@ -88,7 +83,6 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     AtanhFunc,
-    ATANH,
     atanh,
     atanh,
     super::atanh_order,
@@ -97,7 +91,6 @@ make_math_unary_udf!(
 );
 make_math_binary_udf!(
     Atan2,
-    ATAN2,
     atan2,
     atan2,
     super::atan2_order,
@@ -105,7 +98,6 @@ make_math_binary_udf!(
 );
 make_math_unary_udf!(
     CbrtFunc,
-    CBRT,
     cbrt,
     cbrt,
     super::cbrt_order,
@@ -114,7 +106,6 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     CeilFunc,
-    CEIL,
     ceil,
     ceil,
     super::ceil_order,
@@ -123,7 +114,6 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     CosFunc,
-    COS,
     cos,
     cos,
     super::cos_order,
@@ -132,17 +122,15 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     CoshFunc,
-    COSH,
     cosh,
     cosh,
     super::cosh_order,
     super::bounds::cosh_bounds,
     super::get_cosh_doc
 );
-make_udf_function!(cot::CotFunc, COT, cot);
+make_udf_function!(cot::CotFunc, cot);
 make_math_unary_udf!(
     DegreesFunc,
-    DEGREES,
     degrees,
     to_degrees,
     super::degrees_order,
@@ -151,31 +139,28 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     ExpFunc,
-    EXP,
     exp,
     exp,
     super::exp_order,
     super::bounds::exp_bounds,
     super::get_exp_doc
 );
-make_udf_function!(factorial::FactorialFunc, FACTORIAL, factorial);
+make_udf_function!(factorial::FactorialFunc, factorial);
 make_math_unary_udf!(
     FloorFunc,
-    FLOOR,
     floor,
     floor,
     super::floor_order,
     super::bounds::unbounded_bounds,
     super::get_floor_doc
 );
-make_udf_function!(log::LogFunc, LOG, log);
-make_udf_function!(gcd::GcdFunc, GCD, gcd);
-make_udf_function!(nans::IsNanFunc, ISNAN, isnan);
-make_udf_function!(iszero::IsZeroFunc, ISZERO, iszero);
-make_udf_function!(lcm::LcmFunc, LCM, lcm);
+make_udf_function!(log::LogFunc, log);
+make_udf_function!(gcd::GcdFunc, gcd);
+make_udf_function!(nans::IsNanFunc, isnan);
+make_udf_function!(iszero::IsZeroFunc, iszero);
+make_udf_function!(lcm::LcmFunc, lcm);
 make_math_unary_udf!(
     LnFunc,
-    LN,
     ln,
     ln,
     super::ln_order,
@@ -184,7 +169,6 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     Log2Func,
-    LOG2,
     log2,
     log2,
     super::log2_order,
@@ -193,31 +177,28 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     Log10Func,
-    LOG10,
     log10,
     log10,
     super::log10_order,
     super::bounds::unbounded_bounds,
     super::get_log10_doc
 );
-make_udf_function!(nanvl::NanvlFunc, NANVL, nanvl);
-make_udf_function!(pi::PiFunc, PI, pi);
-make_udf_function!(power::PowerFunc, POWER, power);
+make_udf_function!(nanvl::NanvlFunc, nanvl);
+make_udf_function!(pi::PiFunc, pi);
+make_udf_function!(power::PowerFunc, power);
 make_math_unary_udf!(
     RadiansFunc,
-    RADIANS,
     radians,
     to_radians,
     super::radians_order,
     super::bounds::radians_bounds,
     super::get_radians_doc
 );
-make_udf_function!(random::RandomFunc, RANDOM, random);
-make_udf_function!(round::RoundFunc, ROUND, round);
-make_udf_function!(signum::SignumFunc, SIGNUM, signum);
+make_udf_function!(random::RandomFunc, random);
+make_udf_function!(round::RoundFunc, round);
+make_udf_function!(signum::SignumFunc, signum);
 make_math_unary_udf!(
     SinFunc,
-    SIN,
     sin,
     sin,
     super::sin_order,
@@ -226,7 +207,6 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     SinhFunc,
-    SINH,
     sinh,
     sinh,
     super::sinh_order,
@@ -235,7 +215,6 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     SqrtFunc,
-    SQRT,
     sqrt,
     sqrt,
     super::sqrt_order,
@@ -244,7 +223,6 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     TanFunc,
-    TAN,
     tan,
     tan,
     super::tan_order,
@@ -253,14 +231,13 @@ make_math_unary_udf!(
 );
 make_math_unary_udf!(
     TanhFunc,
-    TANH,
     tanh,
     tanh,
     super::tanh_order,
     super::bounds::tanh_bounds,
     super::get_tanh_doc
 );
-make_udf_function!(trunc::TruncFunc, TRUNC, trunc);
+make_udf_function!(trunc::TruncFunc, trunc);
 
 pub mod expr_fn {
     export_functions!(
diff --git a/datafusion/functions/src/regex/mod.rs 
b/datafusion/functions/src/regex/mod.rs
index 803f51e915..13fbc049af 100644
--- a/datafusion/functions/src/regex/mod.rs
+++ b/datafusion/functions/src/regex/mod.rs
@@ -25,14 +25,10 @@ pub mod regexpmatch;
 pub mod regexpreplace;
 
 // create UDFs
-make_udf_function!(regexpcount::RegexpCountFunc, REGEXP_COUNT, regexp_count);
-make_udf_function!(regexpmatch::RegexpMatchFunc, REGEXP_MATCH, regexp_match);
-make_udf_function!(regexplike::RegexpLikeFunc, REGEXP_LIKE, regexp_like);
-make_udf_function!(
-    regexpreplace::RegexpReplaceFunc,
-    REGEXP_REPLACE,
-    regexp_replace
-);
+make_udf_function!(regexpcount::RegexpCountFunc, regexp_count);
+make_udf_function!(regexpmatch::RegexpMatchFunc, regexp_match);
+make_udf_function!(regexplike::RegexpLikeFunc, regexp_like);
+make_udf_function!(regexpreplace::RegexpReplaceFunc, regexp_replace);
 
 pub mod expr_fn {
     use datafusion_expr::Expr;
diff --git a/datafusion/functions/src/string/mod.rs 
b/datafusion/functions/src/string/mod.rs
index 622802f014..f156f070d9 100644
--- a/datafusion/functions/src/string/mod.rs
+++ b/datafusion/functions/src/string/mod.rs
@@ -45,28 +45,28 @@ pub mod to_hex;
 pub mod upper;
 pub mod uuid;
 // create UDFs
-make_udf_function!(ascii::AsciiFunc, ASCII, ascii);
-make_udf_function!(bit_length::BitLengthFunc, BIT_LENGTH, bit_length);
-make_udf_function!(btrim::BTrimFunc, BTRIM, btrim);
-make_udf_function!(chr::ChrFunc, CHR, chr);
-make_udf_function!(concat::ConcatFunc, CONCAT, concat);
-make_udf_function!(concat_ws::ConcatWsFunc, CONCAT_WS, concat_ws);
-make_udf_function!(ends_with::EndsWithFunc, ENDS_WITH, ends_with);
-make_udf_function!(initcap::InitcapFunc, INITCAP, initcap);
-make_udf_function!(levenshtein::LevenshteinFunc, LEVENSHTEIN, levenshtein);
-make_udf_function!(ltrim::LtrimFunc, LTRIM, ltrim);
-make_udf_function!(lower::LowerFunc, LOWER, lower);
-make_udf_function!(octet_length::OctetLengthFunc, OCTET_LENGTH, octet_length);
-make_udf_function!(overlay::OverlayFunc, OVERLAY, overlay);
-make_udf_function!(repeat::RepeatFunc, REPEAT, repeat);
-make_udf_function!(replace::ReplaceFunc, REPLACE, replace);
-make_udf_function!(rtrim::RtrimFunc, RTRIM, rtrim);
-make_udf_function!(starts_with::StartsWithFunc, STARTS_WITH, starts_with);
-make_udf_function!(split_part::SplitPartFunc, SPLIT_PART, split_part);
-make_udf_function!(to_hex::ToHexFunc, TO_HEX, to_hex);
-make_udf_function!(upper::UpperFunc, UPPER, upper);
-make_udf_function!(uuid::UuidFunc, UUID, uuid);
-make_udf_function!(contains::ContainsFunc, CONTAINS, contains);
+make_udf_function!(ascii::AsciiFunc, ascii);
+make_udf_function!(bit_length::BitLengthFunc, bit_length);
+make_udf_function!(btrim::BTrimFunc, btrim);
+make_udf_function!(chr::ChrFunc, chr);
+make_udf_function!(concat::ConcatFunc, concat);
+make_udf_function!(concat_ws::ConcatWsFunc, concat_ws);
+make_udf_function!(ends_with::EndsWithFunc, ends_with);
+make_udf_function!(initcap::InitcapFunc, initcap);
+make_udf_function!(levenshtein::LevenshteinFunc, levenshtein);
+make_udf_function!(ltrim::LtrimFunc, ltrim);
+make_udf_function!(lower::LowerFunc, lower);
+make_udf_function!(octet_length::OctetLengthFunc, octet_length);
+make_udf_function!(overlay::OverlayFunc, overlay);
+make_udf_function!(repeat::RepeatFunc, repeat);
+make_udf_function!(replace::ReplaceFunc, replace);
+make_udf_function!(rtrim::RtrimFunc, rtrim);
+make_udf_function!(starts_with::StartsWithFunc, starts_with);
+make_udf_function!(split_part::SplitPartFunc, split_part);
+make_udf_function!(to_hex::ToHexFunc, to_hex);
+make_udf_function!(upper::UpperFunc, upper);
+make_udf_function!(uuid::UuidFunc, uuid);
+make_udf_function!(contains::ContainsFunc, contains);
 pub mod expr_fn {
     use datafusion_expr::Expr;
 
diff --git a/datafusion/functions/src/unicode/mod.rs 
b/datafusion/functions/src/unicode/mod.rs
index 40915bc9ef..f31ece9196 100644
--- a/datafusion/functions/src/unicode/mod.rs
+++ b/datafusion/functions/src/unicode/mod.rs
@@ -34,22 +34,18 @@ pub mod substrindex;
 pub mod translate;
 
 // create UDFs
-make_udf_function!(
-    character_length::CharacterLengthFunc,
-    CHARACTER_LENGTH,
-    character_length
-);
-make_udf_function!(find_in_set::FindInSetFunc, FIND_IN_SET, find_in_set);
-make_udf_function!(left::LeftFunc, LEFT, left);
-make_udf_function!(lpad::LPadFunc, LPAD, lpad);
-make_udf_function!(right::RightFunc, RIGHT, right);
-make_udf_function!(reverse::ReverseFunc, REVERSE, reverse);
-make_udf_function!(rpad::RPadFunc, RPAD, rpad);
-make_udf_function!(strpos::StrposFunc, STRPOS, strpos);
-make_udf_function!(substr::SubstrFunc, SUBSTR, substr);
-make_udf_function!(substr::SubstrFunc, SUBSTRING, substring);
-make_udf_function!(substrindex::SubstrIndexFunc, SUBSTR_INDEX, substr_index);
-make_udf_function!(translate::TranslateFunc, TRANSLATE, translate);
+make_udf_function!(character_length::CharacterLengthFunc, character_length);
+make_udf_function!(find_in_set::FindInSetFunc, find_in_set);
+make_udf_function!(left::LeftFunc, left);
+make_udf_function!(lpad::LPadFunc, lpad);
+make_udf_function!(right::RightFunc, right);
+make_udf_function!(reverse::ReverseFunc, reverse);
+make_udf_function!(rpad::RPadFunc, rpad);
+make_udf_function!(strpos::StrposFunc, strpos);
+make_udf_function!(substr::SubstrFunc, substr);
+make_udf_function!(substr::SubstrFunc, substring);
+make_udf_function!(substrindex::SubstrIndexFunc, substr_index);
+make_udf_function!(translate::TranslateFunc, translate);
 
 pub mod expr_fn {
     use datafusion_expr::Expr;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to