From 5273ce6832a39c8031abfd7bef294c6c50b0f006 Mon Sep 17 00:00:00 2001 From: Jonathan Chen Date: Wed, 13 Nov 2024 20:13:16 -0500 Subject: [PATCH 1/2] Add TypeSignature::String --- .../functions/src/regex/regexpreplace.rs | 7 +------ datafusion/sqllogictest/test_files/regexp.slt | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/datafusion/functions/src/regex/regexpreplace.rs b/datafusion/functions/src/regex/regexpreplace.rs index 4d8e5e5fe3e3..2cfb6258c20a 100644 --- a/datafusion/functions/src/regex/regexpreplace.rs +++ b/datafusion/functions/src/regex/regexpreplace.rs @@ -56,12 +56,7 @@ impl RegexpReplaceFunc { use DataType::*; Self { signature: Signature::one_of( - vec![ - TypeSignature::Exact(vec![Utf8, Utf8, Utf8]), - TypeSignature::Exact(vec![Utf8View, Utf8, Utf8]), - TypeSignature::Exact(vec![Utf8, Utf8, Utf8, Utf8]), - TypeSignature::Exact(vec![Utf8View, Utf8, Utf8, Utf8]), - ], + vec![TypeSignature::String(3), TypeSignature::String(4)], Volatility::Immutable, ), } diff --git a/datafusion/sqllogictest/test_files/regexp.slt b/datafusion/sqllogictest/test_files/regexp.slt index 800026dd766d..e82f2a40435c 100644 --- a/datafusion/sqllogictest/test_files/regexp.slt +++ b/datafusion/sqllogictest/test_files/regexp.slt @@ -424,6 +424,26 @@ from (values ('a'), ('b')) as tbl(col); NULL NULL NULL NULL NULL NULL +query T +SELECT regexp_replace('a(b(c)d)e', '\\((b(c)d)\\)', '[\\1]', 'g') AS result; +---- +a(b(c)d)e + +# Utf8 +query T +SELECT regexp_replace('Café Münchén', 'é', 'e', 'g') AS result; +---- +Cafe München + +query T +SELECT regexp_replace(arrow_cast(123.45, 'Utf8'), '\\.', 'X', 'g') AS result; +---- +123.45 + +query T +SELECT regexp_replace(12345, '2', 'X', 'g') AS result; +---- + # multiline string query B SELECT 'foo\nbar\nbaz' ~ 'bar'; From daa5fe4de0284e1b5903b1c7e71d0abe67a52a12 Mon Sep 17 00:00:00 2001 From: Jonathan Chen Date: Sun, 17 Nov 2024 00:17:55 -0500 Subject: [PATCH 2/2] remove tests --- datafusion/sqllogictest/test_files/regexp.slt | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/datafusion/sqllogictest/test_files/regexp.slt b/datafusion/sqllogictest/test_files/regexp.slt index e82f2a40435c..800026dd766d 100644 --- a/datafusion/sqllogictest/test_files/regexp.slt +++ b/datafusion/sqllogictest/test_files/regexp.slt @@ -424,26 +424,6 @@ from (values ('a'), ('b')) as tbl(col); NULL NULL NULL NULL NULL NULL -query T -SELECT regexp_replace('a(b(c)d)e', '\\((b(c)d)\\)', '[\\1]', 'g') AS result; ----- -a(b(c)d)e - -# Utf8 -query T -SELECT regexp_replace('Café Münchén', 'é', 'e', 'g') AS result; ----- -Cafe München - -query T -SELECT regexp_replace(arrow_cast(123.45, 'Utf8'), '\\.', 'X', 'g') AS result; ----- -123.45 - -query T -SELECT regexp_replace(12345, '2', 'X', 'g') AS result; ----- - # multiline string query B SELECT 'foo\nbar\nbaz' ~ 'bar';