Skip to content

Commit 0bda998

Browse files
authored
Fix: Include root package in search candidates when resolving dbt macros (#5349)
1 parent aa515c5 commit 0bda998

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

sqlmesh/dbt/adapter.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,15 @@ def _relevance(package_name_pair: t.Tuple[t.Optional[str], str]) -> t.Tuple[int,
139139
return name_score, package_score
140140

141141
jinja_env = self.jinja_macros.build_environment(**self.jinja_globals).globals
142-
packages_to_check: t.List[t.Optional[str]] = [
143-
macro_namespace,
144-
*(k for k in jinja_env if k.startswith("dbt")),
145-
]
142+
143+
packages_to_check: t.List[t.Optional[str]] = [None]
144+
if macro_namespace is not None:
145+
if macro_namespace in jinja_env:
146+
packages_to_check = [self.jinja_macros.root_package_name, macro_namespace]
147+
148+
# Add dbt packages as fallback
149+
packages_to_check.extend(k for k in jinja_env if k.startswith("dbt"))
150+
146151
candidates = {}
147152
for macro_package in packages_to_check:
148153
macros = jinja_env.get(macro_package, {}) if macro_package else jinja_env

tests/dbt/test_adapter.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ def test_adapter_dispatch(sushi_test_project: Project, runtime_renderer: t.Calla
242242
assert renderer("{{ adapter.dispatch('current_engine', 'customers')() }}") == "duckdb"
243243
assert renderer("{{ adapter.dispatch('current_timestamp')() }}") == "now()"
244244
assert renderer("{{ adapter.dispatch('current_timestamp', 'dbt')() }}") == "now()"
245+
assert renderer("{{ adapter.dispatch('select_distinct', 'customers')() }}") == "distinct"
245246

246247
# test with keyword arguments
247248
assert (
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{% macro default__select_distinct() %}distinct{% endmacro %}

0 commit comments

Comments
 (0)