Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Running driver on not officially supported platforms

Open
#605 3 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
java
Domain
databases

Research direction

Start by tracing the cpuArch and osName entry points, the OVERRIDE_JDBC_OS_ARCH handling, and the plain duckdb_java loading path in DuckDBNative. Clarify which proposed strategy is wanted; done should allow the JDBC driver to run on an unsupported platform while preserving a useful original error if loading fails.

Written by the indexing model from the issue text.

Description

Description

It's not possible to run the driver on platforms that are not officially supported.

  • Regardless of which version of duckdb_jdbc_* is used, it calls cpuArch and osName unconditionally before it tries to load plain duckdb_java.
    Each of them throws IllegalStateException if being run not on one of the hardcoded OS's / architectures.
  • There's OVERRIDE_JDBC_OS_ARCH to enforce the correct arch for the native part, but there's no such option for OS_NAME.

I'd be happy to provide a PR for this.
Any ideas on how to address it?
From my side, I can see the below options.

Suggestions
For the native part

Introduce OVERRIDE_JDBC_OS_NAME.

Option 1 for the Java part (more generic)

Package a properties file that'd contain all the mappings between os.name / os.arch <-> OS / arch used by DuckDBNative, and load it in runtime.
It could contain all the officially supported platforms + extra platforms defined in build time / edited in pre-built jars.

E.g.

<...>
duckdb.os.arch.arm64 = aarch64,arm64
duckdb.os.name.linux = linux
<...>

It'd allow using the official build in the most flexible way.

Option 2 for the Java part (more conservative)

Catch IllegalStateException("Unsupported <...>"), try to load plain duckdb_java. If the latter fails, throw the original error.
Or something like this.

It'd allow using duckdb_jdbc-*-nolib.jar on such platforms.

Thank you.

Dominant language
C++
Stars
127
Forks
81
Avg merge
7h 57m
Merged PRs (30d)
38

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from duckdb/duckdb-java

All issues in duckdb/duckdb-java

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.