25 lines
797 B
SQL
25 lines
797 B
SQL
-- Rename only soft-deleted rows that block lowercasing a live username.
|
|
UPDATE "user" AS d
|
|
SET "username" = CONCAT(LEFT(d."username", 246), '-', SUBSTRING(MD5(d."user_id"::text) FROM 1 FOR 8))
|
|
WHERE d."deleted_at" IS NOT NULL
|
|
AND EXISTS (
|
|
SELECT 1
|
|
FROM "user" AS a
|
|
WHERE a."deleted_at" IS NULL
|
|
AND a."user_id" <> d."user_id"
|
|
AND a."username" <> LOWER(a."username")
|
|
AND LOWER(a."username") = LOWER(d."username")
|
|
);
|
|
|
|
-- Lowercase live usernames unless another live row would still collide.
|
|
UPDATE "user" AS u
|
|
SET "username" = LOWER(u."username")
|
|
WHERE u."deleted_at" IS NULL
|
|
AND u."username" <> LOWER(u."username")
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM "user" AS c
|
|
WHERE c."user_id" <> u."user_id"
|
|
AND LOWER(c."username") = LOWER(u."username")
|
|
);
|