From 9d48e412932e27ef3e42e0162111dbdc6d47126e Mon Sep 17 00:00:00 2001 From: Jeremy Cohen Date: Mon, 19 Feb 2024 07:24:25 -0500 Subject: [PATCH] Ignore adapter-level support for `custom` constraints (#91) --- .changes/unreleased/Fixes-20240215-141545.yaml | 6 ++++++ dbt/adapters/base/impl.py | 3 +++ tests/unit/test_base_adapter.py | 1 + 3 files changed, 10 insertions(+) create mode 100644 .changes/unreleased/Fixes-20240215-141545.yaml diff --git a/.changes/unreleased/Fixes-20240215-141545.yaml b/.changes/unreleased/Fixes-20240215-141545.yaml new file mode 100644 index 00000000..ced62f25 --- /dev/null +++ b/.changes/unreleased/Fixes-20240215-141545.yaml @@ -0,0 +1,6 @@ +kind: Fixes +body: Ignore adapter-level support warnings for 'custom' constraints +time: 2024-02-15T14:15:45.764145+01:00 +custom: + Author: jtcohen6 + Issue: "90" diff --git a/dbt/adapters/base/impl.py b/dbt/adapters/base/impl.py index 151819e6..c6091887 100644 --- a/dbt/adapters/base/impl.py +++ b/dbt/adapters/base/impl.py @@ -1535,6 +1535,9 @@ def process_parsed_constraint( parsed_constraint: Union[ColumnLevelConstraint, ModelLevelConstraint], render_func, ) -> Optional[str]: + # skip checking enforcement if this is a 'custom' constraint + if parsed_constraint.type == ConstraintType.custom: + return render_func(parsed_constraint) if ( parsed_constraint.warn_unsupported and cls.CONSTRAINT_SUPPORT[parsed_constraint.type] == ConstraintSupport.NOT_SUPPORTED diff --git a/tests/unit/test_base_adapter.py b/tests/unit/test_base_adapter.py index d8feb9b8..95fe5ae2 100644 --- a/tests/unit/test_base_adapter.py +++ b/tests/unit/test_base_adapter.py @@ -40,6 +40,7 @@ def connection_manager(self): ["column_name integer references other_table (c1)"], ), ([{"type": "check"}, {"type": "unique"}], ["column_name integer unique"]), + ([{"type": "custom", "expression": "-- noop"}], ["column_name integer -- noop"]), ] @pytest.mark.parametrize("constraints,expected_rendered_constraints", column_constraints)