--
-- procedure acs_object__new/9
--
CREATE OR REPLACE FUNCTION acs_object__new(
new__object_id integer, -- default null
new__object_type varchar, -- default 'acs_object'
new__creation_date timestamptz, -- default now()
new__creation_user integer, -- default null
new__creation_ip varchar, -- default null
new__context_id integer, -- default null
new__security_inherit_p boolean, -- default 't'
new__title varchar, -- default null
new__package_id integer -- default null
) RETURNS integer AS $$
DECLARE
v_object_id acs_objects.object_id%TYPE;
v_creation_date timestamptz;
v_title acs_objects.title%TYPE;
v_object_type_pretty_name acs_object_types.pretty_name%TYPE;
BEGIN
if new__object_id is null then
select nextval('t_acs_object_id_seq') into v_object_id;
else
v_object_id := new__object_id;
end if;
if new__title is null then
select pretty_name
into v_object_type_pretty_name
from acs_object_types
where object_type = new__object_type;
v_title := v_object_type_pretty_name || ' ' || v_object_id;
else
v_title := new__title;
end if;
if new__creation_date is null then
v_creation_date:= now();
else
v_creation_date := new__creation_date;
end if;
insert into acs_objects
(object_id, object_type, title, package_id, context_id,
creation_date, creation_user, creation_ip, security_inherit_p)
values
(v_object_id, new__object_type, v_title, new__package_id, new__context_id,
v_creation_date, new__creation_user, new__creation_ip,
new__security_inherit_p);
PERFORM acs_object__initialize_attributes(v_object_id);
return v_object_id;
END;
$$ LANGUAGE plpgsql;