From f91c584b714eb2655c88e412ba746e9af722f280 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 17:06:00 +0000 Subject: [PATCH 1/2] fix: add ref() macro override for dbt-core 1.11 compatibility Some adapters (e.g. dbt-dremio) override the ref() Jinja macro with a signature that doesn't support the two-argument positional form used for cross-package references: ref('package', 'model'). dbt-dremio's ref(model_name, v=None) intercepts the second positional arg as a version identifier, breaking refs like ref('elementary', 'dbt_models'). This override in the elementary_cli monitor project forwards all arguments directly to builtins.ref(), which correctly handles all ref() forms in dbt-core 1.11+. It also supports the legacy package= keyword form for backward compatibility. Co-Authored-By: Itamar Hartstein --- .../dbt_project/macros/overrides/ref.sql | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 elementary/monitor/dbt_project/macros/overrides/ref.sql diff --git a/elementary/monitor/dbt_project/macros/overrides/ref.sql b/elementary/monitor/dbt_project/macros/overrides/ref.sql new file mode 100644 index 000000000..603fc92f1 --- /dev/null +++ b/elementary/monitor/dbt_project/macros/overrides/ref.sql @@ -0,0 +1,34 @@ +{# + Override adapter-specific ref() macros (e.g. dbt-dremio) that don't properly + handle the two-argument positional form: ref('package', 'model'). + + dbt-dremio's ref(model_name, v=None) intercepts the second positional arg as + a version identifier, breaking cross-package refs like ref('elementary', 'dbt_models'). + + This override forwards all arguments directly to builtins.ref(), which correctly + handles all ref() forms in dbt-core 1.11+: + - ref('model') -> single model lookup + - ref('package', 'model') -> cross-package ref + - ref('model', v=1) -> versioned ref + - ref('model', version=1) -> versioned ref (alias) + - ref('model', package='package') -> cross-package ref (legacy keyword form) +#} + +{%- macro ref(model_name_or_package, model_name=none, v=none, version=none, package=none) -%} + {%- if model_name is not none -%} + {#- Two-arg positional: ref('package', 'model') -#} + {%- do return(builtins.ref(model_name_or_package, model_name)) -%} + {%- elif package is not none -%} + {#- Legacy keyword: ref('model', package='pkg') -#} + {%- do return(builtins.ref(package, model_name_or_package)) -%} + {%- elif v is not none -%} + {#- Versioned: ref('model', v=1) -#} + {%- do return(builtins.ref(model_name_or_package, v=v)) -%} + {%- elif version is not none -%} + {#- Versioned: ref('model', version=1) -#} + {%- do return(builtins.ref(model_name_or_package, v=version)) -%} + {%- else -%} + {#- Simple: ref('model') -#} + {%- do return(builtins.ref(model_name_or_package)) -%} + {%- endif -%} +{%- endmacro -%} From 25bd3ba5490e89d0b8a72d37f51c0338db173874 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 18:38:42 +0000 Subject: [PATCH 2/2] fix: handle combined cross-package + versioned refs for forward compatibility Co-Authored-By: Itamar Hartstein --- .../dbt_project/macros/overrides/ref.sql | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/elementary/monitor/dbt_project/macros/overrides/ref.sql b/elementary/monitor/dbt_project/macros/overrides/ref.sql index 603fc92f1..01c3cea45 100644 --- a/elementary/monitor/dbt_project/macros/overrides/ref.sql +++ b/elementary/monitor/dbt_project/macros/overrides/ref.sql @@ -15,18 +15,24 @@ #} {%- macro ref(model_name_or_package, model_name=none, v=none, version=none, package=none) -%} + {%- set effective_version = v if v is not none else version -%} {%- if model_name is not none -%} {#- Two-arg positional: ref('package', 'model') -#} - {%- do return(builtins.ref(model_name_or_package, model_name)) -%} + {%- if effective_version is not none -%} + {%- do return(builtins.ref(model_name_or_package, model_name, v=effective_version)) -%} + {%- else -%} + {%- do return(builtins.ref(model_name_or_package, model_name)) -%} + {%- endif -%} {%- elif package is not none -%} {#- Legacy keyword: ref('model', package='pkg') -#} - {%- do return(builtins.ref(package, model_name_or_package)) -%} - {%- elif v is not none -%} - {#- Versioned: ref('model', v=1) -#} - {%- do return(builtins.ref(model_name_or_package, v=v)) -%} - {%- elif version is not none -%} - {#- Versioned: ref('model', version=1) -#} - {%- do return(builtins.ref(model_name_or_package, v=version)) -%} + {%- if effective_version is not none -%} + {%- do return(builtins.ref(package, model_name_or_package, v=effective_version)) -%} + {%- else -%} + {%- do return(builtins.ref(package, model_name_or_package)) -%} + {%- endif -%} + {%- elif effective_version is not none -%} + {#- Versioned: ref('model', v=1) or ref('model', version=1) -#} + {%- do return(builtins.ref(model_name_or_package, v=effective_version)) -%} {%- else -%} {#- Simple: ref('model') -#} {%- do return(builtins.ref(model_name_or_package)) -%}