Files
agent-park/.sisyphus/sql/tag-cleanup-2026-02-21.sql
T

47 lines
1.5 KiB
PL/PgSQL

BEGIN;
-- Step 1: Merge duplicate tags by high-confidence canonicalized nameEn groups
WITH merge_map(source_id, target_id) AS (
VALUES
('cmkoutg0o0006jr04goozjhft', 'cmkqimx520005jx04vyegybp9'),
('cmkjjb387000a4j12pdf123zn', 'cmks0yz0h002xl1040w65w47d'),
('cmkun0ao70048jx04atm2lwwq', 'cmkryxmob0003l80414uo5zqz'),
('cmkrzqdlu000fl104qmy9gu2u', 'cmkqlcukz000dl5044c6z8542'),
('cmktk3biu000nl704iiohmv4i', 'cmksdlj9o0029jv04x9tdyc11'),
('cmktpotkp003eld04mv09ckde', 'cmkshubus0004la04zjuh5nn5')
)
INSERT INTO "project_tags" ("projectId", "tagId")
SELECT pt."projectId", mm.target_id
FROM "project_tags" pt
JOIN merge_map mm ON mm.source_id = pt."tagId"
ON CONFLICT ("projectId", "tagId") DO NOTHING;
WITH merge_map(source_id, target_id) AS (
VALUES
('cmkoutg0o0006jr04goozjhft', 'cmkqimx520005jx04vyegybp9'),
('cmkjjb387000a4j12pdf123zn', 'cmks0yz0h002xl1040w65w47d'),
('cmkun0ao70048jx04atm2lwwq', 'cmkryxmob0003l80414uo5zqz'),
('cmkrzqdlu000fl104qmy9gu2u', 'cmkqlcukz000dl5044c6z8542'),
('cmktk3biu000nl704iiohmv4i', 'cmksdlj9o0029jv04x9tdyc11'),
('cmktpotkp003eld04mv09ckde', 'cmkshubus0004la04zjuh5nn5')
)
DELETE FROM "tags" t
USING merge_map mm
WHERE t."id" = mm.source_id;
-- Step 2: Fill missing English names for ASCII-only tags
UPDATE "tags"
SET "nameEn" = "name"
WHERE ("nameEn" IS NULL OR "nameEn" = '')
AND "name" ~ '^[[:ascii:]]+$';
-- Step 3: Delete tags no longer referenced by any project
DELETE FROM "tags" t
WHERE NOT EXISTS (
SELECT 1
FROM "project_tags" pt
WHERE pt."tagId" = t."id"
);
COMMIT;