-- Add case insensitive username and email uniqueness
-- An example of showing the dupes:
-- select
--   max(id) as id,
--   lower(name) as lname,
--   count(*)
-- from user_
-- group by lower(name)
-- having count(*) > 1;
-- Delete username dupes, keeping the first one
DELETE FROM user_
WHERE id NOT IN (
        SELECT
            min(id)
        FROM
            user_
        GROUP BY
            lower(name),
            lower(fedi_name));

-- The user index
CREATE UNIQUE INDEX idx_user_name_lower ON user_ (lower(name));

-- Email lower
CREATE UNIQUE INDEX idx_user_email_lower ON user_ (lower(email));

-- Set empty emails properly to null
UPDATE
    user_
SET
    email = NULL
WHERE
    email = '';