-- -- content_revision__new/7 -- create or replace function content_revision__new( new__title character varying, new__description character varying, new__publish_date timestamp with time zone, new__mime_type character varying, new__text text, new__item_id integer, new__package_id integer DEFAULT NULL::integer ) returns int4 as $$ DECLARE BEGIN raise NOTICE 'content_revision__new/7 is deprecated, call content_revision__new/13 instead'; return content_revision__new(new__title, new__description, new__publish_date, new__mime_type, null, new__text, new__item_id, null, now(), null, null, null, new__package_id ); END; $$ language plpgsql; -- -- content_revision__new/12 -- create or replace function content_revision__new( new__title character varying, new__description character varying, new__publish_date timestamp with time zone, new__mime_type character varying, new__nls_language character varying, new__data integer, new__item_id integer, new__revision_id integer, new__creation_date timestamp with time zone, new__creation_user integer, new__creation_ip character varying, new__package_id integer DEFAULT NULL::integer ) returns int4 as $$ DECLARE v_revision_id integer; v_package_id acs_objects.package_id%TYPE; v_content_type acs_object_types.object_type%TYPE; BEGIN v_content_type := content_item__get_content_type(new__item_id); if new__package_id is null then v_package_id := acs_object__package_id(new__item_id); else v_package_id := new__package_id; end if; v_revision_id := acs_object__new( new__revision_id, v_content_type, new__creation_date, new__creation_user, new__creation_ip, new__item_id, 't', new__title, v_package_id ); -- binary data is stored in cr_revisions using Dons lob hack. -- This routine only inserts the lob id. It would need to be followed by -- ns_pg blob_dml from within a tcl script to actually insert the lob data. -- After the lob data is inserted, the content_length needs to be updated -- as well. -- DanW, 2001-05-10. insert into cr_revisions ( revision_id, title, description, mime_type, publish_date, nls_language, lob, item_id, content_length ) values ( v_revision_id, new__title, new__description, new__mime_type, new__publish_date, new__nls_language, new__data, new__item_id, 0 ); return v_revision_id; END; $$ language plpgsql; -- -- content_revision__new/12 -- create or replace function content_revision__new( new__title character varying, new__description character varying, new__publish_date timestamp with time zone, new__mime_type character varying, new__nls_language character varying, new__text text, new__item_id integer, new__revision_id integer, new__creation_date timestamp with time zone, new__creation_user integer, new__creation_ip character varying, new__package_id integer DEFAULT NULL::integer ) returns int4 as $$ DECLARE BEGIN raise NOTICE 'content_revision__new/12 is deprecated, call content_revision__new/13 instead'; return content_revision__new(new__title, new__description, new__publish_date, new__mime_type, new__nls_language, new__text, new__item_id, new__revision_id, new__creation_date, new__creation_user, new__creation_ip, null, -- content_length new__package_id ); END $$ language plpgsql; -- -- content_revision__new/13 -- create or replace function content_revision__new( new__title character varying, new__description character varying, new__publish_date timestamp with time zone, new__mime_type character varying, new__nls_language character varying, new__text text, new__item_id integer, new__revision_id integer, new__creation_date timestamp with time zone, new__creation_user integer, new__creation_ip character varying, new__content_length integer, new__package_id integer ) returns int4 as $$ DECLARE v_revision_id integer; v_package_id acs_objects.package_id%TYPE; v_content_type acs_object_types.object_type%TYPE; v_storage_type cr_items.storage_type%TYPE; v_length cr_revisions.content_length%TYPE; BEGIN v_content_type := content_item__get_content_type(new__item_id); if new__package_id is null then v_package_id := acs_object__package_id(new__item_id); else v_package_id := new__package_id; end if; v_revision_id := acs_object__new( new__revision_id, v_content_type, new__creation_date, new__creation_user, new__creation_ip, new__item_id, 't', new__title, v_package_id ); select storage_type into v_storage_type from cr_items where item_id = new__item_id; if v_storage_type = 'text' then v_length := length(new__text); else v_length := coalesce(new__content_length,0); end if; -- text data is stored directly in cr_revisions using text datatype. insert into cr_revisions ( revision_id, title, description, mime_type, publish_date, nls_language, content, item_id, content_length ) values ( v_revision_id, new__title, new__description, new__mime_type, new__publish_date, new__nls_language, new__text, new__item_id, v_length ); return v_revision_id; END; $$ language plpgsql;