Skip to content

Commit 6386a93

Browse files
Fix: Handle macros in model properties when formatting (#4144)
1 parent b304428 commit 6386a93

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

sqlmesh/core/dialect.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,10 @@ def _props_sql(self: Generator, expressions: t.List[exp.Expression]) -> str:
634634
size = len(expressions)
635635

636636
for i, prop in enumerate(expressions):
637-
sql = self.indent(f"{prop.name} {self.sql(prop, 'value')}")
637+
if isinstance(prop, MacroFunc):
638+
sql = self.indent(self.sql(prop, comment=False))
639+
else:
640+
sql = self.indent(f"{prop.name} {self.sql(prop, 'value')}")
638641

639642
if i < size - 1:
640643
sql += ","

tests/core/test_dialect.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def test_format_model_expressions():
2626
a,
2727
(b, c) as d,
2828
), -- c
29+
@macro_prop_with_comment(proper := 'foo'), -- k
2930
audits [
3031
not_null(columns=[
3132
foo_id,
@@ -91,6 +92,7 @@ def test_format_model_expressions():
9192
name a.b, /* a */
9293
kind FULL, /* b */
9394
references (a, (b, c) AS d), /* c */
95+
@macro_prop_with_comment(proper := 'foo'), /* k */
9496
audits ARRAY(
9597
NOT_NULL(
9698
columns = ARRAY(
@@ -269,7 +271,7 @@ def test_format_body_macros():
269271
format_model_expressions(
270272
parse(
271273
"""
272-
Model ( name foo );
274+
Model ( name foo , @macro_dialect(), @properties_macro(prop_1 := 'max', prop_2 := 33));
273275
@WITH(TRUE) x AS (SELECT 1)
274276
SELECT col::int
275277
FROM foo
@@ -281,7 +283,9 @@ def test_format_body_macros():
281283
)
282284
)
283285
== """MODEL (
284-
name foo
286+
name foo,
287+
@macro_dialect(),
288+
@properties_macro(prop_1 := 'max', prop_2 := 33)
285289
);
286290
287291
@WITH(TRUE) x AS (

0 commit comments

Comments
 (0)