Future proof duckdb-java by making it a named module.
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 48/100
Research direction
Start with the module-info.java and package-info.java files named in the proposal, then reproduce the Java module compilation failure using the example requires declarations. Determine the module metadata and package definitions needed for the org.duckdb library; done means a named client module can resolve org.duckdb without the reported module-not-found errors.
Written by the indexing model from the issue text.
Description
Bug definition
I just hit an unexpected compile time error when I named my module, which requires org.duckdb
To Reproduce
module com.example.dsl.dsl.main {
requires org.duckdb; // This is currently results in a compile time error as duckdb-java is yet to have a module definition
//requires duckdb.jdbc;
requires java.sql;
// ...
exports com.example.dsl.sql.core;
exports com.example.dsl.sql.dialects;
exports com.example.dsl.sql.errors;
exports com.example.dsl.sql.execution;
exports com.example.dsl.sql.transactions;
provides com.example.dsl.sql.execution.SqlExecutor
with com.example.dsl.sql.execution.DuckDBExecutor,
com.example.dsl.sql.execution.SQLiteExecutor,
com.example.dsl.sql.execution.PostgreSQLExecutor;
}
/// This produces the following compile time error:
org.duckdb - Module not found: org.duckdb
duckdb.jdbc - dsl/src/main/java/module-info.java:24: error: module not found: duckdb.jdbc
requires duckdb.jdbc;
Solution proposal
Add module-info.java (module definition) for the org.duckdb library to, add/move package-info.java (package definition) to the respective packages e.g., org.duckdb.io, org.duckdb.user
Alternatives I've considered
Leave it as is, but eventually we will have to handle this, particularly for this library as the java platform evolves:
- <https://docs.oracle.com/en/java/javase/24/docs/api/java.base/java/lang/doc-files/RestrictedMethods.html>
- <https://inside.java/2024/12/09/quality-heads-up/>
Environment
- OS: Linux
- CPU architecture: amd64
- org.duckdb.duckdb_jdbc version v1.3.1.0
- Dominant language
- C++
- Stars
- 127
- Forks
- 80
- Avg merge
- 13h 41m
- Merged PRs (30d)
- 44
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from duckdb/duckdb-java
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
duckdb/duckdb-java#832 · 2 comments ·
-
Native SIGSEGV in DuckDB JDBC when repeatedly executing queries with window functions and LIMIT 0 Open
Difficulty 4/5 3-5 days Newbie friendliness 48/100
duckdb/duckdb-java#871 · 4 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
duckdb/duckdb-java#872 ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
duckdb/duckdb-java#837 ·
-
executeBatch()` on a prepared INSERT runs s are ~1–2 orders of magnitude slower than the Appender Open
Difficulty 5/5 Over a week Newbie friendliness 42/100
duckdb/duckdb-java#815 · 1 comment ·
All issues in duckdb/duckdb-java
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
AXERA-TECH/ax-llm#77 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
games-on-whales/wolf#509 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
bug-unconfirmed
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
NVIDIA/cuda-samples#453 ·