--
-- news__delete/1
--
create or replace function news__delete(
integer
) returns int4 as $$
declare
p_item_id alias for $1;
v_item_id cr_items.item_id%TYPE;
v_cm RECORD;
begin
v_item_id := p_item_id;
-- dbms_output.put_line('Deleting associated comments...');
-- delete acs_messages, images, comments to news item
FOR v_cm IN
select message_id from acs_messages am, acs_objects ao
where am.message_id = ao.object_id
and ao.context_id = v_item_id
LOOP
-- images
delete from images
where image_id in (select latest_revision
from cr_items
where parent_id = v_cm.message_id);
PERFORM acs_message__delete(v_cm.message_id);
delete from general_comments
where comment_id = v_cm.message_id;
END LOOP;
delete from cr_news
where news_id in (select revision_id
from cr_revisions
where item_id = v_item_id);
PERFORM content_item__delete(v_item_id);
return 0;
end;
$$ language plpgsql;