create or replace function apm_package__is_child(varchar, varchar) returns boolean as '
declare
parent_package_key alias for $1;
child_package_key alias for $2;
dependency record;
begin
if parent_package_key = child_package_key then
return ''t'';
end if;
for dependency in
select apd.service_uri
from apm_package_versions apv, apm_package_dependencies apd
where apd.version_id = apv.version_id
and apv.enabled_p
and apd.dependency_type in (''embeds'', ''extends'')
and apv.package_key = child_package_key
loop
if dependency.service_uri = parent_package_key or
apm_package__is_child(parent_package_key, dependency.service_uri) then
return ''t'';
end if;
end loop;
return ''f'';
end;' language 'plpgsql';