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

declare
  add_dependency__dependency_id          alias for $1;  -- default null  
  add_dependency__version_id             alias for $2;  
  add_dependency__dependency_uri         alias for $3;  
  add_dependency__dependency_version     alias for $4;  
  v_dep_id                            apm_package_dependencies.dependency_id%TYPE;
begin
      if add_dependency__dependency_id is null then
          select nextval('t_acs_object_id_seq') into v_dep_id from dual;
      else
          v_dep_id := add_dependency__dependency_id;
      end if;
  
      insert into apm_package_dependencies
      (dependency_id, version_id, dependency_type, service_uri, service_version)
      values
      (v_dep_id, add_dependency__version_id, 'requires', add_dependency__dependency_uri,
	add_dependency__dependency_version);

      return v_dep_id;
   
end;$$ language plpgsql;


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

declare
  add_dependency__dependency_type        alias for $1;
  add_dependency__dependency_id          alias for $2;  -- default null  
  add_dependency__version_id             alias for $3;  
  add_dependency__dependency_uri         alias for $4;  
  add_dependency__dependency_version     alias for $5;  
  v_dep_id                            apm_package_dependencies.dependency_id%TYPE;
begin
      if add_dependency__dependency_id is null then
          select nextval('t_acs_object_id_seq') into v_dep_id from dual;
      else
          v_dep_id := add_dependency__dependency_id;
      end if;
  
      insert into apm_package_dependencies
      (dependency_id, version_id, dependency_type, service_uri, service_version)
      values
      (v_dep_id, add_dependency__version_id, add_dependency__dependency_type,
        add_dependency__dependency_uri, add_dependency__dependency_version);

      return v_dep_id;
   
end;$$ language plpgsql;