-- forums/sql/postgresql/upgrade-0.2d-0.3d.sql
--
-- Changes for scalability davis@xarg.net
create unique index forums_mess_forum_sk_un on forums_messages(forum_id, tree_sortkey);
-- added
select define_function_args('forums_message__root_message_id','message_id');
--
-- procedure forums_message__root_message_id/1
--
CREATE OR REPLACE FUNCTION forums_message__root_message_id(
p_message_id integer
) RETURNS integer AS $$
DECLARE
v_message_id forums_messages.message_id%TYPE;
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;
select message_id
into v_message_id
from forums_messages
where forum_id = v_forum_id
and tree_sortkey = tree_ancestor_key(v_sortkey, 1);
return v_message_id;
END;
$$ LANGUAGE plpgsql with(isstrict,iscachable);