Add RFC for ADBC Driver for Presto - #65
Open
jja725 wants to merge 4 commits into
Open
Conversation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
|
@ethanyzhang @aditi-pandit would appreciate your feedback |
aditi-pandit
requested review from
BryanCutler,
aditi-pandit and
pdabre12
and
a balanced review from Copilot
August 17, 2026 17:15
Copilot stopped reviewing on behalf of
aditi-pandit due to an error
August 17, 2026 17:35
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds a new RFC proposing an official ADBC (Arrow Database Connectivity) driver for Presto, describing motivation, architecture, type mapping, packaging, and test/adoption plans.
Changes:
- Introduces an RFC document outlining a Go-based ADBC driver for Presto built on
driverbase-goand the Presto Go client v2. - Documents connection URI forms, TLS/auth behavior, and Presto-specific behavioral differences vs Trino.
- Specifies an adoption plan and existing prototype test strategy.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+94
to
+107
| | Presto type | Arrow type (canonical, per `presto-common-arrow`) | | ||
| |---|---| | ||
| | `BOOLEAN` | `Bool` | | ||
| | `TINYINT` / `SMALLINT` / `INTEGER` / `BIGINT` | `Int8` / `Int16` / `Int32` / `Int64` | | ||
| | `REAL` / `DOUBLE` | `Float32` / `Float64` | | ||
| | `DECIMAL(p,s)` | `Decimal128(p,s)` | | ||
| | `VARCHAR` / `CHAR` | `Utf8` | | ||
| | `VARBINARY` | `Binary` | | ||
| | `DATE` | `Date32` | | ||
| | `TIME` | `Time` | | ||
| | `TIMESTAMP` | `Timestamp(ms)` | | ||
| | `ARRAY(T)` | `List` | | ||
| | `MAP(K,V)` | `Map` | | ||
| | `ROW(...)` | `Struct` | |
Comment on lines
+111
to
+115
| | Presto type | Initial driver mapping | Reason | | ||
| |---|---|---| | ||
| | `DECIMAL(p,s)` | `Utf8` (decimal string) | REST returns decimals as JSON strings; lossless as text | | ||
| | `ARRAY` / `MAP` / `ROW` | `Utf8` (JSON) | REST returns nested values as JSON; Go client exposes them as strings | | ||
| | `TIMESTAMP` / `TIME` | millisecond precision | Presto's REST responses carry millisecond precision | |
Comment on lines
+103
to
+108
| | `TIME` | `Time` | | ||
| | `TIMESTAMP` | `Timestamp(ms)` | | ||
| | `ARRAY(T)` | `List` | | ||
| | `MAP(K,V)` | `Map` | | ||
| | `ROW(...)` | `Struct` | | ||
|
|
| |---|---|---| | ||
| | `DECIMAL(p,s)` | `Utf8` (decimal string) | REST returns decimals as JSON strings; lossless as text | | ||
| | `ARRAY` / `MAP` / `ROW` | `Utf8` (JSON) | REST returns nested values as JSON; Go client exposes them as strings | | ||
| | `TIMESTAMP` / `TIME` | millisecond precision | Presto's REST responses carry millisecond precision | |
| @@ -0,0 +1,159 @@ | |||
| # RFC: ADBC Driver for Presto | |||
|
|
|||
| Proposers | |||
… add ADBC API coverage - Renumber to RFC-0027 (RFC-0026 is claimed by prestodb#64, the companion server-side ADBC connector RFC) - Clarify that the presto-common-arrow mapping is Arrow-to-Presto and the driver defines the inverse direction, owning the CHAR extension - Replace the partial deviation table with the complete result mapping: TIMESTAMP/TIME WITH TIME ZONE, intervals, IPADDRESS, UUID extension type, UNKNOWN, and an explicit Utf8 fallback rule for all other types - Document nullability and field-metadata guarantees, SQL NULL vs JSON null semantics, and a planned opt-in Decimal128 decoding option - Add an ADBC API coverage matrix (prepare, binding, transactions, cancellation, ExecutePartitions, Substrait) - Enumerate recognized URI parameters, note the passthrough convention is inherited from the Go client v2 DSN, and document the loud failure mode for mistyped options
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This RFC proposes an official ADBC (Arrow Database Connectivity) driver for Presto, implemented in Go on top of the ADBC
driverbase-goframework and wrapping the Presto Go client v2 (RFC-0022).adbc-driversorganizationRelated: