Skip to content

Conversation

@kou
Copy link
Member

@kou kou commented Aug 13, 2025

Rationale for this change

gandiva::Cache requires pointer type for value type.

What changes are included in this PR?

Use std::shared_ptr<std::string> not std::string for ValueType.

Are these changes tested?

Yes.

Are there any user-facing changes?

No.

@kou kou added the CI: Extra Run extra CI label Aug 13, 2025
@github-actions
Copy link

⚠️ GitHub issue #47317 has been automatically assigned in GitHub to PR creator.

`gandiva::Cache` requires pointer type for value type.
@kou kou force-pushed the cpp-cpp23-gandiva branch from a686d65 to dc132b2 Compare August 13, 2025 03:01
@kou
Copy link
Member Author

kou commented Aug 13, 2025

Passed with GCC 12:

https://github.com/apache/arrow/actions/runs/16926330455/job/47962616526?pr=47318#step:6:4091

100% tests passed, 0 tests failed out of 106

I'll update to Debian 13 from 12 to use more recent GCC.

@kou kou force-pushed the cpp-cpp23-gandiva branch from 95f1f0a to a39c27c Compare August 13, 2025 10:11
@WillAyd
Copy link
Contributor

WillAyd commented Aug 13, 2025

I think the Meson failure will require #47041 to pass

@kou
Copy link
Member Author

kou commented Aug 14, 2025

Hmm. It seems that newer (unreleased RapidJSON) is installed by conda:

https://github.com/apache/arrow/actions/runs/16934205748/job/47986801327?pr=47318#step:6:346

rapidjson                 1.1.0.post20240409      h3f2d84a_2    conda-forge

but it's not detected by Meson:

https://github.com/apache/arrow/actions/runs/16934205748/job/47986801327?pr=47318#step:6:502

Run-time dependency rapidjson found: NO (tried pkgconfig)

I think that it's a problem.

Anyway, let's work on it as a separated task.

I'll merge this because I could confirm that this PR can fix GCC 12 + C++23 problem and GCC 14 + C++23 has another problems.

@kou kou merged commit 6660e84 into apache:main Aug 14, 2025
32 of 34 checks passed
@kou kou deleted the cpp-cpp23-gandiva branch August 14, 2025 03:06
@kou kou removed the awaiting committer review Awaiting committer review label Aug 14, 2025
@WillAyd
Copy link
Contributor

WillAyd commented Aug 14, 2025

Ah cool. I didn't realize conda patched RapidJSON like that.

I guess the problem is that Meson is using pkg-config to search for the dependency, and being header-only there is no .pc file distributed with it (I think this is intentional, but if not I don't see a .pc file when installing locally via conda).

Per Meson's dependency detection logic, I wonder if we just need to be more clear that rapidjson should be detected as a system dependency, and let it search the PATH for the header:

https://mesonbuild.com/Dependencies.html#dependency-detection-method

@kou
Copy link
Member Author

kou commented Aug 14, 2025

It seems that conda's rapidjson package https://anaconda.org/conda-forge/rapidjson includes RapidJSON.pc:

https://anaconda.org/conda-forge/rapidjson/1.1.0.post20240409/download/linux-64/rapidjson-1.1.0.post20240409-h3f2d84a_2.conda

$ find . -name '*.pc'
./lib/pkgconfig/RapidJSON.pc

It seems that we need to use dependency('RapidJSON') not dependency('rapidjson').

@conbench-apache-arrow
Copy link

After merging your PR, Conbench analyzed the 4 benchmarking runs that have been run so far on merge-commit 6660e84.

There weren't enough matching historic benchmark results to make a call on whether there were regressions.

The full Conbench report has more details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants