Skip to content

Commit c1cda7e

Browse files
authored
Fix: pass dialect to name field value converter (#1949)
* fix: pass dialect to name value converter * chore: add tests and use field name
1 parent d480f07 commit c1cda7e

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

sqlmesh/core/model/definition.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,13 @@ def render_definition(self, include_python: bool = True) -> t.List[exp.Expressio
178178
value=field_value.to_expression(dialect=self.dialect),
179179
)
180180
)
181+
elif field_name == "name":
182+
expressions.append(
183+
exp.Property(
184+
this=field_name,
185+
value=exp.to_table(field_value, dialect=self.dialect),
186+
)
187+
)
181188
elif field_name not in ("column_descriptions_", "default_catalog"):
182189
expressions.append(
183190
exp.Property(
@@ -1928,7 +1935,6 @@ def _refs_to_sql(values: t.Any) -> exp.Expression:
19281935

19291936

19301937
META_FIELD_CONVERTER: t.Dict[str, t.Callable] = {
1931-
"name": lambda value: exp.to_table(value),
19321938
"start": lambda value: exp.Literal.string(value),
19331939
"cron": lambda value: exp.Literal.string(value),
19341940
"batch_size": lambda value: exp.Literal.number(value),

tests/core/test_model.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2522,6 +2522,26 @@ def test_scd_type_2_overrides():
25222522
assert not scd_type_2_model.kind.disable_restatement
25232523

25242524

2525+
def test_model_dialect_name():
2526+
expressions = d.parse(
2527+
"""
2528+
MODEL (
2529+
name `project-1`.`db`.`tbl1`,
2530+
dialect bigquery
2531+
);
2532+
SELECT 1;
2533+
"""
2534+
)
2535+
2536+
model = load_sql_based_model(expressions)
2537+
assert model.fqn == '"project-1"."db"."tbl1"'
2538+
2539+
model = create_external_model(
2540+
"`project-1`.`db`.`tbl1`", columns={"x": "STRING"}, dialect="bigquery"
2541+
)
2542+
assert "name `project-1`.`db`.`tbl1`" in model.render_definition()[0].sql(dialect="bigquery")
2543+
2544+
25252545
def test_model_allow_partials():
25262546
expressions = d.parse(
25272547
"""

0 commit comments

Comments
 (0)