Skip to content

Commit 790459a

Browse files
committed
[C++][Gandiva] Replace RegexUtil out references with pointer out args
1 parent cc15bf1 commit 790459a

4 files changed

Lines changed: 14 additions & 14 deletions

File tree

cpp/src/gandiva/regex_functions_holder.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ Result<std::shared_ptr<LikeHolder>> LikeHolder::Make(const FunctionNode& node) {
129129

130130
Result<std::shared_ptr<LikeHolder>> LikeHolder::Make(const std::string& sql_pattern) {
131131
std::string pcre_pattern;
132-
ARROW_RETURN_NOT_OK(RegexUtil::SqlLikePatternToPcre(sql_pattern, pcre_pattern));
132+
ARROW_RETURN_NOT_OK(RegexUtil::SqlLikePatternToPcre(sql_pattern, &pcre_pattern));
133133

134134
RE2::Options regex_op;
135135
regex_op.set_dot_nl(true); // set dotall mode for the regex.
@@ -150,9 +150,9 @@ Result<std::shared_ptr<LikeHolder>> LikeHolder::Make(const std::string& sql_patt
150150
std::string pcre_pattern;
151151
if (escape_char.length() == 1) {
152152
ARROW_RETURN_NOT_OK(
153-
RegexUtil::SqlLikePatternToPcre(sql_pattern, escape_char.at(0), pcre_pattern));
153+
RegexUtil::SqlLikePatternToPcre(sql_pattern, escape_char.at(0), &pcre_pattern));
154154
} else {
155-
ARROW_RETURN_NOT_OK(RegexUtil::SqlLikePatternToPcre(sql_pattern, pcre_pattern));
155+
ARROW_RETURN_NOT_OK(RegexUtil::SqlLikePatternToPcre(sql_pattern, &pcre_pattern));
156156
}
157157

158158
auto lholder = std::shared_ptr<LikeHolder>(new LikeHolder(pcre_pattern, regex_op));
@@ -166,7 +166,7 @@ Result<std::shared_ptr<LikeHolder>> LikeHolder::Make(const std::string& sql_patt
166166
Result<std::shared_ptr<LikeHolder>> LikeHolder::Make(const std::string& sql_pattern,
167167
RE2::Options regex_op) {
168168
std::string pcre_pattern;
169-
ARROW_RETURN_NOT_OK(RegexUtil::SqlLikePatternToPcre(sql_pattern, pcre_pattern));
169+
ARROW_RETURN_NOT_OK(RegexUtil::SqlLikePatternToPcre(sql_pattern, &pcre_pattern));
170170

171171
auto lholder = std::shared_ptr<LikeHolder>(new LikeHolder(pcre_pattern, regex_op));
172172

cpp/src/gandiva/regex_functions_holder_test.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ TEST_F(TestLikeHolder, TestPcreSpecialWithNewLine) {
8989

9090
TEST_F(TestLikeHolder, TestRegexEscape) {
9191
std::string res;
92-
ARROW_EXPECT_OK(RegexUtil::SqlLikePatternToPcre("#%hello#_abc_def##", '#', res));
92+
ARROW_EXPECT_OK(RegexUtil::SqlLikePatternToPcre("#%hello#_abc_def##", '#', &res));
9393

9494
EXPECT_EQ(res, "%hello_abc.def#");
9595
}

cpp/src/gandiva/regex_util.cc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,16 @@ const std::set<char> RegexUtil::pcre_regex_specials_ = {
2323
'[', ']', '(', ')', '|', '^', '-', '+', '*', '?', '{', '}', '$', '\\', '.'};
2424

2525
Status RegexUtil::SqlLikePatternToPcre(const std::string& sql_pattern, char escape_char,
26-
std::string& pcre_pattern) {
26+
std::string* pcre_pattern) {
2727
/// Characters that are considered special by pcre regex. These needs to be
2828
/// escaped with '\\'.
29-
pcre_pattern.clear();
29+
pcre_pattern->clear();
3030
for (size_t idx = 0; idx < sql_pattern.size(); ++idx) {
3131
auto cur = sql_pattern.at(idx);
3232

3333
// Escape any char that is special for pcre regex
3434
if (pcre_regex_specials_.find(cur) != pcre_regex_specials_.end()) {
35-
pcre_pattern += "\\";
35+
(*pcre_pattern) += "\\";
3636
}
3737

3838
if (cur == escape_char) {
@@ -44,17 +44,17 @@ Status RegexUtil::SqlLikePatternToPcre(const std::string& sql_pattern, char esca
4444

4545
cur = sql_pattern.at(idx);
4646
if (cur == '_' || cur == '%' || cur == escape_char) {
47-
pcre_pattern += cur;
47+
(*pcre_pattern) += cur;
4848
} else {
4949
return Status::Invalid("Invalid escape sequence in pattern ", sql_pattern,
5050
" at offset ", idx);
5151
}
5252
} else if (cur == '_') {
53-
pcre_pattern += '.';
53+
(*pcre_pattern) += '.';
5454
} else if (cur == '%') {
55-
pcre_pattern += ".*";
55+
(*pcre_pattern) += ".*";
5656
} else {
57-
pcre_pattern += cur;
57+
(*pcre_pattern) += cur;
5858
}
5959
}
6060
return Status::OK();

cpp/src/gandiva/regex_util.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ class GANDIVA_EXPORT RegexUtil {
3131
public:
3232
// Convert an sql pattern to a pcre pattern
3333
static Status SqlLikePatternToPcre(const std::string& like_pattern, char escape_char,
34-
std::string& pcre_pattern);
34+
std::string* pcre_pattern);
3535

3636
static Status SqlLikePatternToPcre(const std::string& like_pattern,
37-
std::string& pcre_pattern) {
37+
std::string* pcre_pattern) {
3838
return SqlLikePatternToPcre(like_pattern, 0 /*escape_char*/, pcre_pattern);
3939
}
4040

0 commit comments

Comments
 (0)