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