Skip to content

[WAYANG-55] Implement JDBC Driver for Apache Wayang#719

Open
harshitsingh070 wants to merge 1 commit intoapache:mainfrom
harshitsingh070:wayang-jdbc-driver
Open

[WAYANG-55] Implement JDBC Driver for Apache Wayang#719
harshitsingh070 wants to merge 1 commit intoapache:mainfrom
harshitsingh070:wayang-jdbc-driver

Conversation

@harshitsingh070
Copy link

@harshitsingh070 harshitsingh070 commented Mar 13, 2026

[WAYANG-55] Implement JDBC Driver for Apache Wayang

Fixes: https://issues.apache.org/jira/browse/WAYANG-55

This PR introduces a JDBC driver module that enables SQL clients and
external tools to connect to Apache Wayang using the standard JDBC interface.

Key features:

  • JDBC driver entry point (jdbc:wayang:)
  • WayangConnection, WayangStatement, WayangPreparedStatement
  • ResultSet backed by Wayang Record objects
  • DatabaseMetaData and ResultSetMetaData support
  • Metadata discovery (getTables, getColumns, getSchemas)
  • SPI driver registration (META-INF/services/java.sql.Driver)
  • Integration tests (19 tests passing)

The driver delegates SQL execution to Wayang's SQL API.

@harshitsingh070 harshitsingh070 changed the title Introduce JDBC driver module for Apache Wayang Introduce JDBC driver module for Apache Wayang (GSOC 2026) Mar 13, 2026
@harshitsingh070 harshitsingh070 marked this pull request as ready for review March 13, 2026 17:37
@harshitsingh070 harshitsingh070 marked this pull request as draft March 13, 2026 17:37
@harshitsingh070 harshitsingh070 changed the title Introduce JDBC driver module for Apache Wayang (GSOC 2026) [WAYANG-55] Implement JDBC Driver for Apache Wayang Mar 16, 2026
@harshitsingh070 harshitsingh070 marked this pull request as ready for review March 16, 2026 17:07
@harshitsingh070
Copy link
Author

Hi @zkaoudi — following up on this PR after a few updates.

Since the initial submission, I’ve made a few improvements:

  • Fixed SqlContext.executeSql() to use Optimizer.convertWithConfig() so the Wayang configuration is properly propagated
  • Implemented getTables(), getColumns(), and getSchemas() in DatabaseMetaData
  • All 19 unit and integration tests are passing (including end-to-end SQL execution)

The current design directly implements java.sql interfaces and delegates execution to api-sql.

I’d appreciate feedback on:

  • whether this approach aligns with Wayang’s architecture or if using Calcite Avatica would be preferred
  • expectations around DatabaseMetaData completeness

Happy to split this into smaller PRs if that makes review easier.

@harshitsingh070
Copy link
Author

Added documentation for this driver in #722.

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

Successfully merging this pull request may close these issues.

1 participant