-- from acs-metadata-create.sql create or replace function acs_attribute__create_attribute (varchar,varchar,varchar,varchar,varchar,varchar,varchar,varchar,integer,integer,integer,varchar,boolean) returns integer as ' declare create_attribute__object_type alias for $1; create_attribute__attribute_name alias for $2; create_attribute__datatype alias for $3; create_attribute__pretty_name alias for $4; create_attribute__pretty_plural alias for $5; -- default null create_attribute__table_name alias for $6; -- default null create_attribute__column_name alias for $7; -- default null create_attribute__default_value alias for $8; -- default null create_attribute__min_n_values alias for $9; -- default 1 create_attribute__max_n_values alias for $10; -- default 1 create_attribute__sort_order alias for $11; -- default null create_attribute__storage alias for $12; -- default ''type_specific'' create_attribute__static_p alias for $13; -- default ''f'' v_sort_order acs_attributes.sort_order%TYPE; v_attribute_id acs_attributes.attribute_id%TYPE; begin if create_attribute__sort_order is null then select coalesce(max(sort_order), 1) into v_sort_order from acs_attributes where object_type = create_attribute__object_type and attribute_name = create_attribute__attribute_name; else v_sort_order := create_attribute__sort_order; end if; select nextval(''t_acs_attribute_id_seq'') into v_attribute_id; insert into acs_attributes (attribute_id, object_type, table_name, column_name, attribute_name, pretty_name, pretty_plural, sort_order, datatype, default_value, min_n_values, max_n_values, storage, static_p) values (v_attribute_id, create_attribute__object_type, create_attribute__table_name, create_attribute__column_name, create_attribute__attribute_name, create_attribute__pretty_name, create_attribute__pretty_plural, v_sort_order, create_attribute__datatype, create_attribute__default_value, create_attribute__min_n_values, create_attribute__max_n_values, create_attribute__storage, create_attribute__static_p); return v_attribute_id; end;' language 'plpgsql'; -- from acs-objects-create.sql create or replace function acs_object__new (integer,varchar,timestamptz,integer,varchar,integer,boolean,varchar,integer) returns integer as ' declare new__object_id alias for $1; -- default null new__object_type alias for $2; -- default ''acs_object'' new__creation_date alias for $3; -- default now() new__creation_user alias for $4; -- default null new__creation_ip alias for $5; -- default null new__context_id alias for $6; -- default null new__security_inherit_p alias for $7; -- default ''t'' new__title alias for $8; -- default null new__package_id alias for $9; -- default null 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';