From 1e57d4c37325d4a6a4e664cb3f8dbbb1f53a633e Mon Sep 17 00:00:00 2001 From: Tori Wei Date: Mon, 6 Oct 2025 14:10:21 -0700 Subject: [PATCH 1/2] validate data_type for partition_by config --- sqlmesh/dbt/model.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sqlmesh/dbt/model.py b/sqlmesh/dbt/model.py index 09c410561d..d882f94942 100644 --- a/sqlmesh/dbt/model.py +++ b/sqlmesh/dbt/model.py @@ -215,6 +215,14 @@ def _validate_partition_by( ): granularity = v["granularity"] raise ConfigError(f"Unexpected granularity '{granularity}' in partition_by '{v}'.") + if "data_type" in v and v["data_type"].lower() not in ( + "timestamp", + "date", + "datetime", + "int64", + ): + data_type = v["data_type"] + raise ConfigError(f"Unexpected data_type '{data_type}' in partition_by '{v}'.") return {"data_type": "date", "granularity": "day", **v} raise ConfigError(f"Invalid format for partition_by '{v}'") From 5cf8d26c6721aa140331c3a596e2957f3618a878 Mon Sep 17 00:00:00 2001 From: Tori Wei Date: Tue, 7 Oct 2025 10:48:02 -0700 Subject: [PATCH 2/2] add test --- tests/dbt/test_transformation.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/dbt/test_transformation.py b/tests/dbt/test_transformation.py index dd69f46200..e519713d26 100644 --- a/tests/dbt/test_transformation.py +++ b/tests/dbt/test_transformation.py @@ -1881,6 +1881,17 @@ def test_partition_by(sushi_test_project: Project): ) assert model_config.to_sqlmesh(context).partitioned_by == [] + with pytest.raises(ConfigError, match="Unexpected data_type 'string' in partition_by"): + ModelConfig( + name="model", + alias="model", + schema="test", + package_name="package", + materialized="table", + partition_by={"field": "ds", "data_type": "string"}, + sql="""SELECT 1 AS one, ds FROM foo""", + ) + @pytest.mark.xdist_group("dbt_manifest") def test_partition_by_none(sushi_test_project: Project):