--
-- fix_forums/0
--
create or replace function fix_forums(
  
) returns int4 as $$

declare
   v_forums_row     migr_message_map%ROWTYPE;
   v_new_message_id integer;
   v_message_id     integer;
begin

for v_forums_row in
 select distinct old_message_id from migr_message_map m1 where 
 (select count(*) from migr_message_map m2 
  where m1.old_message_id=m2.old_message_id) > 1
loop
select max(new_message_id) into v_new_message_id 
from migr_message_map
where old_message_id=v_forums_row.old_message_id;
--RAISE NOTICE 'Deleting: %',v_new_message_id;
select message_id into v_message_id
from forums_messages where v_new_message_id=parent_id;

if v_message_id is not null then

select min(new_message_id) into v_new_message_id
from migr_message_map
where old_message_id=v_forums_row.old_message_id;

select message_id into v_message_id
from forums_messages where v_new_message_id=parent_id;
end if;

if v_message_id is not null then
RAISE NOTICE 'OOps: % : % ',v_message_id,v_new_message_id;
end if;
perform forums_message__delete(v_new_message_id);
end loop;

return 0;
end; $$ language plpgsql;