Skip to content

Commit c90674d

Browse files
committed
Fix: Include root package in search candidates when resolving macros
1 parent 203b74e commit c90674d

File tree

3 files changed

+5
-2
lines changed

3 files changed

+5
-2
lines changed

sqlmesh/dbt/adapter.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,11 @@ def _relevance(package_name_pair: t.Tuple[t.Optional[str], str]) -> t.Tuple[int,
135135
return name_score, package_score
136136

137137
jinja_env = self.jinja_macros.build_environment(**self.jinja_globals).globals
138-
packages_to_check: t.List[t.Optional[str]] = [
138+
packages_to_check: t.Set[t.Optional[str]] = {
139139
package,
140+
self.jinja_macros.root_package_name,
140141
*(k for k in jinja_env if k.startswith("dbt")),
141-
]
142+
}
142143
candidates = {}
143144
for macro_package in packages_to_check:
144145
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
with pytest.raises(ConfigError, match=r"Macro 'current_engine'.*was not found."):
247248
renderer("{{ adapter.dispatch('current_engine')() }}")
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)