From 1a139e63c0f7af44f8e2f12a9d34f16e03b76a52 Mon Sep 17 00:00:00 2001 From: Yuan Zhou Date: Thu, 23 Jan 2025 11:08:52 +0800 Subject: [PATCH] Revert "fix: regexp_extract returns match in mismatched group (#12109)" This reverts commit 58ff4ac87d8dafc2e26efb771893e8004e9648fa. --- velox/functions/lib/Re2Functions.cpp | 10 ++-------- velox/functions/lib/tests/Re2FunctionsTest.cpp | 3 --- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/velox/functions/lib/Re2Functions.cpp b/velox/functions/lib/Re2Functions.cpp index 78ce3e2f29b5..ef1291fbe9d5 100644 --- a/velox/functions/lib/Re2Functions.cpp +++ b/velox/functions/lib/Re2Functions.cpp @@ -144,14 +144,8 @@ bool re2Extract( } } else { const re2::StringPiece extracted = groups[groupId]; - // Check if the extracted data is null. - if (extracted.data()) { - result.setNoCopy(row, StringView(extracted.data(), extracted.size())); - return !StringView::isInline(extracted.size()); - } else { - result.setNull(row, true); - return false; - } + result.setNoCopy(row, StringView(extracted.data(), extracted.size())); + return !StringView::isInline(extracted.size()); } } diff --git a/velox/functions/lib/tests/Re2FunctionsTest.cpp b/velox/functions/lib/tests/Re2FunctionsTest.cpp index f27d9cb46453..58fd48ea5de9 100644 --- a/velox/functions/lib/tests/Re2FunctionsTest.cpp +++ b/velox/functions/lib/tests/Re2FunctionsTest.cpp @@ -369,9 +369,6 @@ void testRe2Extract(F&& regexExtract) { EXPECT_EQ(regexExtract(std::nullopt, "\\d+", 0), std::nullopt); EXPECT_EQ(regexExtract(" 123 ", std::nullopt, 0), std::nullopt); EXPECT_EQ(regexExtract(" 123 ", "\\d+", std::nullopt), std::nullopt); - // Group case that mismatch. - EXPECT_EQ( - regexExtract("rat cat\nbat dog", "ra(.)|blah(.)(.)", 2), std::nullopt); } TEST_F(Re2FunctionsTest, regexExtract) {