Insert on match.orphaned_matches (cost=1823761513653.51..1823761525043.91 rows=455616 width=380) CTE removed -> Delete on match m (cost=0.00..1823761513653.51 rows=455616 width=6) Output: m.id, m.created_at, m.modified_at, m.household_id, m.account_id, m.candidate_id, m.match_reason, m.property_id, m.full_name, m.first_name, m.middle_name, m.last_name, m.match_category, m.confidence, m.owner_id, m.match_resource -> Seq Scan on match m (cost=0.00..1823761513653.51 rows=455616 width=6) Output: m.ctid Filter: ((NOT (SubPlan 1)) OR ((m.property_id IS NOT NULL) AND (NOT (SubPlan 2)))) SubPlan 1 -> Seq Scan on build.household h (cost=0.00..2948996.80 rows=1 width=0) Filter: (h.household_id = (m.household_id)::text) SubPlan 2 -> Index Scan using uq_idx_property_id on build.property p (cost=0.57..2.59 rows=1 width=0) Index Cond: (p.property_id = m.property_id) Filter: (p.household_id = (m.household_id)::text) -> CTE Scan on removed (cost=0.00..11390.40 rows=455616 width=380) Output: nextval('orphaned_matches_id_seq'::regclass), now(), removed.household_id, removed.account_id, removed.candidate_id, removed.created_at, removed.full_name, removed.first_name, removed.last_name, removed.match_reason, removed.property_id, removed.owner_id (16 rows)