--
-- apm__id_for_name/2
--
create or replace function apm__id_for_name(
  integer,
  character varying
) returns int4 as $$

declare
  id_for_name__package_id             alias for $1;  
  id_for_name__parameter_name         alias for $2;  
  a_parameter_id                      apm_parameters.parameter_id%TYPE;
begin
    select parameter_id into a_parameter_id 
    from apm_parameters 
    where parameter_name = id_for_name__parameter_name
      and package_key = (select package_key from apm_packages
                         where package_id = id_for_name__package_id);

    if NOT FOUND
      then
      	raise EXCEPTION '-20000: The specified package % AND/OR parameter % do not exist in the system', id_for_name__package_id, id_for_name__parameter_name;
    end if;

    return a_parameter_id;
   
end;$$ language plpgsql;


--
-- apm__id_for_name/2
--
create or replace function apm__id_for_name(
  character varying,
  character varying
) returns int4 as $$

declare
  id_for_name__package_key            alias for $1;  
  id_for_name__parameter_name         alias for $2;  
  a_parameter_id                      apm_parameters.parameter_id%TYPE;
begin
    select parameter_id into a_parameter_id
    from apm_parameters p
    where p.parameter_name = id_for_name__parameter_name and
          p.package_key = id_for_name__package_key;

    if NOT FOUND
      then
      	raise EXCEPTION '-20000: The specified package % AND/OR parameter % do not exist in the system', id_for_name__package_key, id_for_name__parameter_name;
    end if;

    return a_parameter_id;
   
end;$$ language plpgsql;