Skip to content

Commit eff5795

Browse files
committed
fix: code review
Signed-off-by: Mouad BANI <mouad-mb@outlook.com>
1 parent e3ab972 commit eff5795

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

backend/src/osspckgs/migrations/V1784718693__merge_case_duplicate_github_repos.sql

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,20 @@ WHERE id IN (
5151
WHERE rn > 1
5252
);
5353

54-
UPDATE package_repos pr
55-
SET repo_id = m.keeper_id
56-
FROM repo_merge_members m
54+
-- Re-point surviving loser links via insert + delete, never an UPDATE:
55+
-- repo_id is part of the Tinybird packageRepos sorting key (CDC models key
56+
-- changes as delete + insert; a key-mutating UPDATE would leave both links
57+
-- live under FINAL with no way to reconcile). The fresh row streams cleanly
58+
-- with a new id and a NOW() version; the stale loser keys (these deletes
59+
-- included) are removed by the post-migration Tinybird datasource rebuild.
60+
INSERT INTO package_repos (package_id, repo_id, source, confidence, verified_at, created_at)
61+
SELECT pr.package_id, m.keeper_id, pr.source, pr.confidence, NOW(), NOW()
62+
FROM package_repos pr
63+
JOIN repo_merge_members m ON m.repo_id = pr.repo_id
64+
WHERE NOT m.is_keeper;
65+
66+
DELETE FROM package_repos pr
67+
USING repo_merge_members m
5768
WHERE pr.repo_id = m.repo_id
5869
AND NOT m.is_keeper;
5970

0 commit comments

Comments
 (0)