-- 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;