From 658468f7de36eef429c6eed25dd52063b6a68889 Mon Sep 17 00:00:00 2001 From: Weijun Huang Date: Tue, 22 Aug 2023 17:42:13 +0800 Subject: [PATCH] feat: support Binary for regrep_replace --- datafusion/expr/src/built_in_function.rs | 4 ++-- datafusion/sqllogictest/test_files/functions.slt | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/datafusion/expr/src/built_in_function.rs b/datafusion/expr/src/built_in_function.rs index 0fb23be5afa6..e3eba459ee41 100644 --- a/datafusion/expr/src/built_in_function.rs +++ b/datafusion/expr/src/built_in_function.rs @@ -1404,8 +1404,8 @@ macro_rules! make_utf8_to_return_type { ($FUNC:ident, $largeUtf8Type:expr, $utf8Type:expr) => { fn $FUNC(arg_type: &DataType, name: &str) -> Result { Ok(match arg_type { - DataType::LargeUtf8 => $largeUtf8Type, - DataType::Utf8 => $utf8Type, + DataType::LargeUtf8 | DataType::LargeBinary=> $largeUtf8Type, + DataType::Utf8 | DataType::Binary => $utf8Type, DataType::Null => DataType::Null, DataType::Dictionary(_, value_type) => match **value_type { DataType::LargeUtf8 => $largeUtf8Type, diff --git a/datafusion/sqllogictest/test_files/functions.slt b/datafusion/sqllogictest/test_files/functions.slt index d6831cbd8ba3..c83383ecc75d 100644 --- a/datafusion/sqllogictest/test_files/functions.slt +++ b/datafusion/sqllogictest/test_files/functions.slt @@ -678,6 +678,11 @@ SELECT regexp_replace('foobar', 'bar', 'xx', 'gi') ---- fooxx +query T +SELECT regexp_replace(arrow_cast('foobar', 'Binary'), arrow_cast('bar', 'Binary'), arrow_cast('xx', 'Binary'), arrow_cast('gi', 'Binary')) +---- +fooxx + query T SELECT regexp_replace(arrow_cast('foobar', 'Dictionary(Int32, Utf8)'), 'bar', 'xx', 'gi') ----