Skip to content

Commit 3b945d1

Browse files
z3z1maizeigerman
andauthored
Fix: set default catalog in jinja resolve table (#3769)
Co-authored-by: Iaroslav Zeigerman <zeigerman.ia@gmail.com>
1 parent 46a28b6 commit 3b945d1

2 files changed

Lines changed: 31 additions & 1 deletion

File tree

sqlmesh/core/renderer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ def _render(
142142
"default_catalog": self._default_catalog,
143143
"runtime_stage": runtime_stage.value,
144144
"resolve_table": lambda table: self._resolve_table(
145-
table,
145+
d.normalize_model_name(table, self._default_catalog, self._dialect),
146146
snapshots=snapshots,
147147
table_mapping=table_mapping,
148148
deployability_index=deployability_index,

tests/core/test_model.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6566,6 +6566,36 @@ def resolve_parent(evaluator, name):
65666566
assert len(post_statements) == 1
65676567
assert post_statements[0].sql() == f'"sqlmesh__default"."parent__{version}"'
65686568

6569+
# test with additional nesting level and default catalog
6570+
for post_statement in (
6571+
"JINJA_STATEMENT_BEGIN; {{ resolve_table('schema.parent') }}; JINJA_END;",
6572+
"@resolve_parent('schema.parent')",
6573+
):
6574+
expressions = d.parse(
6575+
f"""
6576+
MODEL (name schema.child);
6577+
6578+
SELECT c FROM schema.parent;
6579+
6580+
{post_statement}
6581+
"""
6582+
)
6583+
child = load_sql_based_model(expressions, default_catalog="main")
6584+
parent = load_sql_based_model(
6585+
d.parse("MODEL (name schema.parent); SELECT 1 AS c"), default_catalog="main"
6586+
)
6587+
6588+
parent_snapshot = make_snapshot(parent)
6589+
parent_snapshot.categorize_as(SnapshotChangeCategory.BREAKING)
6590+
version = parent_snapshot.version
6591+
6592+
post_statements = child.render_post_statements(
6593+
snapshots={'"main"."schema"."parent"': parent_snapshot}
6594+
)
6595+
6596+
assert len(post_statements) == 1
6597+
assert post_statements[0].sql() == f'"main"."sqlmesh__schema"."schema__parent__{version}"'
6598+
65696599

65706600
def test_cluster_with_complex_expression():
65716601
expressions = d.parse(

0 commit comments

Comments
 (0)