From 4d154651a8834e0ce315eb998aa9a5a368b680c7 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 27 Jul 2026 14:40:51 +0000 Subject: [PATCH] Use one path for campaign source merge Remove early return on empty source IDs; count and MERGE always run so clearing sources uses NOT MATCHED BY SOURCE delete. Signed-off-by: Cursor Agent Co-authored-by: Bryan FRIMIN --- pkg/coredata/access_review_campaign_source.go | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/pkg/coredata/access_review_campaign_source.go b/pkg/coredata/access_review_campaign_source.go index e8008f791..e96400b9c 100644 --- a/pkg/coredata/access_review_campaign_source.go +++ b/pkg/coredata/access_review_campaign_source.go @@ -161,25 +161,6 @@ func (sources *AccessReviewCampaignSources) MergeByCampaignID( ) error { uniqueSourceIDs := uniqueGIDs(accessReviewSourceIDs) - if len(uniqueSourceIDs) == 0 { - q := ` -DELETE FROM access_review_campaign_sources -WHERE - %s - AND access_review_campaign_id = @access_review_campaign_id -` - q = fmt.Sprintf(q, scope.SQLFragment()) - - args := pgx.StrictNamedArgs{"access_review_campaign_id": campaignID} - maps.Copy(args, scope.SQLArguments()) - - if _, err := conn.Exec(ctx, q, args); err != nil { - return fmt.Errorf("cannot delete campaign sources: %w", err) - } - - return nil - } - sourceIDStrings := make([]string, len(uniqueSourceIDs)) for i, id := range uniqueSourceIDs { sourceIDStrings[i] = id.String()