@@ -229,13 +229,11 @@ def version(self):
229
229
230
230
@property
231
231
def current_database (self ) -> str :
232
- [(db ,)] = self ._session .sql ("SELECT CURRENT_DATABASE()" ).collect ()
233
- return db
232
+ return self ._session .catalog .currentDatabase ()
234
233
235
234
@property
236
235
def current_catalog (self ) -> str :
237
- [(catalog ,)] = self ._session .sql ("SELECT CURRENT_CATALOG()" ).collect ()
238
- return catalog
236
+ return self ._session .catalog .currentCatalog ()
239
237
240
238
@contextlib .contextmanager
241
239
def _active_catalog_database (self , catalog : str | None , db : str | None ):
@@ -349,7 +347,7 @@ def _active_catalog(self, name: str | None):
349
347
catalog_api .setCurrentDatabase (prev_database )
350
348
351
349
def list_catalogs (self , * , like : str | None = None ) -> list [str ]:
352
- catalogs = [res . catalog for res in self ._session .sql ( "SHOW CATALOGS" ). collect ()]
350
+ catalogs = [cat . name for cat in self ._session .catalog . listCatalogs ()]
353
351
return self ._filter_with_like (catalogs , like )
354
352
355
353
def list_databases (
@@ -378,12 +376,11 @@ def list_tables(
378
376
"""
379
377
table_loc = self ._to_sqlglot_table (database )
380
378
catalog , db = self ._to_catalog_db_tuple (table_loc )
379
+ if db is None :
380
+ db = self .current_database
381
381
with self ._active_catalog (catalog ):
382
382
tables = [
383
- row .tableName
384
- for row in self ._session .sql (
385
- f"SHOW TABLES IN { db or self .current_database } "
386
- ).collect ()
383
+ table .name for table in self ._session .catalog .listTables (dbName = db )
387
384
]
388
385
return self ._filter_with_like (tables , like )
389
386
0 commit comments