--
-- forums_message__thread_close/1
--
create or replace function forums_message__thread_close(
  integer
) returns int4 as $$

declare
    p_message_id                    alias for $1;
    v_forum_id                      forums_messages.forum_id%TYPE;
    v_sortkey                       forums_messages.tree_sortkey%TYPE;
begin
    select forum_id, tree_sortkey
    into v_forum_id, v_sortkey
    from forums_messages
    where message_id = p_message_id;

    update forums_messages
    set open_p = 'f'
    where tree_sortkey between tree_left(v_sortkey) and tree_right(v_sortkey)
    and forum_id = v_forum_id;

    update forums_messages
    set open_p = 'f'
    where message_id = p_message_id;

    return 0;
end;
$$ language plpgsql;