postgresql7.1
select t1.pretty_name as object_type_one_pretty_name,
r.object_type_one, acs_rel_type__role_pretty_name(r.role_one) as role_one_pretty_name,
r.role_one, r.min_n_rels_one, r.max_n_rels_one,
t2.pretty_name as object_type_two_pretty_name,
r.object_type_two, acs_rel_type__role_pretty_name(r.role_two) as role_two_pretty_name,
r.role_two, r.min_n_rels_two, r.max_n_rels_two
from acs_rel_types r, acs_object_types t1, acs_object_types t2
where r.rel_type = :rel_type
and r.object_type_one = t1.object_type
and r.object_type_two = t2.object_type
select v_inner.*
from (select r.rel_id, acs_object__name(r.object_id_one) || ' and ' || acs_object__name(r.object_id_two) as name
from acs_rels r, acs_object_party_privilege_map perm,
app_group_distinct_rel_map m
where perm.object_id = r.rel_id
and perm.party_id = :user_id
and perm.privilege = 'read'
and r.rel_type = :rel_type
and m.rel_id = r.rel_id
and m.package_id = :package_id
order by lower(acs_object__name(r.object_id_one)), lower(acs_object__name(r.object_id_two))) v_inner
limit 26