Index: openacs-4/packages/acs-subsite/www/admin/relations/add-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/admin/relations/Attic/add-postgresql.xql,v diff -u -r1.1 -r1.2 --- openacs-4/packages/acs-subsite/www/admin/relations/add-postgresql.xql 15 May 2001 16:59:01 -0000 1.1 +++ openacs-4/packages/acs-subsite/www/admin/relations/add-postgresql.xql 11 Aug 2001 21:31:03 -0000 1.2 @@ -5,8 +5,6 @@ - FIX ME CONNECT BY - select t.object_type_two, t.role_two as role, acs_rel_type__role_pretty_name(t.role_two) as role_pretty_name, acs_object_type__pretty_name(t.object_type_two) as object_type_two_name, @@ -17,52 +15,58 @@ and t.rel_type = obj_types.object_type and ancestor_rel_types.supertype = 'relationship' and ancestor_rel_types.object_type in ( - select object_type from acs_object_types - start with object_type = :rel_type - connect by object_type = prior supertype - ) + select t2.object_type from + acs_object_types t1, acs_object_types t2 + where t1.object_type= :rel_type + and t2.tree_sortkey <= t1.tree_sortkey + and t1.tree_sortkey like (t2.tree_sortkey || '%') + ) + + +cross join (select element_id from application_group_element_map + where package_id = :package_id) app_elements + + + - FIX ME DECODE (USE SQL92 CASE) -FIX ME OUTER JOIN -FIX ME CONNECT BY - select DISTINCT - decode(groups.group_id, - null, case when persons.person_id = null then 'INVALID' else persons.first_names || ' ' || persons.last_name end, - groups.group_name) as party_name, + case when groups.group_id is null then + case when persons.person_id is null then 'INVALID' + else persons.first_names || ' ' || persons.last_name + end else + groups.group_name end as party_name, p.party_id from (select o.object_id as party_id from acs_objects o, (select object_type from acs_object_types - start with $start_with - connect by prior object_type = supertype) t - where o.object_type = t.object_type) p, + where tree_sortkey like (select tree_sortkey || '%' + from acs_object_types + where $start_with)) t + where o.object_type = t.object_type) p left join (select element_id from group_element_map where group_id = :group_id and rel_type = :rel_type UNION ALL - select to_number(:group_id) ) m, + select :group_id::integer ) m on (p.party_id = m.element_id) cross join (select object_id from all_object_party_privilege_map - where party_id = :user_id and privilege = 'read') perm, + where party_id = :user_id and privilege = 'read') perm cross join (select party_id from rc_parties_in_required_segs where group_id = :group_id - and rel_type = :rel_type) pirs $scope_query, - groups, - persons - where p.party_id = m.element_id(+) - and m.element_id is null + and rel_type = :rel_type) pirs $scope_query left join + groups on (p.party_id = groups.group_id) + left join persons on (p.party_id = persons.person_id) + where + m.element_id is null and p.party_id = perm.object_id and p.party_id = pirs.party_id $scope_clause - and p.party_id = groups.group_id(+) - and p.party_id = persons.person_id(+)