- Publicity: Public Only All
acs-db-12-procs.tcl
Low level interface for defining interface stubs to application specific DB functions.
This file defines the following Objects and Classes: ::acs::db::postgresql, ::acs::db::nsdb-oracle, ::acs::db::SQL, ::acs::db::nsdbi-postgresql, ::acs::db::oracle, ::acs::db::SQL, ::acs::db::SQL, ::acs::db::SQL, ::acs::db::SQL, ::acs::db::SQL, ::acs::db::SQL, ::acs::db::nsdb-oracle, ::acs::db::nsdbi-postgresql, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::SQL, ::acs::db::SQL, ::acs::db::SQL, ::acs::db::SQL, ::acs::db::SQL, ::acs::db::SQL, ::acs::db::SQL, ::acs::db::nsdb-oracle, ::acs::db::nsdbi-postgresql, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::SQL, ::acs::db::oracle, ::acs::db::oracle, ::acs::db::postgresql, ::acs::db::postgresql, ::acs::db::postgresql
- Location:
- packages/acs-tcl/tcl/acs-db-12-procs.tcl
- Created:
- 2022-02-07
- Author:
- Gustaf Neumann
Procedures in this file
- Class ::acs::db::SQL (public)
- Class ::acs::db::nsdb-oracle (public)
- Class ::acs::db::nsdbi-postgresql (public)
- Class ::acs::db::oracle (public)
- Class ::acs::db::postgresql (public)
- acs::db::SQL instproc create_db_function_interface (public)
- acs::db::oracle instproc get_all_package_functions (public)
- acs::db::oracle instproc map_function_name (public)
- acs::db::postgresql instproc get_all_package_functions (public)
- acs::db::postgresql instproc map_function_name (public)
Detailed information
Class ::acs::db::SQL (public)
::nx::Class ::acs::db::SQL
Generic superclass for all SQL dialects.
- Testcases:
- No testcase defined.
Class ::acs::db::nsdb-oracle (public)
::nx::Class ::acs::db::nsdb-oracle
Oracle backend for nsdb driver
- Testcases:
- No testcase defined.
Class ::acs::db::nsdbi-postgresql (public)
::nx::Class ::acs::db::nsdbi-postgresql
PostgreSQL backend for nsdbi driver
- Testcases:
- No testcase defined.
Class ::acs::db::oracle (public)
::nx::Class ::acs::db::oracle
Support class for backend based on Oracle, i.e., the Oracle dialect of SQL).. This class can be used with the nsdb and the nsdbi drivers of NaviServer.
- Testcases:
- No testcase defined.
Class ::acs::db::postgresql (public)
::nx::Class ::acs::db::postgresql
Support class for backend based on PostgreSQL, i.e., the PostgreSQL dialect of SQL). This class can be used with the nsdb and the nsdbi drivers of NaviServer.
- Testcases:
- No testcase defined.
acs::db::SQL method create_db_function_interface (public)
<instance of acs::db::SQL> create_db_function_interface \ [ -dbn dbn ] [ -match match ] [ -verbose ]
Obtain all function definitions from the DB and turn these into callable Tcl methods like the following examples: ::acs::dc call content_type drop_type -content_type ::xowiki::FormInstance ::acs::dc call content_folder delete -folder_id $root_folder_id -cascade_p 1 In the Oracle-biased terminology such calls are defined in terms of a "package_name" and an "object_name": ::acs::dc call /package_name/ /object_name/ ?/args/?
- Switches:
- -dbn (optional)
- -match (optional, defaults to
"*"
)- -verbose (optional)
- Testcases:
- No testcase defined.
acs::db::oracle method get_all_package_functions (public)
<instance of acs::db::oracle> get_all_package_functions \ [ -dbn dbn ]
Get all package functions (package name, object name) from Oracle system catalogs. The resulting list contains entries of the form: sqlpackage object {argument_names ... types ... defaulted ... result_type ....} Note that the method processes only the functions and procedures created by the current USER, which is in the default configuration the user "OPENACS". This way, we cover only these functions defined by OpenACS. This has a similar functionality like the "function_args" in PostgreSQL.
- Switches:
- -dbn (optional)
- Testcases:
- No testcase defined.
acs::db::oracle method map_function_name (public)
<instance of acs::db::oracle> map_function_name sql
Replace calls to function names in provided SQL (replace "package__object" by "package.object").
- Parameters:
- sql (required)
- Testcases:
- No testcase defined.
acs::db::postgresql method get_all_package_functions (public)
<instance of acs::db::postgresql> get_all_package_functions \ [ -dbn dbn ]
PostgreSQL version of obtaining information about the procedures and functions stored in the DB. For PostgreSQL, we keep this in the table "function_args". The information from "acs_function_args" defines, for which functions we want to create an interface. The information is completed with the definitions from the system catalog of PostgreSQL. The resulting list contains entries of the form: sqlpackage object {argument_names ... types ... defaulted ... defaults result_type ....} Currently, "defaults" are only available for PostgreSQL
- Switches:
- -dbn (optional)
- Testcases:
- No testcase defined.
acs::db::postgresql method map_function_name (public)
<instance of acs::db::postgresql> map_function_name sql
Replace calls to function names in provided SQL (dummy function for PostgreSQL)
- Parameters:
- sql (required)
- Testcases:
- No testcase defined.