Skip to content

Commit ed6804b

Browse files
Minor refactor and adding mocked current catalog to unit test
Signed-off-by: Bjarke Enkelund <47357343+MisterWheatley@users.noreply.github.com>
1 parent 60b5390 commit ed6804b

2 files changed

Lines changed: 15 additions & 2 deletions

File tree

sqlmesh/core/engine_adapter/databricks.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -416,14 +416,16 @@ def columns(
416416
self, table_name: TableName, include_pseudo_columns: bool = False
417417
) -> t.Dict[str, exp.DataType]:
418418
table = exp.to_table(table_name)
419+
420+
column_catalog = table.catalog or self.get_current_catalog()
419421
query = (
420422
exp.select("columns.column_name", "columns.full_data_type")
421423
.from_("system.information_schema.columns")
422424
.where(
423425
exp.and_(
424-
exp.column("table_catalog").eq(table.catalog),
425-
exp.column("table_schema").eq(table.db),
426426
exp.column("table_name").eq(table.name),
427+
exp.column("table_schema").eq(table.db),
428+
exp.column("table_catalog").eq(column_catalog),
427429
)
428430
)
429431
.order_by("ordinal_position ASC")

tests/core/engine_adapter/test_databricks.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,10 @@ def test_drop_data_object_materialized_view_calls_correct_drop(mocker: MockFixtu
531531
def test_columns(mocker: MockFixture, make_mocked_engine_adapter: t.Callable):
532532
adapter = make_mocked_engine_adapter(DatabricksEngineAdapter, default_catalog="test_catalog")
533533

534+
# Override/mock get_current_catalog to return default
535+
current_catalog_mock = mocker.patch.object(
536+
adapter, "get_current_catalog", return_value="test_catalog"
537+
)
534538
# create long struct columns datatype
535539
long_struct_cols = [f"a_{i}:int" for i in range(50)]
536540
adapter.cursor.fetchall.return_value = [
@@ -573,3 +577,10 @@ def test_columns(mocker: MockFixture, make_mocked_engine_adapter: t.Callable):
573577
f"struct<{','.join(long_struct_cols)}>", dialect=adapter.dialect
574578
),
575579
}
580+
581+
adapter.cursor.fetchall.assert_called_once_with(
582+
parse_one(
583+
"""SELECT columns.column_name, columns.full_data_type FROM system.information_schema.columns WHERE table_name = 'test_table' AND table_schema = 'test_db' AND table_catalog = 'test_catalog' ORDER BY ordinal_position ASC""",
584+
dialect="databricks",
585+
)
586+
)

0 commit comments

Comments
 (0)