Skip to content

Commit f726e06

Browse files
committed
Honor removed derived relation history
1 parent 59692c2 commit f726e06

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

‎src/openstatspec/sql/catalog_verification.py‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,11 +235,19 @@ def verify_catalog_relations(
235235
):
236236
_reject({workflow.transformation_profile_identity.name})
237237
owned_tables.update(workflow_tables)
238+
physically_removed = set(connection.execute(select(
239+
workflow.derived_dataset_disposition_event.c.derived_dataset_id
240+
).where(
241+
workflow.derived_dataset_disposition_event.c.event_kind
242+
== "physical_removed"
243+
)).scalars())
238244
for row in connection.execute(select(
239245
workflow.derived_dataset.c.derived_dataset_id,
240246
workflow.derived_dataset.c.physical_relation_name,
241247
workflow.derived_dataset.c.output_mode,
242248
)).mappings():
249+
if row["derived_dataset_id"] in physically_removed:
250+
continue
243251
name = str(row["physical_relation_name"])
244252
if row["output_mode"] == "view":
245253
owned_views.add(name)

‎tests/test_sql_workflow.py‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,9 @@ def test_append_only_retire_remove_and_reconcile_protocol(catalog):
500500
assert openstatspec.reconcile_derived_removals(
501501
database_url=url,
502502
)["reconciled"] == 0
503+
assert openstatspec.initialize_catalog(
504+
database_url=url,
505+
)["catalog"] == "verified"
503506

504507

505508
def test_sqlite_is_the_only_advertised_and_executable_workflow_backend():

0 commit comments

Comments
 (0)