-- -- 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;