Skip to content

Commit 0d2db98

Browse files
authored
GH-50752: [C++][Compute] Fix unused variable warning when ARROW_WITH_RE2 is disabled (#50754)
### Rationale for this change This change fixes the following build error: ``` /arrow/cpp/src/arrow/compute/kernels/scalar_string_ascii.cc:1753:16: error: unused variable ‘is_utf8’ [-Werror=unused-variable] 1753 | const bool is_utf8 = is_string_or_string_view(batch[0].type()->id()); | ^~~~~~~ ``` The `is_utf8` variable introduced by commit 374db36 is unused when `ARROW_WITH_RE2=OFF` is specified. ```diff static Status Exec(KernelContext* ctx, const ExecSpan& batch, ExecResult* out) { const MatchSubstringOptions& options = MatchSubstringState::Get(ctx); + const bool is_utf8 = is_string_or_string_view(batch[0].type()->id()); if (options.ignore_case) { ARROW_ASSIGN_OR_RAISE(auto matcher, - FindSubstringRegex::Make(options, InputType::is_utf8, true)); - applicator::ScalarUnaryNotNullStateful<OffsetType, InputType, FindSubstringRegex> + FindSubstringRegex::Make(options, is_utf8, true)); + applicator::ScalarUnaryNotNullStateful<OffsetType, InputPhysicalType, + FindSubstringRegex> kernel{std::move(matcher)}; return kernel.Exec(ctx, batch, out); return Status::NotImplemented("ignore_case requires RE2"); } - applicator::ScalarUnaryNotNullStateful<OffsetType, InputType, FindSubstring> kernel{ - FindSubstring(PlainSubstringMatcher(options))}; + applicator::ScalarUnaryNotNullStateful<OffsetType, InputPhysicalType, FindSubstring> + kernel{FindSubstring(PlainSubstringMatcher(options))}; return kernel.Exec(ctx, batch, out); } }; ``` Therefore, I move the declaration of `is_utf8` inside the `#ifdef ARROW_WITH_RE2` block to prevent this error. ### What changes are included in this PR? I move the declaration of `is_utf8` inside the `#ifdef ARROW_WITH_RE2` block to prevent this error. This PR does not includes breaking changes to public APIs. This PR does not contains a "Critical Fix". ### Are these changes tested? Yes. This change only moves the declaration of `is_utf8` and does not change any logic. Therefore, the existing tests introduced by 374db36 should continue to pass. These tests are already covered by CI, and CI passes successfully with this change. No new tests are added because this change only moves a variable declaration and does not affect behavior. I have confirmed that C++ CI checks pass on my fork. See: https://github.com/komainu8/arrow/actions/runs/30619400223/job/91120073626 ### Are there any user-facing changes? No. * GitHub Issue: #50752 Authored-by: Horimoto Yasuhiro <horimoto@clear-code.com> Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
1 parent 43d5f8b commit 0d2db98

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

cpp/src/arrow/compute/kernels/scalar_string_ascii.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1750,9 +1750,9 @@ struct FindSubstringExec {
17501750

17511751
static Status Exec(KernelContext* ctx, const ExecSpan& batch, ExecResult* out) {
17521752
const MatchSubstringOptions& options = MatchSubstringState::Get(ctx);
1753-
const bool is_utf8 = is_string_or_string_view(batch[0].type()->id());
17541753
if (options.ignore_case) {
17551754
#ifdef ARROW_WITH_RE2
1755+
const bool is_utf8 = is_string_or_string_view(batch[0].type()->id());
17561756
ARROW_ASSIGN_OR_RAISE(auto matcher,
17571757
FindSubstringRegex::Make(options, is_utf8, true));
17581758
applicator::ScalarUnaryNotNullStateful<OffsetType, InputPhysicalType,

0 commit comments

Comments
 (0)