Skip to content

Database request: Add Trino support (plugin driver) #1906

Description

@datlechin

Problem

Trino (formerly PrestoSQL) is a widely used distributed SQL query engine for federated analytics over data lakes, object stores, and other databases. TablePro can't connect to a Trino cluster today, so users querying lakehouse-style workloads have to fall back to the Trino CLI or DBeaver.

Proposed solution

Add a registry-only database-driver plugin for Trino, alongside the existing plugin drivers (MSSQL, Snowflake, ClickHouse-style analytics engines), so the core app takes on no new dependency and updates ship through the registry.

Trino speaks a documented HTTP REST protocol (JSON over POST /v1/statement with follow-on nextUri polling), so the driver can be a pure-Swift wire client with no C bridge, similar in shape to the API-based drivers (BigQuery, Snowflake, Cloudflare D1). Scope:

  1. DriverPlugin + PluginDatabaseDriver implementation issuing statements over the REST protocol and paging results via nextUri.
  2. Auth: password (LDAP/PASSWORD over HTTPS) and JWT bearer token to start; note Kerberos/OAuth2 as follow-ups.
  3. Catalog/schema/table browsing via SHOW CATALOGS / SHOW SCHEMAS / information_schema, mapped through the schema-aware browse-query overload.
  4. Type mapping for Trino's type system (varchar, varbinary, decimal, array/map/row, timestamp with/without time zone).
  5. Read-focused first cut; DML/DDL where the connected catalog supports it.
  6. DatabaseType.trino static constant, resolve_plugin_info() mapping in build-plugin.yml, docs/index.mdx supported-databases row, CHANGELOG entry.

Presto compatibility can be considered later since the protocol is close, but Trino is the priority.

Open questions

  • Default port is 8080 (HTTP); confirm how to surface the required catalog/schema in the connection form (Trino connections are catalog-scoped).
  • Whether to reuse the existing analytics-engine result handling or add Trino-specific streaming for large result sets.
  • Auth matrix priority: PASSWORD vs JWT vs OAuth2/Kerberos.

Tracking

This issue tracks the overall Trino support effort. Sub-tasks (protocol client, auth, schema browsing, type mapping, registry publish) will be broken out as work starts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions