--
-- forums_reading_info__user_add_forum/2
--
create or replace function forums_reading_info__user_add_forum(
  p_forum_id integer,
  p_user_id integer
) returns int4 as $$

DECLARE
   v_message_id integer;
BEGIN
    for v_message_id in 
     select message_id
       from forums_messages_approved m
      where forum_id = p_forum_id
        and parent_id is null
        and not exists (select 1 from forums_reading_info
                                where user_id = p_user_id
                                  and root_message_id = m.message_id) loop
        insert into forums_reading_info (
               root_message_id,
               user_id,
               forum_id
              ) values (
               v_message_id,
               p_user_id,
               p_forum_id
              );
    end loop;
    return 0;
END;
$$ language plpgsql;