From bcd82dabf2862533e7a1e4de1fdf5e157ebab66d Mon Sep 17 00:00:00 2001 From: stevenhsd <56357022+stevenhsd@users.noreply.github.com> Date: Thu, 29 Oct 2026 21:59:41 +0000 Subject: [PATCH 1/3] fix: ensure empty entities have schema applied in duckdb contract application --- src/dve/core_engine/backends/implementations/duckdb/contract.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dve/core_engine/backends/implementations/duckdb/contract.py b/src/dve/core_engine/backends/implementations/duckdb/contract.py index d9bb9bca..90bb02e6 100644 --- a/src/dve/core_engine/backends/implementations/duckdb/contract.py +++ b/src/dve/core_engine/backends/implementations/duckdb/contract.py @@ -143,7 +143,7 @@ def apply_data_contract( if relation_is_empty(relation): self.logger.warning(f"+ Empty relation for {entity_name}") empty_df = pl.DataFrame([], schema=polars_schema) # type: ignore # pylint: disable=W0612 - relation = self._connection.sql("select * from empty_df") + entities[entity_name] = self._connection.sql("select * from empty_df") continue self.logger.info(f"+ Applying contract to: {entity_name}") From 2cab0aaf8905da86ee6f692277a6961b15ccd808 Mon Sep 17 00:00:00 2001 From: stevenhsd <56357022+stevenhsd@users.noreply.github.com> Date: Fri, 30 Oct 2026 14:24:57 +0000 Subject: [PATCH 2/3] fix: exit business rules if processing fails ahead of orphan and group checks --- src/dve/pipeline/pipeline.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dve/pipeline/pipeline.py b/src/dve/pipeline/pipeline.py index 53185a06..0d9cf588 100644 --- a/src/dve/pipeline/pipeline.py +++ b/src/dve/pipeline/pipeline.py @@ -661,6 +661,7 @@ def apply_business_rules( # pylint: disable=R0914,R0915 submission_status.validation_failed = True elif not rules_success: submission_status.processing_failed = True + return submission_info, submission_status for entity_name, entity in entity_manager.entities.items(): # Note BI filtering done within the apply_rules From 57cb352a3488fcdf1de26e163b3ecc4b1e51efa2 Mon Sep 17 00:00:00 2001 From: stevenhsd <56357022+stevenhsd@users.noreply.github.com> Date: Fri, 30 Oct 2026 15:17:36 +0000 Subject: [PATCH 3/3] style: linting fixes --- src/dve/pipeline/pipeline.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dve/pipeline/pipeline.py b/src/dve/pipeline/pipeline.py index 0d9cf588..85e516d4 100644 --- a/src/dve/pipeline/pipeline.py +++ b/src/dve/pipeline/pipeline.py @@ -661,7 +661,7 @@ def apply_business_rules( # pylint: disable=R0914,R0915 submission_status.validation_failed = True elif not rules_success: submission_status.processing_failed = True - return submission_info, submission_status + return submission_info, submission_status for entity_name, entity in entity_manager.entities.items(): # Note BI filtering done within the apply_rules