--
-- apm__set_global_value/3
--
create or replace function apm__set_global_value(
set_value__package_key character varying,
set_value__parameter_name character varying,
set_value__attr_value character varying
) returns int4 as $$
DECLARE
v_parameter_id apm_parameter_values.parameter_id%TYPE;
v_value_id apm_parameter_values.value_id%TYPE;
BEGIN
v_parameter_id := apm__id_for_name (set_value__package_key, set_value__parameter_name);
-- Determine if the value exists
select value_id into v_value_id from apm_parameter_values
where parameter_id = v_parameter_id
and package_id is null;
update apm_parameter_values set attr_value = set_value__attr_value
where value_id = v_value_id;
update acs_objects set last_modified = now()
where object_id = v_value_id;
-- exception
if NOT FOUND
then
v_value_id := apm_parameter_value__new(
null,
null,
v_parameter_id,
set_value__attr_value
);
end if;
return 0;
END;
$$ language plpgsql;