From c90674dc320674793c0028f3d9ec724aac3b327c Mon Sep 17 00:00:00 2001 From: Vincent Chan Date: Wed, 10 Sep 2025 23:29:50 -0700 Subject: [PATCH] Fix: Include root package in search candidates when resolving macros --- sqlmesh/dbt/adapter.py | 5 +++-- tests/dbt/test_adapter.py | 1 + tests/fixtures/dbt/sushi_test/macros/distinct.sql | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 tests/fixtures/dbt/sushi_test/macros/distinct.sql diff --git a/sqlmesh/dbt/adapter.py b/sqlmesh/dbt/adapter.py index 236d4cee6b..336665411e 100644 --- a/sqlmesh/dbt/adapter.py +++ b/sqlmesh/dbt/adapter.py @@ -135,10 +135,11 @@ def _relevance(package_name_pair: t.Tuple[t.Optional[str], str]) -> t.Tuple[int, return name_score, package_score jinja_env = self.jinja_macros.build_environment(**self.jinja_globals).globals - packages_to_check: t.List[t.Optional[str]] = [ + packages_to_check: t.Set[t.Optional[str]] = { package, + self.jinja_macros.root_package_name, *(k for k in jinja_env if k.startswith("dbt")), - ] + } candidates = {} for macro_package in packages_to_check: macros = jinja_env.get(macro_package, {}) if macro_package else jinja_env diff --git a/tests/dbt/test_adapter.py b/tests/dbt/test_adapter.py index 85dfa29559..743fddc298 100644 --- a/tests/dbt/test_adapter.py +++ b/tests/dbt/test_adapter.py @@ -242,6 +242,7 @@ def test_adapter_dispatch(sushi_test_project: Project, runtime_renderer: t.Calla assert renderer("{{ adapter.dispatch('current_engine', 'customers')() }}") == "duckdb" assert renderer("{{ adapter.dispatch('current_timestamp')() }}") == "now()" assert renderer("{{ adapter.dispatch('current_timestamp', 'dbt')() }}") == "now()" + assert renderer("{{ adapter.dispatch('select_distinct', 'customers')() }}") == "distinct" with pytest.raises(ConfigError, match=r"Macro 'current_engine'.*was not found."): renderer("{{ adapter.dispatch('current_engine')() }}") diff --git a/tests/fixtures/dbt/sushi_test/macros/distinct.sql b/tests/fixtures/dbt/sushi_test/macros/distinct.sql new file mode 100644 index 0000000000..1b339a9349 --- /dev/null +++ b/tests/fixtures/dbt/sushi_test/macros/distinct.sql @@ -0,0 +1 @@ +{% macro default__select_distinct() %}distinct{% endmacro %}