From c9408bd4bc6fa5c124733132efea5a3bf2eb18e2 Mon Sep 17 00:00:00 2001 From: Iaroslav Zeigerman Date: Mon, 31 Mar 2025 10:55:13 -0700 Subject: [PATCH] Fix: Set allow_partials models for all dbt model kinds, including full refresh models --- sqlmesh/dbt/model.py | 8 +++++--- tests/dbt/test_transformation.py | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/sqlmesh/dbt/model.py b/sqlmesh/dbt/model.py index c8f181f868..4895d07dac 100644 --- a/sqlmesh/dbt/model.py +++ b/sqlmesh/dbt/model.py @@ -556,10 +556,12 @@ def to_sqlmesh( kind = self.model_kind(context) allow_partials = model_kwargs.pop("allow_partials", None) - if allow_partials is None and ( - kind.is_incremental_unmanaged or kind.is_incremental_by_unique_key + if ( + allow_partials is None + and kind.is_materialized + and not kind.is_incremental_by_time_range ): - # Set allow_partials to True for dbt incremental models to preserve the original semantics. + # Set allow_partials to True for dbt models to preserve the original semantics. allow_partials = True model = create_sql_model( diff --git a/tests/dbt/test_transformation.py b/tests/dbt/test_transformation.py index 78af8882c1..a342f9debb 100644 --- a/tests/dbt/test_transformation.py +++ b/tests/dbt/test_transformation.py @@ -1461,7 +1461,7 @@ def test_refs_in_jinja_globals(sushi_test_project: Project, mocker: MockerFixtur } -def test_dbt_incremental_allow_partials_by_default(): +def test_allow_partials_by_default(): context = DbtContext() context._target = SnowflakeConfig( name="target", @@ -1481,7 +1481,7 @@ def test_dbt_incremental_allow_partials_by_default(): materialized=Materialization.TABLE.value, ) assert model.allow_partials is None - assert not model.to_sqlmesh(context).allow_partials + assert model.to_sqlmesh(context).allow_partials model.materialized = Materialization.INCREMENTAL.value assert model.allow_partials is None