-- -- Add revision_id as the second column to order by, as an educated guess in -- case creation_date is the same. -- -- This can happen if different revisions were created inside a single -- transaction. -- -- -- procedure content_revision__get_number/1 -- CREATE OR REPLACE FUNCTION content_revision__get_number( get_number__revision_id integer ) RETURNS integer AS $$ DECLARE v_revision cr_revisions.revision_id%TYPE; v_row_count integer default 0; rev_cur record; BEGIN for rev_cur in select revision_id from cr_revisions r, acs_objects o where item_id = (select item_id from cr_revisions where revision_id = get_number__revision_id) and o.object_id = r.revision_id order by o.creation_date, r.revision_id LOOP v_row_count := v_row_count + 1; if rev_cur.revision_id = get_number__revision_id then return v_row_count; exit; end if; end LOOP; return null; END; $$ LANGUAGE plpgsql stable strict;