Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
ce9f341
CT-1922: Rough in functionality for parsing model level constraints
peterallenwebb Mar 27, 2023
f3bd5f3
CT-1922: (Almost) complete support for model level constraints
peterallenwebb Mar 29, 2023
5699852
CT-1922: Fix typo affecting correct model constraint parsing.
peterallenwebb Mar 29, 2023
d9197c7
CT-1922: Rework base class for model tests for greater simplicity
peterallenwebb Apr 5, 2023
02c94ed
CT-1922: Rough in functionality for parsing model level constraints
peterallenwebb Mar 27, 2023
7b85bf6
CT-1922: Revise unit tests for new model-level constraints property
peterallenwebb Mar 28, 2023
bf614ba
CT-1922: (Almost) complete support for model level constraints
peterallenwebb Mar 29, 2023
2198c4c
first pass
emmyoop Mar 28, 2023
edda34e
implement in core
emmyoop Mar 29, 2023
a920bfe
add proto
emmyoop Mar 29, 2023
620023f
WIP
emmyoop Mar 31, 2023
27d074e
resolve errors in columns_spec_ddl
emmyoop Mar 31, 2023
a94ca62
changelog
emmyoop Mar 31, 2023
24c5a56
update comment
emmyoop Mar 31, 2023
9daada8
move logic over to python
emmyoop Apr 3, 2023
253dc9f
rename and use enum
emmyoop Apr 4, 2023
cf5a6ee
update default constraint_support dict
emmyoop Apr 4, 2023
dd49aa2
generate new proto definition after conflicts
emmyoop Apr 4, 2023
ee00d36
reorganize code and break warnings into each constraint
emmyoop Apr 4, 2023
6f18100
fix postgres constraint support
emmyoop Apr 4, 2023
47d6bdc
remove breakpoint
emmyoop Apr 4, 2023
51e71b5
convert constraint support to constant
emmyoop Apr 4, 2023
d9603db
update postgres
emmyoop Apr 4, 2023
42d90d2
add to export
emmyoop Apr 4, 2023
2d2f277
add to export
emmyoop Apr 4, 2023
ad0b4a4
regen proto types file
emmyoop Apr 6, 2023
35d3307
standardize names
emmyoop Apr 7, 2023
146ebb3
put back mypy error
emmyoop Apr 7, 2023
3058822
more naming + add back comma
emmyoop Apr 7, 2023
3e3b8a3
add constraint support to model level constraints
emmyoop Apr 7, 2023
4bed983
update event message and method signature
emmyoop Apr 10, 2023
15101f1
rename method
emmyoop Apr 10, 2023
4e2c174
CT-1922: Rough in functionality for parsing model level constraints
peterallenwebb Mar 27, 2023
432ef9a
CT-1922: Revise unit tests for new model-level constraints property
peterallenwebb Mar 28, 2023
f1d4c18
CT-1922: (Almost) complete support for model level constraints
peterallenwebb Mar 29, 2023
864554d
CT-1922: Fix typo affecting correct model constraint parsing.
peterallenwebb Mar 29, 2023
ae94f48
CT-1922: Improve whitespace handling
peterallenwebb Mar 31, 2023
de4e163
CT-1922: Render raw constraints to constraint list directly
peterallenwebb Apr 5, 2023
9c79a0d
make method return consistent
emmyoop Apr 10, 2023
276d0c3
regenerate proto defn
emmyoop Apr 10, 2023
044140b
update evvent test
emmyoop Apr 10, 2023
bae80b0
add some code cleanup
emmyoop Apr 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
CT-1922: (Almost) complete support for model level constraints
  • Loading branch information
peterallenwebb authored and emmyoop committed Apr 11, 2023
commit f1d4c1840a9a9b02d5891af8228247d0e2287926
4 changes: 0 additions & 4 deletions core/dbt/contracts/graph/nodes.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,10 +176,6 @@ class ModelLevelConstraint(ColumnLevelConstraint):
pass # REVIEW: The columns property above should be on this class instead


class ModelLevelConstraint(ColumnLevelConstraint):
column_names: List[str] = field(default_factory=list)


@dataclass
class ModelLevelConstraint(ColumnLevelConstraint):
columns: List[str] = field(default_factory=list)
Expand Down
1 change: 0 additions & 1 deletion core/dbt/contracts/graph/unparsed.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,6 @@ class UnparsedAnalysisUpdate(HasConfig, HasColumnDocs, HasColumnProps, HasYamlMe
class UnparsedNodeUpdate(HasConfig, HasColumnTests, HasColumnAndTestProps, HasYamlMetadata):
quote_columns: Optional[bool] = None
access: Optional[str] = None
constraints: List[Dict[str, Any]] = field(default_factory=list)


@dataclass
Expand Down
45 changes: 0 additions & 45 deletions tests/adapter/dbt/tests/adapter/constraints/test_constraints.py
Original file line number Diff line number Diff line change
Expand Up @@ -413,48 +413,3 @@ def test__model_constraints_ddl(self, project, expected_sql):

class TestModelConstraintsRuntimeEnforcement(BaseModelConstraintsRuntimeEnforcement):
pass


_expected_model_constraint_sql = """
create table {0} (
id integer not null,
color text,
date_day text,
check (id > 0),
primary key (id),
constraint strange_uniqueness_requirement unique (color, date_day)
) ;
insert into <model_identifier> (
id ,
color ,
date_day
)
(
select
id,
color,
date_day
from
(
select
'blue' as color,
1 as id,
'2019-01-01' as date_day
) as model_subq
);
"""

def test__model_constraints_ddl(self, project, expected_sql):
results = run_dbt(["run", "-s", "my_model"])
assert len(results) == 1
generated_sql = read_file("target", "run", "test", "models", "my_model.sql")
generated_sql_list = _normalize_whitespace(generated_sql).split(" ")
generated_sql_list = [
"<model_identifier>" if "my_model" in s else s for s in generated_sql_list
]
generated_sql_generic = " ".join(generated_sql_list)
assert _normalize_whitespace(expected_sql) == generated_sql_generic


class TestModelConstraintsRuntimeEnforcement(BaseModelConstraintsRuntimeEnforcement):
pass