Skip to content

Commit 9948dec

Browse files
authored
Fix: ensure MacroEvaluator.columns_to_types returns types as DataTypes (#2694)
1 parent 4f324ff commit 9948dec

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

sqlmesh/core/macros.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,9 @@ def columns_to_types(self, model_name: TableName | exp.Column) -> t.Dict[str, ex
413413
default_catalog=self.default_catalog,
414414
dialect=self.dialect,
415415
)
416-
columns_to_types = self._schema.find(exp.to_table(normalized_model_name))
416+
columns_to_types = self._schema.find(
417+
exp.to_table(normalized_model_name), ensure_data_types=True
418+
)
417419
if columns_to_types is None:
418420
raise SQLMeshError(f"Schema for model '{model_name}' can't be statically determined.")
419421

tests/core/test_macros.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,15 @@ def test_default_arg_coercion(
9696

9797
def test_star(assert_exp_eq) -> None:
9898
sql = """SELECT @STAR(foo) FROM foo"""
99-
expected_sql = """SELECT CAST([foo].[a] AS DATETIMEOFFSET) AS [a] FROM foo"""
99+
expected_sql = """SELECT CAST([foo].[a] AS DATETIMEOFFSET) AS [a], CAST([foo].[b] AS INTEGER) AS [b] FROM foo"""
100100
schema = MappingSchema(
101-
{"foo": {"a": exp.DataType.build("datetimeoffset", dialect="tsql")}}, dialect="tsql"
101+
{
102+
"foo": {
103+
"a": exp.DataType.build("datetimeoffset", dialect="tsql"),
104+
"b": "int",
105+
},
106+
},
107+
dialect="tsql",
102108
)
103109
evaluator = MacroEvaluator(schema=schema, dialect="tsql")
104110
assert_exp_eq(evaluator.transform(parse_one(sql, read="tsql")), expected_sql, dialect="tsql")

0 commit comments

Comments
 (0)