Skip to content

Is soda-core-duckdb compatible with GraalPy? #511

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
vprotsiv opened this issue Jun 4, 2025 · 5 comments
Closed

Is soda-core-duckdb compatible with GraalPy? #511

vprotsiv opened this issue Jun 4, 2025 · 5 comments

Comments

@vprotsiv
Copy link

vprotsiv commented Jun 4, 2025

I'm trying to use soda-core-duckdb with GraalPy . However, the installation of the duckdb dependency fails during compilation with the following error:

...
 -I/Users/vprotsiv/.pyenv/versions/graalpy-24.2.0/include/python3.11 -c duckdb_build/ub_src_core_functions_scalar_string.cpp -o build/temp.macosx-15.4-arm64-graalpy242-311/duckdb_build/ub_src_core_functions_scalar_string.o -std=c++11 -g0 -stdlib=libc++ -mmacosx-version-min=10.7
[error]    error: command '/usr/bin/g++' failed with exit code 1
[error]    [end of output]
[error]
[error]  note: This error originates from a subprocess, and is likely not a problem with pip.
[error]  ERROR: Failed building wheel for duckdb
[info] Failed to build duckdb
[error] ERROR: Could not build wheels for duckdb, which is required to install pyproject.toml-based projects
[info] Python environment setup complete.

Is soda-core-duckdb expected to work with GraalPy?
Are there any workarounds?

@msimacek
Copy link
Contributor

msimacek commented Jun 4, 2025

Hi. We have never tested it, but I could install duckdb just fine on 24.2.1. Can you post the whole build log?

@vprotsiv
Copy link
Author

vprotsiv commented Jun 4, 2025

term_saved_out.txt

@vprotsiv
Copy link
Author

vprotsiv commented Jun 4, 2025

Hi. We have never tested it, but I could install duckdb just fine on 24.2.1. Can you post the whole build log?

Hi @msimacek , I've shared the log in the comment above. Btw, I had the same issue on 24.2.1

@msimacek
Copy link
Contributor

msimacek commented Jun 4, 2025

The actual error seems to be this:

[error]       In file included from duckdb_build/ub_src_core_functions_aggregate_distributive.cpp:3:
[error]       duckdb_build/src/core_functions/aggregate/distributive/arg_min_max.cpp:167:20: error: a template argument list is expected after a name prefixed by the template keyword [-Wmissing-template-arg-list-after-template-kw]
[error]         167 |                         STATE::template ReadValue(finalize_data.result, state.arg, target);
[error]             |                                         ^

That is not a problem with GraalPy, but with compiling the source in general. It seems that recent versions of clang are more strict with regards to some C++ template syntax. I found some blogpost that mentions exactly this problem when building duckdb from source: https://www.stoutpanda.com/posts/building-duck-db-on-ubuntu/
You can try setting CXXFLAGS="-Wno-missing-template-arg-list-after-template-kw -Wno-writable-strings" (just a guess, I couldn't reproduce the problem even with my version of clang, so I don't know if it really helps) or switching the c++ compiler to gcc's g++.

@vprotsiv
Copy link
Author

vprotsiv commented Jun 4, 2025

The problem was solved by setting CXXFLAGS="-Wno-missing-template-arg-list-after-template-kw -Wno-writable-strings".
Thank you

@vprotsiv vprotsiv closed this as completed Jun 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants