Presto Driver v0.1.0-alpha.3¶
Driver Version v0.1.0-alpha.3 Release Date 2026-10-09 Tested With Presto 0.295
Warning
This is documentation for a prerelease version.
This driver provides access to Presto , a free and open-source distributed SQL query engine.
Installation¶
The Presto driver can be installed with dbc :
dbc install --pre presto
Connecting¶
To use the driver, provide a Presto connection string as the uri option.
from adbc_driver_manager import dbapi
dbapi.connect(
driver="presto", db_kwargs={"uri": "presto://user@localhost:8443/tpch/tiny"}
)
Note: The example above is for Python using the adbc-driver-manager package but the process will be similar for other driver managers. See adbc-quickstarts .
Connection String Format¶
presto://[user[:password]@]host[:port][/catalog[/schema]][?attribute1=value1&attribute2=value2...]
Components:
Scheme:
presto://(also acceptshttps://, andhttp://for unencrypted connections)user: Optional (for authentication)password: Optional (for authentication, requires user)host: Required (no default)port: Optional (defaults to 8443, or 8080 forhttp://)catalog: Optional (Presto catalog name)schema: Optional (schema within catalog)Query params: TLS attributes (see below); unrecognized parameters are passed to Presto as session properties
Note
Reserved characters in URI elements must be URI-encoded. For example, @ becomes %40. If you include a zone ID in an IPv6 address, the % character used as the separator must be replaced with %25.
HTTPS/SSL Configuration¶
Connections use HTTPS by default.
This applies to presto://, https://, and URIs without a scheme. To
connect without TLS, use an explicit http:// URI.
The following query parameters configure TLS:
ssl_ca: Path to a PEM CA certificate used to verify the serverssl_certandssl_key: Paths to a PEM client certificate and key for mutual TLSssl_skip_verify=true: Disable server certificate verification while maintaining an encrypted HTTPS connection (for self-signed certificates; not recommended for production)
Examples:
presto://presto.example.com/hive/sales→ HTTPS on default port 8443, verified against the system trust storepresto://presto.example.com/hive/sales?ssl_ca=/path/to/ca.pem→ HTTPS with a custom CApresto://user@localhost:8443/hive/default?ssl_skip_verify=true→ HTTPS without certificate verification (self-signed certificates)http://user@localhost:8080/memory/default?query_max_stage_count=100→ unencrypted HTTP with a Presto session property
See Presto Concepts for more information on catalogs and schemas, and the Go Presto Client documentation for the underlying DSN reference.
Feature & Type Support¶
| Feature | Presto | |
|---|---|---|
| Bind Parameters | ✅ | |
| Bulk Ingestion | Create | ✅ |
| Append | ✅ | |
| Create/Append | ✅ | |
| Replace | ✅ | |
| Temporary Table | ❌ | |
| Target Catalog | ✅ | |
| Target Schema | ✅ | |
| Non-nullable fields are marked NOT NULL | ❌ | |
| Catalog (GetObjects) | depth=catalogs | ✅ |
| depth=db_schemas | ✅ | |
| depth=tables | ✅ | |
| depth=columns (all) | ✅ | |
| Get Parameter Schema | ❌ | |
| Get Table Schema | ✅ | |
| Prepared Statements | ✅ | |
| Transactions | ❌ | |
Types¶
Database to Arrow¶
| Database Type | Presto |
|---|---|
|
ARRAY |
string |
|
BIGINT |
int64 ⚠️ [1] |
|
BOOLEAN |
bool |
|
DATE |
date32[day] |
|
DECIMAL |
string |
|
DOUBLE PRECISION |
double |
|
INT |
int32 |
|
INTERVAL DAY TO SECOND |
month_day_nano_interval |
|
INTERVAL YEAR TO MONTH |
month_day_nano_interval |
|
IPADDRESS |
string |
|
REAL |
float |
|
SMALLINT |
int16 |
|
TIME |
time32[ms] |
|
TIMESTAMP |
timestamp[ms] |
|
TIMESTAMP WITH TIME ZONE |
timestamp[ms] (with time zone) |
|
UUID |
extension<arrow.uuid> |
|
VARBINARY |
binary |
|
VARCHAR |
string |
Arrow to Database¶
| Arrow Type | Presto Type | |
|---|---|---|
| Bind | Ingest | |
|
binary |
VARBINARY |
|
|
binary_view |
VARBINARY |
|
|
bool |
BOOLEAN |
|
|
date32[day] |
DATE |
|
|
decimal128 |
DECIMAL |
DECIMAL ⚠️ [2] |
|
double |
DOUBLE PRECISION |
|
|
extension<arrow.uuid> |
UUID |
|
|
fixed_size_binary |
VARBINARY |
|
|
float |
REAL |
|
|
halffloat |
REAL |
(NA/not tested) |
|
int16 |
SMALLINT |
|
|
int32 |
INT |
|
|
int64 |
BIGINT ⚠️ [1] |
|
|
large_binary |
VARBINARY |
|
|
large_string |
VARCHAR |
|
|
string |
IPADDRESS, VARCHAR |
VARCHAR |
|
string_view |
VARCHAR |
|
|
time32[ms] |
TIME |
|
|
timestamp[ms] |
TIMESTAMP(3) |
|
|
timestamp[ms] (with time zone) |
TIMESTAMP(3) WITH TIME ZONE |
|
|
timestamp[ns] |
(NA/not tested) |
TIMESTAMP(9) [3] |
|
timestamp[ns] (with time zone) |
(NA/not tested) |
TIMESTAMP(9) WITH TIME ZONE [3] |
|
timestamp[s] |
(NA/not tested) |
TIMESTAMP(0) |
|
timestamp[s] (with time zone) |
(NA/not tested) |
TIMESTAMP(0) WITH TIME ZONE |
|
timestamp[us] |
(NA/not tested) |
TIMESTAMP(6) [3] |
|
timestamp[us] (with time zone) |
(NA/not tested) |
TIMESTAMP(6) WITH TIME ZONE [3] |
Options¶
uriRequired. Type: string.
The connection URI described in Connection String Format.
usernameType: string.
User name for HTTP basic authentication. Overrides the user name in
uri.passwordType: string.
Password for HTTP basic authentication. Overrides the password in
uri. Use basic authentication only over HTTPS, since the password is otherwise sent in clear text.
Compatibility¶
This driver was tested on:
Presto
Presto 0.299-7d50721