-- news upgrade script
-- @author Vinod Kurup (vinod@kurup.com)
-- @creation-date 2002-10-27
-- new function news__clone
-- added
select define_function_args('news__clone','new_package_id,old_package_id');
--
-- procedure news__clone/2
--
CREATE OR REPLACE FUNCTION news__clone(
p_new_package_id integer, --default null,
p_old_package_id integer --default null
) RETURNS integer AS $$
DECLARE
one_news record;
BEGIN
for one_news in select
publish_date,
cr.content as text,
cr.nls_language,
cr.title as title,
cr.mime_type,
cn.package_id,
archive_date,
approval_user,
approval_date,
approval_ip,
ao.creation_date,
ao.creation_ip,
ao.creation_user
from
cr_items ci,
cr_revisions cr,
cr_news cn,
acs_objects ao
where
(ci.item_id = cr.item_id
and ci.live_revision = cr.revision_id
and cr.revision_id = cn.news_id
and cr.revision_id = ao.object_id)
or (ci.live_revision is null
and ci.item_id = cr.item_id
and cr.revision_id = content_item__get_latest_revision(ci.item_id)
and cr.revision_id = cn.news_id
and cr.revision_id = ao.object_id)
loop
perform news__new(
one_news.publish_date,
one_news.text,
one_news.nls_language,
one_news.title,
one_news.mime_type,
new_package_id,
one_news.archive_date,
one_news.approval_user,
one_news.approval_date,
one_news.approval_ip,
one_news.creation_date,
one_news.creation_ip,
one_news.creation_user
);
end loop;
return 0;
END;
$$ LANGUAGE plpgsql;