Skip to content
This repository was archived by the owner on May 5, 2022. It is now read-only.

Commit a6a475d

Browse files
committed
feat: implement get_indexes
1 parent c5be8a4 commit a6a475d

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

sqlalchemy_trino/dialect.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,10 @@ def get_columns(self, connection: Connection,
9292
table_name: str, schema: str = None, **kw) -> List[Dict[str, Any]]:
9393
if not self.has_table(connection, table_name, schema):
9494
raise exc.NoSuchTableError(f"schema={schema}, table={table_name}")
95+
return self._get_columns(connection, table_name, schema, **kw)
96+
97+
def _get_columns(self, connection: Connection,
98+
table_name: str, schema: str = None, **kw) -> List[Dict[str, Any]]:
9599
schema = schema or self._get_default_schema_name(connection)
96100
query = dedent("""
97101
SELECT
@@ -179,7 +183,16 @@ def get_view_definition(self, connection: Connection, view_name: str, schema: st
179183

180184
def get_indexes(self, connection: Connection,
181185
table_name: str, schema: str = None, **kw) -> List[Dict[str, Any]]:
182-
pass
186+
if not self.has_table(connection, table_name, schema):
187+
raise exc.NoSuchTableError(f"schema={schema}, table={table_name}")
188+
189+
partitioned_columns = self._get_columns(connection, f"{table_name}$partitions", schema, **kw)
190+
partition_index = dict(
191+
name="partition",
192+
column_names=[col['name'] for col in partitioned_columns],
193+
unique=False
194+
)
195+
return [partition_index, ]
183196

184197
def get_unique_constraints(self, connection: Connection,
185198
table_name: str, schema: str = None, **kw) -> List[Dict[str, Any]]:

0 commit comments

Comments
 (0)