Index: openacs-4/contrib/obsolete-packages/acs-workflow/sql/postgresql/workflow-case-package.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/obsolete-packages/acs-workflow/sql/postgresql/workflow-case-package.sql,v diff -u -r1.11 -r1.12 --- openacs-4/contrib/obsolete-packages/acs-workflow/sql/postgresql/workflow-case-package.sql 16 May 2001 00:40:41 -0000 1.11 +++ openacs-4/contrib/obsolete-packages/acs-workflow/sql/postgresql/workflow-case-package.sql 29 Jul 2001 23:16:50 -0000 1.12 @@ -1139,6 +1139,7 @@ v_done_p boolean; case_assignment_rec record; context_assignment_rec record; + v_str text; begin /* Find out who to assign the given task to. @@ -1167,9 +1168,10 @@ if v_done_p != ''t'' then if set_task_assignments__callback != '''' and set_task_assignments__callback is not null then - execute ''select ''|| set_task_assignments__callback || ''('' || + v_str := ''select ''|| set_task_assignments__callback || ''('' || set_task_assignments__task_id || '','' || coalesce(quote_literal(set_task_assignments__custom_arg),''null'') || '')''; + execute v_str; else for context_assignment_rec in select party_id Index: openacs-4/contrib/obsolete-packages/bboard-portlets/bboard-portlets.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/obsolete-packages/bboard-portlets/bboard-portlets.info,v diff -u -r1.1 -r1.2 --- openacs-4/contrib/obsolete-packages/bboard-portlets/bboard-portlets.info 28 Jul 2001 23:58:07 -0000 1.1 +++ openacs-4/contrib/obsolete-packages/bboard-portlets/bboard-portlets.info 29 Jul 2001 23:16:50 -0000 1.2 @@ -4,12 +4,14 @@ Bboard portlets Bboard portlets + f t - - oracle-8.1.6 - + + oracle + postgresql + Phong Nguyen Creates bboard datasources for portal portlets. ArsDigita Corporation @@ -21,7 +23,13 @@ + + + + + + Index: openacs-4/contrib/obsolete-packages/ticket-tracker/tcl/ttracker-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/obsolete-packages/ticket-tracker/tcl/ttracker-procs.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/contrib/obsolete-packages/ticket-tracker/tcl/ttracker-procs.tcl 20 Apr 2001 20:51:25 -0000 1.1 +++ openacs-4/contrib/obsolete-packages/ticket-tracker/tcl/ttracker-procs.tcl 29 Jul 2001 23:16:50 -0000 1.2 @@ -116,6 +116,7 @@ set package_id [ad_conn package_id] } +ns_log Notice "Huh? $package_id" db_exec_plsql install { begin ttracker_util.install(:package_id); Index: openacs-4/packages/acs-bootstrap-installer/db-init-checks-postgresql.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-bootstrap-installer/db-init-checks-postgresql.tcl,v diff -u -r1.1 -r1.2 --- openacs-4/packages/acs-bootstrap-installer/db-init-checks-postgresql.tcl 12 Apr 2001 16:58:18 -0000 1.1 +++ openacs-4/packages/acs-bootstrap-installer/db-init-checks-postgresql.tcl 29 Jul 2001 23:16:50 -0000 1.2 @@ -14,17 +14,17 @@ # This should never happened - we were able to grab a handle previously, why not now? append my_errors "(db_bootstrap_checks) Internal error accessing pool \"$pool\".
" set my_error_p 1 - } else { - if { [catch { ns_db 1row $db "select count(*) from pg_class pg1 left join pg_class pg2 using (relname)" }] } { - set my_errors "Your installed version of Postgres does not support outer joins. Please install Postgres V7.1 or later." + } elseif { [catch { ns_db 1row $db "select count(*) from pg_class pg1 left join pg_class pg2 using (relname)" }] } { + set my_errors "Your installed version of Postgres does not support outer joins. Please install Postgres V7.1 or later." + set my_error_p 1 + } elseif { [catch { ns_pg_bind 1row $db "select count(*) from pg_class" }] } { + set my_errors "Your Postgres driver is too old. You need to update." + set my_error_p 1 + } elseif { [empty_string_p [ns_db 0or1row $db "select 1 where 'a' > 'A'"] ] } { + set my_errors "You have enabled locale support and did an initdb with the environment variable \"LANG\" set to something other than \"C\". OpenACS won't work unless PostgreSQL's collation order is set to match \"C\"." set my_error_p 1 - } - if { [catch { ns_pg_bind 1row $db "select count(*) from pg_class" }] } { - set my_errors "Your Postgres driver is too old. You need to update." - set my_error_p 1 - } - ns_db releasehandle $db } + ns_db releasehandle $db } if { ![info exists my_error_p] } { # DRB: I don't know how to get this from PG... Index: openacs-4/packages/acs-bootstrap-installer/installer/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-bootstrap-installer/installer/index.tcl,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-bootstrap-installer/installer/index.tcl 14 Jul 2001 23:03:25 -0000 1.2 +++ openacs-4/packages/acs-bootstrap-installer/installer/index.tcl 29 Jul 2001 23:16:50 -0000 1.3 @@ -66,7 +66,7 @@ # This NSV entry is set if there's some sort of problem with the database # driver. We aren't going to get very far in that case. - append body " + append body "

[nsv_get acs_properties database_problem]

The first step involved in setting up your ACS Index: openacs-4/packages/acs-bootstrap-installer/tcl/30-apm-load-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-bootstrap-installer/tcl/30-apm-load-procs.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-bootstrap-installer/tcl/30-apm-load-procs.tcl 27 Jul 2001 00:35:06 -0000 1.4 +++ openacs-4/packages/acs-bootstrap-installer/tcl/30-apm-load-procs.tcl 29 Jul 2001 23:16:50 -0000 1.5 @@ -148,6 +148,9 @@ Example: "sql/postgresql/apm-create.sql" is assumed to be the PostgreSQL-specific file used to create the APM datamodel. + If the path contains a string matching "sql/common" the file is assumed to be + compatible with all supported RDBMS's and a db_type of "common" is returned. + 2. Other files. If the file name contains a dash and database type, the file is assumed to be @@ -163,6 +166,9 @@ set sql_index [lsearch $components "sql"] if { $sql_index >= 0 } { set db_dir [lindex $components [expr $sql_index + 1]] + if { [string equal db_dir "common"] } { + return "common" + } foreach known_database_type [db_known_database_types] { if { [string equal [lindex $known_database_type 0] $db_dir] } { return $db_dir Index: openacs-4/packages/acs-tcl/tcl/00-database-procs-oracle.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/00-database-procs-oracle.tcl,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-tcl/tcl/00-database-procs-oracle.tcl 30 May 2001 20:53:00 -0000 1.9 +++ openacs-4/packages/acs-tcl/tcl/00-database-procs-oracle.tcl 29 Jul 2001 23:16:50 -0000 1.10 @@ -7,6 +7,15 @@ @cvs-id $Id$ } +ad_doc db_compatible_rdbms_p { db_type } { + Returns 1 if the given db_type is compatible with the current RDBMS. If db_type + is blank we assume this is a legacy Oracle package that's not been moved to + the OpenACS multidb framework. +} { + return [expr { [empty_string_p $db_type] || [string equal [db_type] $db_type] || \ + [string equal $db_type "common"] }] +} + ad_proc -public db_nullify_empty_string { string } { A convenience function that returns [db_null] if $string is the empty string. } { Index: openacs-4/packages/acs-tcl/tcl/00-database-procs-postgresql.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/00-database-procs-postgresql.tcl,v diff -u -r1.19 -r1.20 --- openacs-4/packages/acs-tcl/tcl/00-database-procs-postgresql.tcl 22 Jul 2001 15:11:27 -0000 1.19 +++ openacs-4/packages/acs-tcl/tcl/00-database-procs-postgresql.tcl 29 Jul 2001 23:16:50 -0000 1.20 @@ -7,6 +7,13 @@ @cvs-id $Id$ } +ad_proc db_compatible_rdbms_p { db_type } { + Returns 1 if the given db_type is compatible with the current RDBMS. If db_type + is blank we assume this is a legacy Oracle package that's not been ported to + PostgreSQL so don't return 1 as we do when running in Oracle mode. +} { + return [expr { [string equal [db_type] $db_type] || [string equal $db_type "common"] }] +} proc_doc db_nextval { sequence } { Returns the next value for a sequence. This can utilize a pool of sequence values to save hits to the database. } { return [db_string nextval "select ${sequence}.nextval"] } @@ -576,7 +583,7 @@ Sources a SQL file (in psql format). } { - + global tcl_platform set file_name [file tail $file] set pguser [db_get_username] @@ -590,7 +597,12 @@ } cd [file dirname $file] - set fp [open "|[file join [db_get_pgbin] psql] $pgport $pguser -f $file_name [db_get_database]" "r"] + + if { $tcl_platform(platform) == "windows" } { + set fp [open "|[file join [db_get_pgbin] psql] -h [ns_info hostname] $pgport $pguser -f $file_name [db_get_database]" "r"] + } else { + set fp [open "|[file join [db_get_pgbin] psql] $pgport $pguser -f $file_name [db_get_database]" "r"] + } while { [gets $fp line] >= 0 } { # Don't bother writing out lines which are purely whitespace. Index: openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl 9 May 2001 22:32:25 -0000 1.10 +++ openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl 29 Jul 2001 23:16:50 -0000 1.11 @@ -1144,7 +1144,7 @@ # remove the kludge and insist that datamodel files live in the proper directory. if {[lsearch -exact $types_to_retrieve $file_type] != -1 && \ - ([empty_string_p $file_db_type] || ![string compare [db_type] $file_db_type])} { + ([db_compatible_rdbms_p $file_db_type])} { if { ![string compare $file_type "data_model_upgrade"] } { if {[apm_upgrade_for_version_p $path $upgrade_from_version_name \ $upgrade_to_version_name]} { Index: openacs-4/packages/acs-tcl/tcl/apm-xml-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-xml-procs.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-tcl/tcl/apm-xml-procs.tcl 14 Jul 2001 23:03:25 -0000 1.6 +++ openacs-4/packages/acs-tcl/tcl/apm-xml-procs.tcl 29 Jul 2001 23:16:50 -0000 1.7 @@ -294,7 +294,7 @@ set tree [xml_parse $xml_data] # set package [dom::node cget $tree -firstChild] set root_node [xml_doc_get_first_node_by_name $tree package] - ns_log Notice "XML: root node is [ns_xml node name $root_node]" + ns_log Debug "XML: root node is [ns_xml node name $root_node]" set package $root_node # set root_name [dom::node cget $package -nodeName] @@ -305,11 +305,11 @@ ns_log Notice "XML - there are [llength $root_children] child nodes" foreach child $root_children { - ns_log Notice "XML - one root child: [xml_node_get_name $child]" + ns_log Debug "XML - one root child: [xml_node_get_name $child]" } if { ![string equal $root_name "package"] } { - ns_log Notice "XML: the root name is $root_name" + ns_log Debug "XML: the root name is $root_name" error "Expected as root node" } set properties(package.key) [apm_required_attribute_value $package key] Index: openacs-4/packages/bookmarks/bookmarks.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/bookmarks.info,v diff -u -r1.11 -r1.12 --- openacs-4/packages/bookmarks/bookmarks.info 23 Jul 2001 03:01:40 -0000 1.11 +++ openacs-4/packages/bookmarks/bookmarks.info 29 Jul 2001 23:16:50 -0000 1.12 @@ -16,28 +16,28 @@

This module lets you manage your bookmarks on the web and enables sharing of bookmarks between people in a community (one ACS installation). 2001-02-23 ArsDigita Corporation - This version contains a number of bugfixes and minor improvements over the 4.X alpha versions and has been rigorously tested. - -New features in the ACS4 (not in the ACS4 version) include: - -- Adding bookmarks when browsing with the help of a Bookmarklet (a Bookmark in the browser that contains Javascript instead of a url). - -- Sorting by name and access date - -- Enhanced access permissions. The alpha version will only include toggling between private and public. Future versions could use the ACS permission API to grant read, write, delete and admin rights to any party on a bookmark level. It is not yet clear how big the need for this granular access permissions is. - -- Display of keywords and descriptions of urls (fetched with ns_httpget) - -Important features from the ACS3 version are: - -- Bookmarks are viewed in a tree structure with open/collapse functionality of folders. Alternatively the bookmarks can be viewed in a Javascript version. - -- Importing/exporting bookmarks from/to Netscape and IE browsers - -- Checking if URLs are alive - -- Display of the most popular hosts and urls in the community - + This version contains a number of bugfixes and minor improvements over the 4.X alpha versions and has been rigorously tested. + +New features in the ACS4 (not in the ACS4 version) include: + +- Adding bookmarks when browsing with the help of a Bookmarklet (a Bookmark in the browser that contains Javascript instead of a url). + +- Sorting by name and access date + +- Enhanced access permissions. The alpha version will only include toggling between private and public. Future versions could use the ACS permission API to grant read, write, delete and admin rights to any party on a bookmark level. It is not yet clear how big the need for this granular access permissions is. + +- Display of keywords and descriptions of urls (fetched with ns_httpget) + +Important features from the ACS3 version are: + +- Bookmarks are viewed in a tree structure with open/collapse functionality of folders. Alternatively the bookmarks can be viewed in a Javascript version. + +- Importing/exporting bookmarks from/to Netscape and IE browsers + +- Checking if URLs are alive + +- Display of the most popular hosts and urls in the community + Areas that need improvement: The query on the index page is a bit slow - closing and opening folders becomes impractible with for example 200 bookmarks. Users who have this many bookmarks can preferably use the Javascript version.