diff --git a/.changes/unreleased/Fixes-20230614-145954.yaml b/.changes/unreleased/Fixes-20230614-145954.yaml new file mode 100644 index 00000000000..febe290ffd8 --- /dev/null +++ b/.changes/unreleased/Fixes-20230614-145954.yaml @@ -0,0 +1,7 @@ +kind: Fixes +body: Update `use_discrete_percentile` and `use_approximate_percentile` to be non + optional and default to `False` +time: 2023-06-14T14:59:54.042341-07:00 +custom: + Author: QMalcolm + Issue: "7866" diff --git a/core/dbt/contracts/graph/semantic_models.py b/core/dbt/contracts/graph/semantic_models.py index 8645a1e54b0..492c3188808 100644 --- a/core/dbt/contracts/graph/semantic_models.py +++ b/core/dbt/contracts/graph/semantic_models.py @@ -120,8 +120,8 @@ def is_linkable_entity_type(self) -> bool: @dataclass class MeasureAggregationParameters(dbtClassMixin): percentile: Optional[float] = None - use_discrete_percentile: Optional[bool] = None - use_approximate_percentile: Optional[bool] = None + use_discrete_percentile: bool = False + use_approximate_percentile: bool = False @dataclass diff --git a/tests/functional/semantic_models/test_semantic_model_parsing.py b/tests/functional/semantic_models/test_semantic_model_parsing.py index 295b5d7949a..149b609b75f 100644 --- a/tests/functional/semantic_models/test_semantic_model_parsing.py +++ b/tests/functional/semantic_models/test_semantic_model_parsing.py @@ -29,6 +29,18 @@ - name: has_revenue expr: true agg: sum_boolean + - name: discrete_order_value_p99 + expr: order_total + agg: percentile + agg_params: + percentile: 0.99 + use_discrete_percentile: True + use_approximate_percentile: False + - name: test_agg_params_optional_are_empty + expr: order_total + agg: percentile + agg_params: + percentile: 0.99 dimensions: - name: ds @@ -71,7 +83,7 @@ def test_semantic_model_parsing(self, project): semantic_model.node_relation.relation_name == f'"dbt"."{project.test_schema}"."fct_revenue"' ) - assert len(semantic_model.measures) == 3 + assert len(semantic_model.measures) == 5 @pytest.mark.skip("Restore this test when partial parsing is implemented.") def test_semantic_model_partial_parsing(self, project):