Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save AlD/694c587bb9538f304a4f5699b2e0f19b to your computer and use it in GitHub Desktop.
Save AlD/694c587bb9538f304a4f5699b2e0f19b to your computer and use it in GitHub Desktop.
// stop quasselcore
select pg_get_indexdef('sender_sender_realname_avatarurl_uindex'::regclass);
alter table backlog alter constraint backlog_senderid_fkey deferrable;
set session_replication_role = replica;
begin;
create or replace temp view foo
as select min.senderid min_senderid, other.*
from
(select min(senderid) senderid, sender, realname, avatarurl
from sender
group by sender, realname, avatarurl
having count(1) > 1) min
join sender other
using(sender, realname, avatarurl)
where min.senderid != other.senderid;
drop index sender_sender_realname_avatarurl_uindex;
update backlog set senderid=foo.min_senderid from (select * from foo) foo where backlog.senderid=foo.senderid;
delete from sender where senderid in (select senderid from foo);
// CREATE INDEX statement from line #2
commit;
SET session_replication_role = DEFAULT;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment