Index: openacs-4/packages/file-storage/tcl/file-storage-procs-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/tcl/file-storage-procs-postgresql.xql,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/file-storage/tcl/file-storage-procs-postgresql.xql 22 Sep 2001 05:39:36 -0000 1.6
+++ openacs-4/packages/file-storage/tcl/file-storage-procs-postgresql.xql 8 Dec 2001 01:18:00 -0000 1.7
@@ -25,14 +25,10 @@
select count(*)
- from cr_items
- where item_id in (select item_id
- from cr_items
- where tree_sortkey like (select tree_sortkey || '%'
- from cr_items
- where item_id = :item_id)
- order by tree_sortkey)
- and acs_permission__permission_p(item_id,:user_id,:privilege) = 'f'
+ from cr_items c1, cr_items c2
+ where c2.item_id = :item_id
+ and c1.tree_sortkey between c2.tree_sortkey and tree_right(c2.tree_sortkey)
+ and not acs_permission__permission_p(c1.item_id,:user_id,:privilege)
@@ -41,12 +37,11 @@
- select item_id as child_item_id
- from cr_items
- where tree_sortkey like (select tree_sortkey || '%'
- from cr_items
- where item_id = :item_id)
- order by tree_sortkey
+ select c1.item_id as child_item_id
+ from cr_items c1, cr_items c2
+ where c2.item_id = :item_id
+ and c1.tree_sortkey between c2.tree_sortkey and tree_right(c2.tree_sortkey)
+ order by c1.tree_sortkey
@@ -81,16 +76,11 @@
else 'file?file_id='
end) || j.item_id,
file_storage__get_title(j.item_id)
- from cr_items i,cr_items j
- where j.item_id not in (select o2.item_id
- from cr_items o1, cr_items o2
- where o1.item_id = file_storage__get_root_folder([ad_conn package_id])
- and o2.tree_sortkey <= o1.tree_sortkey
- and o1.tree_sortkey like (o2.tree_sortkey || '%')
- )
- and i.item_id = :start_id
- and j.tree_sortkey <= i.tree_sortkey
- and i.tree_sortkey like (j.tree_sortkey || '%')
+ from cr_items i, cr_items j, cr_items k
+ where i.item_id = :start_id
+ and k.item_id = file_storage__get_root_folder([ad_conn package_id])
+ and j.tree_sortkey between tree_left(k.tree_sortkey) and i.tree_sortkey
+ and tree_ancestor_p(j.tree_sortkey, i.tree_sortkey)
order by j.tree_sortkey asc