Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/mp3jukebox.info'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/bin/mp3_file_scan'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/bin/mp3_info_determine'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/sql/oracle/mp3jukebox-create.sql'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/sql/oracle/mp3jukebox-drop.sql'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/tcl/mp3-procs.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/tcl/scanner-procs.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/index.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/index.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/master.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/one-playlist.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/one-playlist.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/vote-thankyou.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/vote-thankyou.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/vote.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/file-search.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/file-search.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/index.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/index.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/master.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/mp3-add-2.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/mp3-add-2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/mp3-add.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/mp3-add.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/mp3-delete.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/mp3-edit-2.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/mp3-edit-2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/mp3-edit.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/mp3-edit.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/mp3-mark-as-deleted.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/one-playlist.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/one-playlist.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/order-choose.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/order-choose.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-create-2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-create.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-create.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-delete-2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-delete.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-delete.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-edit-2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-edit.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-edit.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-item-add-2.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-item-add.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-item-add.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/playlist-item-remove.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/scanner.adp'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/scanner.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/admin/swap.tcl'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/doc/design.html'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/doc/index.html'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/doc/requirements.html'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/m3u/index.vuh'.
Fisheye: No comparison available.  Pass `N' to diff?
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/contrib/obsolete-packages/mp3jukebox/www/mp3s/index.vuh'.
Fisheye: No comparison available.  Pass `N' to diff?
Index: openacs-4/packages/directory/directory.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/directory/directory.info,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/directory/directory.info	21 Oct 2001 18:16:34 -0000	1.2
+++ openacs-4/packages/directory/directory.info	21 Oct 2001 21:44:46 -0000	1.3
@@ -38,6 +38,8 @@
             <file type="documentation" path="www/doc/images/arsdigita2.gif"/>
             <file type="documentation" path="www/doc/index.html"/>
             <file type="documentation" path="www/doc/xml/index.xml"/>
+            <file type="query_file" db_type="oracle" path="www/index-oracle.xql"/>
+            <file type="query_file" db_type="postgresql" path="www/index-postgresql.xql"/>
             <file type="content_page" path="www/index.adp"/>
             <file type="content_page" path="www/index.tcl"/>
             <file type="query_file" path="www/index.xql"/>
Index: openacs-4/packages/directory/www/index-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/directory/www/index-oracle.xql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/directory/www/index-oracle.xql	21 Oct 2001 21:44:46 -0000	1.1
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+
+<queryset>
+   <rdbms><type>oracle</type><version>8.1.6</version></rdbms>
+
+<fullquery name="get_all_n_users">      
+      <querytext>
+         select * from (
+           select first_names, last_name, email, user_id, rownum as my_rownum from (
+              select m.* from $table_and_group
+              $where_clause
+              $order_clause
+           )
+         ) where my_rownum between :start_row and [expr $start_row + $num_rows - 1]
+      </querytext>
+</fullquery>
+
+
+</queryset>
Index: openacs-4/packages/directory/www/index-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/directory/www/index-postgresql.xql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/directory/www/index-postgresql.xql	21 Oct 2001 21:44:46 -0000	1.1
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+
+<queryset>
+   <rdbms><type>postgresql</type><version>7.1</version></rdbms>
+
+<fullquery name="get_all_n_users">      
+      <querytext>
+         select m.* from $table_and_group
+         $where_clause
+         $order_clause
+         offset [expr $start_row - 1] limit $num_rows
+      </querytext>
+</fullquery>
+ 
+</queryset>
Index: openacs-4/packages/directory/www/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/directory/www/index.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/directory/www/index.tcl	21 Oct 2001 18:16:34 -0000	1.2
+++ openacs-4/packages/directory/www/index.tcl	21 Oct 2001 21:44:46 -0000	1.3
@@ -55,27 +55,14 @@
     set page_title "Browse members"
 }
 
+set order_clause [db_map order_by_$order_by]
 
-set order_clause ""
-if {$order_by == "name"} {
-    set order_clause " order by lower(last_name)"
-} elseif {$order_by == "email"} {
-    set order_clause " order by lower(email)"
-} elseif {$order_by == "name-"} {
-    set order_clause " order by lower(last_name) desc"
-} elseif {$order_by == "email-"} {
-    set order_clause " order by lower(email) desc"
-}
-
 if {![empty_string_p $search]} {
-    set where_clause "and (lower(first_names) like '%' || lower(:search) || '%'
-                        or lower(last_name) like '%' || lower(:search) || '%'
-                        or lower(email) like '%' || lower(:search) || '%')"
+    set where_clause [db_map where_1]
     set where_text " with something matching &quot;$search&quot;"
     set alpha_nav_bar ""
 } elseif {![empty_string_p $letter] && $letter != "all"} {
-    set where_clause "and upper(last_name) like :letter || '%'"
-    set where_text " with a last name starting with $letter"
+    set where_clause [db_map where_2]
     set alpha_nav_bar [dir_alpha_nav_bar -group_id $group_id -all_users $all_users $letter start_row]
 } else {
     set where_clause ""
@@ -90,7 +77,7 @@
 if {[empty_string_p $where_clause]} {
     set queried_users $total_users
 } else {
-    set queried_users [db_string total_users_1 "
+    set queried_users [db_string total_users_2 "
    select count(1)
      from $table_and_group
    $where_clause"]
@@ -102,27 +89,12 @@
 set name_header [ad_decode $order_by "name" "<a href=index?order_by=name-&$header_link_vars>Name:</a>&nbsp;^" "name-" "<a href=index?order_by=name&$header_link_vars>Name:</a>&nbsp;v" "<a href=index?order_by=name&$header_link_vars>Name:</a>"]
 set email_header [ad_decode $order_by "email" "<a href=index?order_by=email-&$header_link_vars>E-mail Address:</a>&nbsp;^" "email-" "<a href=index?order_by=email&$header_link_vars>E-mail Address:</a>&nbsp;v" "<a href=index?order_by=email&$header_link_vars>E-mail Address:</a>"]
 
-
-# this query is really ugly (3 nested selects!) but it's the only way to get a
-# "between" to work correctly on the rownum of an ordered set
-# if anyone knows a better way, I'd love to hear it - mikeb
-set sql_query "select m.*
-                 from $table_and_group
-                $where_clause
-                $order_clause"
-
-if {$num_rows != "0"} {
-    set end_row [expr $start_row + $num_rows - 1]
-    set sql_query "
-                  select * from (
-                    select first_names, last_name, email, user_id, rownum as my_rownum from (
-                     $sql_query
-                    )
-                   ) where my_rownum between :start_row and :end_row"
+if { $num_rows == 0 } {
+    db_multirow all_user_data get_all_users ""
+} else {
+    db_multirow all_user_data get_all_n_users ""
 }
 
-db_multirow all_user_data get_all_users $sql_query
-
 set rowcount [template::multirow size all_user_data]
 
 set last_row [expr $start_row + $rowcount - 1]
Index: openacs-4/packages/directory/www/index.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/directory/www/index.xql,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/directory/www/index.xql	21 Oct 2001 18:16:34 -0000	1.1
+++ openacs-4/packages/directory/www/index.xql	21 Oct 2001 21:44:46 -0000	1.2
@@ -3,18 +3,17 @@
 
 <fullquery name="total_users_1">      
       <querytext>
-      
-   select count(1)
-     from $table_and_group
+         select count(1)
+         from $table_and_group
       </querytext>
 </fullquery>
 
  
 <fullquery name="total_users_2">      
       <querytext>
-      
-   select count(1)
-     from $table_and_group
+         select count(1)
+         from $table_and_group
+         $where_clause
       </querytext>
 </fullquery>
  
@@ -30,4 +29,50 @@
       </querytext>
 </partialquery>
  
+<partialquery name="order_by_name">      
+      <querytext>
+        order by lower(last_name)
+      </querytext>
+</partialquery>
+
+<partialquery name="order_by_email">      
+      <querytext>
+        order by lower(email)
+      </querytext>
+</partialquery>
+
+<partialquery name="order_by_name-">      
+      <querytext>
+        order by lower(last_name) desc
+      </querytext>
+</partialquery>
+ 
+<partialquery name="order_by_email-">      
+      <querytext>
+        order by lower(email) desc
+      </querytext>
+</partialquery>
+
+<partialquery name="where_1">      
+      <querytext>
+         and (lower(first_names) like '%' || lower(:search) || '%'
+              or lower(last_name) like '%' || lower(:search) || '%'
+              or lower(email) like '%' || lower(:search) || '%')
+      </querytext>
+</partialquery>
+ 
+<partialquery name="where_2">      
+      <querytext>
+         and upper(last_name) like :letter || '%'
+      </querytext>
+</partialquery>
+ 
+<fullquery name="get_all_users">      
+      <querytext>
+         select m.* from $table_and_group
+           $where_clause
+           $order_clause
+      </querytext>
+</fullquery>
+ 
 </queryset>