Index: openacs-4/packages/acs-kernel/acs-kernel.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/acs-kernel.info,v diff -u -r1.136.2.25 -r1.136.2.26 --- openacs-4/packages/acs-kernel/acs-kernel.info 20 Dec 2016 20:28:49 -0000 1.136.2.25 +++ openacs-4/packages/acs-kernel/acs-kernel.info 21 Dec 2016 00:14:56 -0000 1.136.2.26 @@ -9,15 +9,15 @@ <implements-subsite-p>f</implements-subsite-p> <inherit-templates-p>t</inherit-templates-p> - <version name="5.9.1d19" url="http://openacs.org/repository/download/apm/acs-kernel-5.9.1d19.apm"> + <version name="5.9.1d20" url="http://openacs.org/repository/download/apm/acs-kernel-5.9.1d20.apm"> <owner url="mailto:oct@openacs.org">OpenACS Core Team</owner> <summary>Routines and data models providing the foundation for OpenACS-based Web services.</summary> <release-date>2016-09-06</release-date> <vendor url="http://openacs.org">OpenACS</vendor> <description format="text/html">The OpenACS kernel contains the core datamodel create and drop scripts for such things as objects, groups, partiies and the supporting PL/SQL and PL/pgSQL procedures.</description> <maturity>3</maturity> - <provides url="acs-kernel" version="5.9.1d19"/> + <provides url="acs-kernel" version="5.9.1d20"/> <callbacks> </callbacks> Index: openacs-4/packages/acs-kernel/sql/oracle/utilities-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/oracle/utilities-create.sql,v diff -u -r1.3.2.1 -r1.3.2.2 --- openacs-4/packages/acs-kernel/sql/oracle/utilities-create.sql 20 Dec 2016 20:28:49 -0000 1.3.2.1 +++ openacs-4/packages/acs-kernel/sql/oracle/utilities-create.sql 21 Dec 2016 00:14:56 -0000 1.3.2.2 @@ -64,6 +64,13 @@ table IN varchar2, column IN varchar2) return LONG; + + TYPE primary_keys IS TABLE OF varchar2; + + function get_primary_keys(table IN varchar2) + return primary_keys + PIPELINED; + end util; / show errors @@ -225,8 +232,24 @@ FROM ALL_TAB_COLUMNS WHERE table_name = table AND column_name = column); - END get_default; + END get_default; + function get_primary_keys(table IN varchar2) + return primary_keys IS + rec primary_keys; + BEGIN + SELECT cols.column_name + BULK COLLECT INTO rec + FROM all_constraints cons, all_cons_columns cols + WHERE cols.table_name = table + AND cons.constraint_type = 'P' + AND cons.constraint_name = cols.constraint_name + AND cons.owner = cols.owner + ORDER BY cols.table_name, cols.position; + + RETURN rec; + END get_primary_keys; + end util; / show errors Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-kernel/sql/oracle/upgrade/upgrade-5.9.1d19-5.9.1d20.sql'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-kernel/sql/postgresql/utilities-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/utilities-create.sql,v diff -u -r1.8.2.1 -r1.8.2.2 --- openacs-4/packages/acs-kernel/sql/postgresql/utilities-create.sql 20 Dec 2016 20:28:49 -0000 1.8.2.1 +++ openacs-4/packages/acs-kernel/sql/postgresql/utilities-create.sql 21 Dec 2016 00:14:56 -0000 1.8.2.2 @@ -282,3 +282,20 @@ and column_name = p_column); END; $$ LANGUAGE plpgsql; + +-- added +select define_function_args('util__get_primary_keys','table'); + +-- +-- procedure util__get_primary_keys/1 +-- +CREATE OR REPLACE FUNCTION util__get_primary_keys( + p_table text +) RETURNS SETOF pg_attribute.attname%TYPE AS $$ + SELECT a.attname + FROM pg_index i + JOIN pg_attribute a ON a.attrelid = i.indrelid + AND a.attnum = ANY(i.indkey) + WHERE i.indrelid = p_table::regclass + AND i.indisprimary; +$$ LANGUAGE sql; Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.9.1d19-5.9.1d20.sql'. Fisheye: No comparison available. Pass `N' to diff?