-- -- apm__register_parameter/9 -- create or replace function apm__register_parameter( integer, character varying, character varying, character varying, character varying, character varying, character varying, integer, integer ) returns int4 as $$ declare register_parameter__parameter_id alias for $1; -- default null register_parameter__package_key alias for $2; register_parameter__parameter_name alias for $3; register_parameter__description alias for $4; -- default null register_parameter__datatype alias for $5; -- default 'string' register_parameter__default_value alias for $6; -- default null register_parameter__section_name alias for $7; -- default null register_parameter__min_n_values alias for $8; -- default 1 register_parameter__max_n_values alias for $9; -- default 1 begin return apm__register_parameter(register_parameter__parameter_id, register_parameter__package_key, register_parameter__parameter_name, register_parameter__description, 'instance', register_parameter__datatype, register_parameter__default_value, register_parameter__section_name, register_parameter__min_n_values, register_parameter__max_n_values); end;$$ language plpgsql; -- -- apm__register_parameter/10 -- create or replace function apm__register_parameter( register_parameter__parameter_id integer, register_parameter__package_key character varying, register_parameter__parameter_name character varying, register_parameter__description character varying, register_parameter__scope character varying, register_parameter__datatype character varying, register_parameter__default_value character varying, register_parameter__section_name character varying, register_parameter__min_n_values integer, register_parameter__max_n_values integer ) returns int4 as $$ DECLARE v_parameter_id apm_parameters.parameter_id%TYPE; v_value_id apm_parameter_values.value_id%TYPE; v_pkg record; BEGIN -- Create the new parameter. v_parameter_id := acs_object__new( register_parameter__parameter_id, 'apm_parameter', now(), null, null, null, 't', register_parameter__package_key || ' - ' || register_parameter__parameter_name, null ); insert into apm_parameters (parameter_id, parameter_name, scope, description, package_key, datatype, default_value, section_name, min_n_values, max_n_values) values (v_parameter_id, register_parameter__parameter_name, register_parameter__scope, register_parameter__description, register_parameter__package_key, register_parameter__datatype, register_parameter__default_value, register_parameter__section_name, register_parameter__min_n_values, register_parameter__max_n_values); -- Propagate parameter to new instances. if register_parameter__scope = 'instance' then for v_pkg in select package_id from apm_packages where package_key = register_parameter__package_key loop v_value_id := apm_parameter_value__new( null, v_pkg.package_id, v_parameter_id, register_parameter__default_value); end loop; else v_value_id := apm_parameter_value__new( null, null, v_parameter_id, register_parameter__default_value); end if; return v_parameter_id; END; $$ language plpgsql;