Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions core/wren/justfile
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ test-postgres:
test-mysql:
uv run pytest tests/connectors/test_mysql.py -v -m mysql

test-trino:
uv run pytest tests/connectors/test_trino.py -v -m trino

test-connector marker:
uv run pytest tests/connectors/ -v -m {{ marker }}

Expand Down
2 changes: 1 addition & 1 deletion core/wren/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ mysql = ["mysqlclient>=2.2", "ibis-framework[mysql]"]
bigquery = ["ibis-framework[bigquery]", "google-auth"]
snowflake = ["ibis-framework[snowflake]"]
clickhouse = ["ibis-framework[clickhouse]"]
trino = ["ibis-framework[trino]", "trino>=0.321"]
trino = ["trino>=0.333,<1"]
mssql = ["ibis-framework[mssql]"]
databricks = ["databricks-sql-connector", "databricks-sdk"]
redshift = ["redshift_connector"]
Expand Down
2 changes: 1 addition & 1 deletion core/wren/src/wren/connector/factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
DataSource.redshift: "wren.connector.redshift",
DataSource.spark: "wren.connector.spark",
DataSource.databricks: "wren.connector.databricks",
DataSource.trino: "wren.connector.ibis",
DataSource.trino: "wren.connector.trino",
DataSource.clickhouse: "wren.connector.ibis",
DataSource.oracle: "wren.connector.oracle",
DataSource.snowflake: "wren.connector.ibis",
Expand Down
40 changes: 0 additions & 40 deletions core/wren/src/wren/connector/ibis.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,45 +16,6 @@ class _ClickHouseDbError(Exception):
pass


class TrinoConnector(IbisConnector):
def __init__(self, connection_info):
super().__init__(DataSource.trino, connection_info)

def query(self, sql: str, limit: int | None = None) -> pa.Table:
import trino # noqa: PLC0415

try:
return super().query(sql, limit)
except trino.exceptions.TrinoQueryError as e:
if not e.error_name == "EXCEEDED_TIME_LIMIT":
raise WrenError(
ErrorCode.INVALID_SQL,
str(e),
phase=ErrorPhase.SQL_EXECUTION,
metadata={DIALECT_SQL: sql},
) from e
raise
except (WrenError, TimeoutError):
raise

def dry_run(self, sql: str) -> None:
import trino # noqa: PLC0415

try:
super().dry_run(sql)
except trino.exceptions.TrinoQueryError as e:
if not e.error_name == "EXCEEDED_TIME_LIMIT":
raise WrenError(
ErrorCode.INVALID_SQL,
str(e),
phase=ErrorPhase.SQL_DRY_RUN,
metadata={DIALECT_SQL: sql},
) from e
raise
except (WrenError, TimeoutError):
raise


class ClickHouseConnector(IbisConnector):
def __init__(self, connection_info):
super().__init__(DataSource.clickhouse, connection_info)
Expand Down Expand Up @@ -91,7 +52,6 @@ def dry_run(self, sql: str) -> None:


_DATA_SOURCE_TO_CLASS = {
DataSource.trino: TrinoConnector,
DataSource.clickhouse: ClickHouseConnector,
}

Expand Down
Loading
Loading