Index: openacs-4/packages/xotcl-core/xotcl-core.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/xotcl-core.info,v diff -u -r1.89.2.20 -r1.89.2.21 --- openacs-4/packages/xotcl-core/xotcl-core.info 11 Feb 2015 12:18:25 -0000 1.89.2.20 +++ openacs-4/packages/xotcl-core/xotcl-core.info 19 Mar 2015 10:15:12 -0000 1.89.2.21 @@ -10,7 +10,7 @@ t xotcl - + Gustaf Neumann XOTcl library functionality (e.g. thread handling, online documentation, Generic Form and List Classes) 2015-02-11 @@ -48,7 +48,7 @@ BSD-Style 2 - + Index: openacs-4/packages/xotcl-core/tcl/01-debug-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/01-debug-procs.tcl,v diff -u -r1.72.2.23 -r1.72.2.24 --- openacs-4/packages/xotcl-core/tcl/01-debug-procs.tcl 3 Feb 2015 13:44:10 -0000 1.72.2.23 +++ openacs-4/packages/xotcl-core/tcl/01-debug-procs.tcl 19 Mar 2015 10:15:12 -0000 1.72.2.24 @@ -371,7 +371,7 @@ namespace eval ::xo { # # Make reporting back of the version numbers of the most important - # nvolved components easier. + # involved components easier. # proc report_version_numbers {{pkg_list {acs-kernel xotcl-core xotcl-request-monitor xowiki s5 xoportal xowf}}} { append _ "Database: " @@ -402,6 +402,19 @@ } return $_ } + + proc pg_version {} { + # + # Return 2 digit version number (suitable for number compare + # operations) from PostgreSQL or 0.0 if not available + # + set version 0.0 + if {[db_driverkey {}] eq "postgresql"} { + set version_string [db_string dbqd.null.get_version {select version() from dual}] + regexp {PostgreSQL ([0-9]+[.][0-9+])} $version_string . version + } + return $version + } } #ns_log notice "--T [info commands ::ttrace::isenabled]" Index: openacs-4/packages/xowiki/xowiki.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/xowiki.info,v diff -u -r1.148.2.25 -r1.148.2.26 --- openacs-4/packages/xowiki/xowiki.info 11 Feb 2015 12:31:40 -0000 1.148.2.25 +++ openacs-4/packages/xowiki/xowiki.info 19 Mar 2015 10:15:12 -0000 1.148.2.26 @@ -10,7 +10,7 @@ t xowiki - + Gustaf Neumann A xotcl-based enterprise wiki system with multiple object types 2015-02-11 @@ -55,14 +55,14 @@ BSD-Style 2 - + - + @@ -75,6 +75,7 @@ + Index: openacs-4/packages/xowiki/tcl/folder-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/folder-procs.tcl,v diff -u -r1.27.2.10 -r1.27.2.11 --- openacs-4/packages/xowiki/tcl/folder-procs.tcl 3 Mar 2015 16:12:54 -0000 1.27.2.10 +++ openacs-4/packages/xowiki/tcl/folder-procs.tcl 19 Mar 2015 10:15:12 -0000 1.27.2.11 @@ -103,11 +103,22 @@ set target [$l get_target_from_link_page] # the following clause needs an oracle counter-part - set tree_sortkey [::xo::dc get_value get_tree_sort_key \ - "select tree_sortkey from acs_objects where object_id = [$target item_id]"] - set extra_where "and bt.item_id in (select object_id from acs_objects \ - where tree_sortkey between '$tree_sortkey' and tree_right('$tree_sortkey') \ - and object_type = 'content_item')" + if {[::xo::pg_version] < 9} { + set tree_sortkey [::xo::dc get_value get_tree_sort_key \ + "select tree_sortkey from acs_objects where object_id = [$target item_id]"] + set extra_where "and bt.item_id in (select object_id from acs_objects \ + where tree_sortkey between '$tree_sortkey' and tree_right('$tree_sortkey') \ + and object_type = 'content_item')" + } else { + ns_log notice "$target item_id = [$target item_id]" + set root_node [$target item_id] + set extra_where "and bt.item_id in ( + With RECURSIVE child_items AS ( + select item_id from cr_items where item_id = $root_node + UNION ALL + select ci.item_id from cr_items ci, child_items where ci.parent_id = child_items.item_id + ) select item_id from child_items)" + } set sub_folders [my collect_folders -package_id [$target physical_package_id] \ -folder_form_id $folder_form_id -link_form_id $link_form_id \