--
-- content_revision__del/1
--
create or replace function content_revision__del(
delete__revision_id integer
) returns int4 as $$
DECLARE
v_item_id cr_items.item_id%TYPE;
v_latest_revision cr_revisions.revision_id%TYPE;
BEGIN
--
-- Get item_id and the latest revision
--
select item_id
into v_item_id
from cr_revisions
where revision_id = delete__revision_id;
select latest_revision
into v_latest_revision
from cr_items
where item_id = v_item_id;
--
-- Recalculate latest revision in case it was deleted
--
if v_latest_revision = delete__revision_id then
select r.revision_id
into v_latest_revision
from cr_revisions r, acs_objects o
where o.object_id = r.revision_id
and r.item_id = v_item_id
and r.revision_id <> delete__revision_id
order by o.creation_date desc limit 1;
if NOT FOUND then
v_latest_revision := null;
end if;
update cr_items set latest_revision = v_latest_revision
where item_id = v_item_id;
end if;
--
-- Delete the revision
--
PERFORM acs_object__delete(delete__revision_id);
return 0;
END;
$$ language plpgsql;