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.150.2.66 -r1.150.2.67 --- openacs-4/packages/acs-kernel/acs-kernel.info 13 Aug 2024 07:52:33 -0000 1.150.2.66 +++ openacs-4/packages/acs-kernel/acs-kernel.info 20 Aug 2024 13:38:16 -0000 1.150.2.67 @@ -9,15 +9,15 @@ f t - + OpenACS Core Team Routines and data models providing the foundation for OpenACS-based Web services. 2023-07-10 OpenACS The OpenACS kernel contains the core datamodel create and drop scripts for such things as objects, groups, parties and the supporting PL/SQL and PL/pgSQL procedures. 3 - + Index: openacs-4/packages/acs-kernel/sql/postgresql/acs-objects-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/acs-objects-create.sql,v diff -u -r1.71.2.6 -r1.71.2.7 --- openacs-4/packages/acs-kernel/sql/postgresql/acs-objects-create.sql 8 Oct 2022 20:07:17 -0000 1.71.2.6 +++ openacs-4/packages/acs-kernel/sql/postgresql/acs-objects-create.sql 20 Aug 2024 13:38:16 -0000 1.71.2.7 @@ -1179,13 +1179,6 @@ $$ LANGUAGE plpgsql; --- function check_context_index - -select define_function_args('acs_object__check_context_index','object_id,ancestor_id,n_generations'); - - - - -- function check_object_ancestors Index: openacs-4/packages/acs-kernel/sql/postgresql/apm-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/apm-create.sql,v diff -u -r1.79.2.4 -r1.79.2.5 --- openacs-4/packages/acs-kernel/sql/postgresql/apm-create.sql 10 Jul 2023 09:29:26 -0000 1.79.2.4 +++ openacs-4/packages/acs-kernel/sql/postgresql/apm-create.sql 20 Aug 2024 13:38:16 -0000 1.79.2.5 @@ -9,27 +9,27 @@ -- @cvs-id $Id$ ----------------------------- --- PACKAGE OBJECT -- +-- PACKAGE OBJECT -- ----------------------------- ----------------------------- --- Knowledge Level -- +-- Knowledge Level -- ----------------------------- create table apm_package_types ( package_key varchar(100) - constraint apm_package_types_p_key_pk primary key, + constraint apm_package_types_p_key_pk primary key, pretty_name varchar(100) - constraint apm_package_types_pretty_n_nn not null - constraint apm_package_types_pretty_n_un unique, - pretty_plural varchar(100) - constraint apm_package_types_pretty_pl_un unique, + constraint apm_package_types_pretty_n_nn not null + constraint apm_package_types_pretty_n_un unique, + pretty_plural varchar(100) + constraint apm_package_types_pretty_pl_un unique, package_uri varchar(1500) - constraint apm_packages_types_p_uri_nn not null - constraint apm_packages_types_p_uri_un unique, + constraint apm_packages_types_p_uri_nn not null + constraint apm_packages_types_p_uri_un unique, package_type varchar(300) - constraint apm_packages_pack_type_ck - check (package_type in ('apm_application', 'apm_service')), + constraint apm_packages_pack_type_ck + check (package_type in ('apm_application', 'apm_service')), spec_file_path varchar(1500), spec_file_mtime integer, initial_install_p boolean default 'f' @@ -57,7 +57,7 @@ $$; comment on column apm_package_types.package_uri is $$ - The package URI indicates where the package can be downloaded and + The package URI indicates where the package can be downloaded and is a unique identifier for the package. $$; @@ -66,7 +66,7 @@ $$; comment on column apm_package_types.spec_file_mtime is $$ - The last time a spec file was modified. This information is maintained in the + The last time a spec file was modified. This information is maintained in the database so that if a user changes the specification file by editing the file (as opposed to using the UI, the system can read the .info file and update the information in the database appropriately. @@ -78,8 +78,8 @@ $$; comment on column apm_package_types.singleton_p is $$ - Indicates if the package can be used for subsites. If this is set to - 't', the package can be enabled for any subsite. Otherwise, it is + Indicates if the package can be used for subsites. If this is set to + 't', the package can be enabled for any subsite. Otherwise, it is restricted to the acs-admin/ subsite. $$; @@ -163,12 +163,12 @@ create table apm_packages ( package_id integer constraint apm_packages_package_id_fk - references acs_objects(object_id) - constraint apm_packages_package_id_pk primary key, + references acs_objects(object_id) + constraint apm_packages_package_id_pk primary key, package_key varchar(100) constraint apm_packages_package_key_fk - references apm_package_types(package_key), + references apm_package_types(package_key), instance_name varchar(300) - constraint apm_packages_instance_name_nn not null, + constraint apm_packages_instance_name_nn not null, -- default system locale for this package default_locale varchar(30) ); @@ -179,7 +179,7 @@ alter table acs_objects add constraint acs_objects_package_id_fk foreign key (package_id) references apm_packages(package_id) on delete set null; comment on table apm_packages is ' - This table maintains the list of all package instances in the system. + This table maintains the list of all package instances in the system. '; comment on column apm_packages.instance_name is ' @@ -191,27 +191,27 @@ '; ----------------------------- --- Operational Level -- +-- Operational Level -- ----------------------------- create table apm_package_versions ( version_id integer constraint apm_package_vers_id_pk primary key - constraint apm_package_vers_id_fk - references acs_objects(object_id), - package_key varchar(100) - constraint apm_package_vers_pack_key_nn not null - constraint apm_package_vers_pack_key_fk - references apm_package_types(package_key), + constraint apm_package_vers_id_fk + references acs_objects(object_id), + package_key varchar(100) + constraint apm_package_vers_pack_key_nn not null + constraint apm_package_vers_pack_key_fk + references apm_package_types(package_key), version_name varchar(100) constraint apm_package_vers_ver_name_nn not null, version_uri varchar(1500) constraint apm_package_vers_ver_uri_nn not null constraint apm_package_vers_ver_uri_un unique, - summary varchar(3000), + summary varchar(3000), description_format varchar(100) - constraint apm_package_vers_desc_for_ck - check (description_format in ('text/html', 'text/plain')), + constraint apm_package_vers_desc_for_ck + check (description_format in ('text/html', 'text/plain')), description text, release_date timestamptz, vendor varchar(500), @@ -232,9 +232,9 @@ -- FIXME: store the tarball in the content-repository -- distribution_tarball blob, item_id integer, - -- This constraint can't be added yet, as the cr_items table + -- This constraint can't be added yet, as the cr_items table -- has not been created yet. - -- constraint apm_package_ver_item_id_fk + -- constraint apm_package_ver_item_id_fk -- references cr_items(item_id), content_length integer, distribution_uri varchar(1500), @@ -250,30 +250,30 @@ '; comment on column apm_package_versions.version_name is $$ -A version number consists of: - 1.A major version number. - 2.Optionally, up to three minor version numbers. - 3.One of the following: +A version number consists of: + 1.A major version number. + 2.Optionally, up to three minor version numbers. + 3.One of the following: The letter d, indicating a development-only version. The letter a, indicating an alpha release. - The letter b, indicating a beta release. + The letter b, indicating a beta release. No letter at all, indicating a final release. -In addition, the letters d, a, and b may be followed by another integer, indicating a version within the release. -For those who like regular expressions: +In addition, the letters d, a, and b may be followed by another integer, indicating a version within the release. +For those who like regular expressions: version_number := integer ('.' integer){0,3} (('d'|'a'|'b') integer?)? -So the following is a valid progression for version numbers: +So the following is a valid progression for version numbers: 0.9d, 0.9d1, 0.9a1, 0.9b1, 0.9b2, 0.9, 1.0, 1.0.1, 1.1b1, 1.1 $$; comment on column apm_package_versions.version_uri is ' This column should uniquely identify a package version. This URI should in practice be a URL at which this specific -version can be downloaded. +version can be downloaded. '; comment on column apm_package_versions.summary is ' -Type a brief, one-sentence-or-less summary of the functionality of -your package. The summary should begin with a capital letter -and end with a period. +Type a brief, one-sentence-or-less summary of the functionality of +your package. The summary should begin with a capital letter +and end with a period. XXX (bquinn): Move to Content Repository? '; @@ -282,7 +282,7 @@ '; comment on column apm_package_versions.description is $$ -Type a one-paragraph description of your package. This is probably analogous +Type a one-paragraph description of your package. This is probably analogous to the first paragraph in your package's documentation. This is used to describe the system to users considering installing it. $$; @@ -295,7 +295,7 @@ $$; comment on column apm_package_versions.vendor is ' -If the package is being released by a company or some kind of organization, +If the package is being released by a company or some kind of organization, its name should go here. '; @@ -367,8 +367,8 @@ -- TODO: Migrate this to use acs_attributes instead? create table apm_package_version_attr ( version_id integer - constraint apm_package_vers_attr_vid_fk - references apm_package_versions(version_id) + constraint apm_package_vers_attr_vid_fk + references apm_package_versions(version_id) on delete cascade constraint apm_package_vers_attr_vid_nn not null, @@ -645,8 +645,8 @@ '; create table apm_package_callbacks ( - version_id integer - constraint apm_package_callbacks_vid_fk + version_id integer + constraint apm_package_callbacks_vid_fk references apm_package_versions(version_id) on delete cascade, type varchar(40), @@ -657,7 +657,7 @@ comment on table apm_package_callbacks is ' This table holds names of Tcl procedures to invoke at the time (before or after) the package is - installed, instantiated, or mounted. + installed, instantiated, or mounted. '; comment on column apm_package_callbacks.proc is ' @@ -684,7 +684,7 @@ v.activation_date, v.deactivation_date, coalesce(v.content_length,0) as tarball_length, distribution_uri, distribution_date - from apm_package_types t, apm_package_versions v + from apm_package_types t, apm_package_versions v where v.package_key = t.package_key; @@ -694,43 +694,43 @@ where enabled_p = 't'; create table apm_parameters ( - parameter_id integer constraint apm_parameters_parameter_id_fk - references acs_objects(object_id) - constraint apm_parameters_parameter_id_pk primary key, - package_key varchar(100) - constraint apm_parameters_package_key_nn not null - constraint apm_parameters_package_key_fk - references apm_package_types (package_key), - parameter_name varchar(100) - constraint apm_pack_params_name_nn not null, + parameter_id integer constraint apm_parameters_parameter_id_fk + references acs_objects(object_id) + constraint apm_parameters_parameter_id_pk primary key, + package_key varchar(100) + constraint apm_parameters_package_key_nn not null + constraint apm_parameters_package_key_fk + references apm_package_types (package_key), + parameter_name varchar(100) + constraint apm_pack_params_name_nn not null, description varchar(2000), - section_name varchar(200), - datatype varchar(100) not null - constraint apm_parameters_datatype_ck - check(datatype in ('number', 'string','text')), + section_name varchar(200), + datatype varchar(100) not null + constraint apm_parameters_datatype_ck + check(datatype in ('number', 'string','text')), scope varchar(10) default 'instance' constraint apm_parameters_scope_ck check (scope in ('global','instance')) constraint apm_parameters_scope_nn not null, - default_value text, - min_n_values integer default 1 not null - constraint apm_parameters_min_n_values_ck - check (min_n_values >= 0), - max_n_values integer default 1 not null - constraint apm_parameters_max_n_values_ck - check (max_n_values >= 0), - constraint apm_parameters_attr_name_un - unique (parameter_name, package_key), - constraint apm_parameters_n_values_ck - check (min_n_values <= max_n_values) + default_value text, + min_n_values integer default 1 not null + constraint apm_parameters_min_n_values_ck + check (min_n_values >= 0), + max_n_values integer default 1 not null + constraint apm_parameters_max_n_values_ck + check (max_n_values >= 0), + constraint apm_parameters_attr_name_un + unique (parameter_name, package_key), + constraint apm_parameters_n_values_ck + check (min_n_values <= max_n_values) ); create index apm_parameters_package_idx on apm_parameters (package_key); comment on table apm_parameters is ' This table stores information about parameters on packages. Every package parameter -is specific to a particular package instance and is queryable with the Tcl call +is specific to a particular package instance and is queryable with the Tcl call parameter::get. '; @@ -749,40 +749,40 @@ comment on column apm_parameters.datatype is ' Acceptable datatypes for parameters. Currently only numbers and strings. - XXX (bquinn): Integrate with acs objects metadata system. It is not - currently so integrated because of fluctuations with the general + XXX (bquinn): Integrate with acs objects metadata system. It is not + currently so integrated because of fluctuations with the general storage mechanism during development. '; comment on column apm_parameters.default_value is ' The default value that any package instance will inherit unless otherwise - specified. + specified. '; comment on column apm_parameters.min_n_values is ' The minimum number of values that this parameter can take. Zero values means that the default is always enforced (but is somewhat pointless). One value means that - it can only be set to one value. Increasing this number beyond one enables associating - a list of values with a parameter. + it can only be set to one value. Increasing this number beyond one enables associating + a list of values with a parameter. XXX (bquinn): More than one value is not supported by parameter::get call at this time. '; comment on column apm_parameters.max_n_values is ' The maximum number of values that any attribute with this datatype - can have. + can have. '; create table apm_parameter_values ( - value_id integer constraint apm_parameter_values_fk - references acs_objects(object_id) - constraint apm_parameter_values_pk primary key, - package_id integer constraint apm_parameter_values_pk_id_fk - references apm_packages (package_id) on delete cascade, - parameter_id integer constraint apm_parameter_values_pm_id_fk - references apm_parameters (parameter_id), - attr_value text, - constraint apm_parameter_values_un - unique (package_id, parameter_id) + value_id integer constraint apm_parameter_values_fk + references acs_objects(object_id) + constraint apm_parameter_values_pk primary key, + package_id integer constraint apm_parameter_values_pk_id_fk + references apm_packages (package_id) on delete cascade, + parameter_id integer constraint apm_parameter_values_pm_id_fk + references apm_parameters (parameter_id), + attr_value text, + constraint apm_parameter_values_un + unique (package_id, parameter_id) ); create index apm_par_vals_parameter_idx on apm_parameter_values (parameter_id); @@ -867,7 +867,7 @@ null, 'type_specific', 'f' - ); + ); attr_id := acs_attribute__create_attribute ( 'apm_parameter', @@ -1029,7 +1029,7 @@ -- show errors create table apm_package_dependencies ( - dependency_id integer + dependency_id integer constraint apm_package_deps_id_pk primary key, version_id integer constraint apm_package_deps_version_id_fk references apm_package_versions on delete cascade constraint apm_package_deps_version_id_nn not null, @@ -1055,9 +1055,9 @@ create table apm_applications ( application_id integer - constraint apm_applications_aplt_id_fk - references apm_packages(package_id) - constraint apm_applications_pk primary key + constraint apm_applications_aplt_id_fk + references apm_packages(package_id) + constraint apm_applications_pk primary key ); comment on table apm_applications is ' @@ -1067,13 +1067,13 @@ create table apm_services ( service_id integer - constraint apm_services_service_id_fk - references apm_packages(package_id) - constraint apm_services_service_id_pk primary key + constraint apm_services_service_id_fk + references apm_packages(package_id) + constraint apm_services_service_id_pk primary key ); comment on table apm_services is ' -This table records data on all of the services registered in OpenACS. +This table records data on all of the services registered in OpenACS. '; @@ -1085,7 +1085,7 @@ CREATE OR REPLACE FUNCTION inline_6( ) RETURNS integer AS $$ -DECLARE +DECLARE dummy integer; BEGIN -- Create a new object type for applications. @@ -1172,20 +1172,20 @@ DECLARE BEGIN PERFORM apm_package_type__create_type( - package_key, - pretty_name, - pretty_plural, - package_uri, - package_type, - initial_install_p, - singleton_p, + package_key, + pretty_name, + pretty_plural, + package_uri, + package_type, + initial_install_p, + singleton_p, implements_subsite_p, inherit_templates_p, - spec_file_path, - spec_file_mtime + spec_file_path, + spec_file_mtime ); - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -1214,19 +1214,19 @@ ) RETURNS varchar AS $$ DECLARE BEGIN - + return apm_package_type__update_type( - package_key, - pretty_name, - pretty_plural, - package_uri, - package_type, - initial_install_p, - singleton_p, + package_key, + pretty_name, + pretty_plural, + package_uri, + package_type, + initial_install_p, + singleton_p, implements_subsite_p, inherit_templates_p, - spec_file_path, - spec_file_mtime + spec_file_path, + spec_file_mtime ); END; $$ LANGUAGE plpgsql; @@ -1248,18 +1248,18 @@ DECLARE v_cascade_p boolean; BEGIN - if cascade_p is null then - v_cascade_p := 't'; - else + if cascade_p is null then + v_cascade_p := 't'; + else v_cascade_p := p_cascade_p; end if; PERFORM apm_package_type__drop_type( - package_key, - v_cascade_p + package_key, + v_cascade_p ); - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -1277,14 +1277,14 @@ register_p__package_key varchar ) RETURNS integer AS $$ DECLARE - v_register_p integer; + v_register_p integer; BEGIN - select case when count(*) = 0 then 0 else 1 end into v_register_p - from apm_package_types + select case when count(*) = 0 then 0 else 1 end into v_register_p + from apm_package_types where package_key = register_p__package_key; return v_register_p; - + END; $$ LANGUAGE plpgsql stable; @@ -1314,20 +1314,20 @@ DECLARE BEGIN PERFORM apm__register_package( - package_key, - pretty_name, - pretty_plural, - package_uri, - 'apm_application', - initial_install_p, - singleton_p, + package_key, + pretty_name, + pretty_plural, + package_uri, + 'apm_application', + initial_install_p, + singleton_p, implements_subsite_p, inherit_templates_p, - spec_file_path, - spec_file_mtime - ); + spec_file_path, + spec_file_mtime + ); - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -1349,9 +1349,9 @@ DECLARE v_cascade_p boolean; BEGIN - if p_cascade_p is null then - v_cascade_p := 'f'; - else + if p_cascade_p is null then + v_cascade_p := 'f'; + else v_cascade_p := p_cascade_p; end if; @@ -1360,7 +1360,7 @@ v_cascade_p ); - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -1390,20 +1390,20 @@ DECLARE BEGIN PERFORM apm__register_package( - package_key, - pretty_name, - pretty_plural, - package_uri, - 'apm_service', - initial_install_p, - singleton_p, + package_key, + pretty_name, + pretty_plural, + package_uri, + 'apm_service', + initial_install_p, + singleton_p, implements_subsite_p, inherit_templates_p, - spec_file_path, - spec_file_mtime - ); - - return 0; + spec_file_path, + spec_file_mtime + ); + + return 0; END; $$ LANGUAGE plpgsql; @@ -1425,18 +1425,18 @@ DECLARE v_cascade_p boolean; BEGIN - if p_cascade_p is null then - v_cascade_p := 'f'; - else - v_cascade_p := p_cascade_p; + if p_cascade_p is null then + v_cascade_p := 'f'; + else + v_cascade_p := p_cascade_p; end if; PERFORM apm__unregister_package ( - package_key, - v_cascade_p + package_key, + v_cascade_p ); - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -1468,7 +1468,7 @@ v_pkg record; BEGIN - -- Create the new parameter. + -- Create the new parameter. v_parameter_id := acs_object__new( register_parameter__parameter_id, 'apm_parameter', @@ -1480,40 +1480,40 @@ register_parameter__package_key || ' - ' || register_parameter__parameter_name, null ); - - insert into apm_parameters - (parameter_id, parameter_name, scope, description, package_key, datatype, + + insert into apm_parameters + (parameter_id, parameter_name, scope, description, package_key, datatype, default_value, section_name, min_n_values, max_n_values) values (v_parameter_id, register_parameter__parameter_name, register_parameter__scope, - register_parameter__description, register_parameter__package_key, - register_parameter__datatype, register_parameter__default_value, - register_parameter__section_name, register_parameter__min_n_values, + register_parameter__description, register_parameter__package_key, + register_parameter__datatype, register_parameter__default_value, + register_parameter__section_name, register_parameter__min_n_values, register_parameter__max_n_values); - -- Propagate parameter to new instances. + -- Propagate parameter to new instances. if register_parameter__scope = 'instance' then for v_pkg in select package_id - from apm_packages - where package_key = register_parameter__package_key + from apm_packages + where package_key = register_parameter__package_key loop v_value_id := apm_parameter_value__new( - null, - v_pkg.package_id, - v_parameter_id, - register_parameter__default_value); - end loop; + null, + v_pkg.package_id, + v_parameter_id, + register_parameter__default_value); + end loop; else v_value_id := apm_parameter_value__new( - null, - null, - v_parameter_id, - register_parameter__default_value); + null, + null, + v_parameter_id, + register_parameter__default_value); end if; - + return v_parameter_id; - + END; $$ LANGUAGE plpgsql; @@ -1570,12 +1570,12 @@ ) RETURNS varchar AS $$ DECLARE BEGIN - update apm_parameters - set parameter_name = coalesce(update_parameter__parameter_name, parameter_name), + update apm_parameters + set parameter_name = coalesce(update_parameter__parameter_name, parameter_name), default_value = coalesce(update_parameter__default_value, default_value), - datatype = coalesce(update_parameter__datatype, datatype), - description = coalesce(update_parameter__description, description), - section_name = coalesce(update_parameter__section_name, section_name), + datatype = coalesce(update_parameter__datatype, datatype), + description = coalesce(update_parameter__description, description), + section_name = coalesce(update_parameter__section_name, section_name), min_n_values = coalesce(update_parameter__min_n_values, min_n_values), max_n_values = coalesce(update_parameter__max_n_values, max_n_values) where parameter_id = update_parameter__parameter_id; @@ -1587,7 +1587,7 @@ where object_id = update_parameter__parameter_id; return parameter_id; - + END; $$ LANGUAGE plpgsql; @@ -1606,15 +1606,15 @@ parameter_p__parameter_name varchar ) RETURNS integer AS $$ DECLARE - v_parameter_p integer; + v_parameter_p integer; BEGIN - select case when count(*) = 0 then 0 else 1 end into v_parameter_p + select case when count(*) = 0 then 0 else 1 end into v_parameter_p from apm_parameters where package_key = parameter_p__package_key and parameter_name = parameter_p__parameter_name; return v_parameter_p; - + END; $$ LANGUAGE plpgsql stable; @@ -1634,13 +1634,13 @@ ) RETURNS integer AS $$ DECLARE BEGIN - delete from apm_parameter_values + delete from apm_parameter_values where parameter_id = unregister_parameter__parameter_id; - delete from apm_parameters + delete from apm_parameters where parameter_id = unregister_parameter__parameter_id; PERFORM acs_object__delete(unregister_parameter__parameter_id); - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -1658,19 +1658,19 @@ DECLARE a_parameter_id apm_parameters.parameter_id%TYPE; BEGIN - select parameter_id into a_parameter_id - from apm_parameters + select parameter_id into a_parameter_id + from apm_parameters where parameter_name = id_for_name__parameter_name and package_key = (select package_key from apm_packages where package_id = id_for_name__package_id); if NOT FOUND then - raise EXCEPTION '-20000: The specified package % AND/OR parameter % do not exist in the system', id_for_name__package_id, id_for_name__parameter_name; + raise EXCEPTION '-20000: The specified package % AND/OR parameter % do not exist in the system', id_for_name__package_id, id_for_name__parameter_name; end if; return a_parameter_id; - + END; $$ LANGUAGE plpgsql stable strict; @@ -1696,21 +1696,22 @@ if NOT FOUND then - raise EXCEPTION '-20000: The specified package % AND/OR parameter % do not exist in the system', id_for_name__package_key, id_for_name__parameter_name; + raise EXCEPTION '-20000: The specified package % AND/OR parameter % do not exist in the system', id_for_name__package_key, id_for_name__parameter_name; end if; return a_parameter_id; - + END; $$ LANGUAGE plpgsql stable strict; --- added -- -- procedure apm__get_value/2 -- +select define_function_args('apm__get_value','package_id,parameter_name'); + CREATE OR REPLACE FUNCTION apm__get_value( get_value__package_id integer, get_value__parameter_name varchar @@ -1726,15 +1727,10 @@ and parameter_id = v_parameter_id; return value; - + END; $$ LANGUAGE plpgsql stable strict; - - --- added -select define_function_args('apm__get_value','package_key,parameter_name'); - -- -- procedure apm__get_value/2 -- @@ -1753,17 +1749,17 @@ and parameter_id = v_parameter_id; return value; - + END; $$ LANGUAGE plpgsql stable strict; --- added - -- -- procedure apm__set_value/3 -- +select define_function_args('apm__set_value','package_id,parameter_name,attr_value'); + CREATE OR REPLACE FUNCTION apm__set_value( set_value__package_id integer, set_value__parameter_name varchar, @@ -1776,14 +1772,14 @@ v_parameter_id := apm__id_for_name (set_value__package_id, set_value__parameter_name); -- Determine if the value exists - select value_id into v_value_id from apm_parameter_values - where parameter_id = v_parameter_id + select value_id into v_value_id from apm_parameter_values + where parameter_id = v_parameter_id and package_id = set_value__package_id; update apm_parameter_values set attr_value = set_value__attr_value where value_id = v_value_id; - update acs_objects set last_modified = now() + update acs_objects set last_modified = now() where object_id = v_value_id; - -- exception + -- exception if NOT FOUND then v_value_id := apm_parameter_value__new( @@ -1794,7 +1790,7 @@ ); end if; - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -1817,14 +1813,14 @@ v_parameter_id := apm__id_for_name (set_value__package_key, set_value__parameter_name); -- Determine if the value exists - select value_id into v_value_id from apm_parameter_values - where parameter_id = v_parameter_id + select value_id into v_value_id from apm_parameter_values + where parameter_id = v_parameter_id and package_id is null; update apm_parameter_values set attr_value = set_value__attr_value where value_id = v_value_id; - update acs_objects set last_modified = now() + update acs_objects set last_modified = now() where object_id = v_value_id; - -- exception + -- exception if NOT FOUND then v_value_id := apm_parameter_value__new( @@ -1835,7 +1831,7 @@ ); end if; - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -1850,7 +1846,7 @@ ) RETURNS integer AS $$ BEGIN return apm__set_global_value(set_value__package_key, set_value__parameter_name, set_value__attr_value); -END; +END; $$ LANGUAGE plpgsql; @@ -1872,7 +1868,7 @@ return 't'; end if; - for dependency in + for dependency in select apd.service_uri from apm_package_versions apv, apm_package_dependencies apd where apd.version_id = apv.version_id @@ -1885,7 +1881,7 @@ return 't'; end if; end loop; - + return 'f'; END; $$ LANGUAGE plpgsql; @@ -1917,10 +1913,10 @@ ip__package_id, cur_val.parameter_id, cur_val.default_value - ); - end loop; + ); + end loop; - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -1946,21 +1942,21 @@ ) RETURNS integer AS $$ DECLARE - v_singleton_p integer; + v_singleton_p integer; v_package_type apm_package_types.package_type%TYPE; - v_num_instances integer; + v_num_instances integer; v_package_id apm_packages.package_id%TYPE; v_instance_name apm_packages.instance_name%TYPE; BEGIN v_singleton_p := apm_package__singleton_p( - new__package_key - ); + new__package_key + ); v_num_instances := apm_package__num_instances( - new__package_key - ); - + new__package_key + ); + if v_singleton_p = 1 and v_num_instances >= 1 then - select package_id into v_package_id + select package_id into v_package_id from apm_packages where package_key = new__package_key; @@ -1971,13 +1967,13 @@ new__object_type, new__creation_date, new__creation_user, - new__creation_ip, - new__context_id - ); - if new__instance_name is null or new__instance_name = '' then - v_instance_name := new__package_key || ' ' || v_package_id; + new__creation_ip, + new__context_id + ); + if new__instance_name is null or new__instance_name = '' then + v_instance_name := new__package_key || ' ' || v_package_id; else - v_instance_name := new__instance_name; + v_instance_name := new__instance_name; end if; select package_type into v_package_type @@ -1995,30 +1991,30 @@ where object_id = v_package_id; if v_package_type = 'apm_application' then - insert into apm_applications - (application_id) - values - (v_package_id); + insert into apm_applications + (application_id) + values + (v_package_id); else - insert into apm_services - (service_id) - values - (v_package_id); + insert into apm_services + (service_id) + values + (v_package_id); end if; PERFORM apm_package__initialize_parameters( - v_package_id, - new__package_key + v_package_id, + new__package_key ); return v_package_id; end if; END; $$ LANGUAGE plpgsql; - + -- added select define_function_args('apm_package__delete','package_id'); @@ -2034,9 +2030,9 @@ BEGIN -- Delete all parameters. for cur_val in select value_id from apm_parameter_values - where package_id = delete__package_id loop - PERFORM apm_parameter_value__delete(cur_val.value_id); - end loop; + where package_id = delete__package_id loop + PERFORM apm_parameter_value__delete(cur_val.value_id); + end loop; -- Delete the folders for v_folder_row in select @@ -2052,14 +2048,14 @@ delete from apm_packages where package_id = delete__package_id; -- Delete the site nodes for the objects. for cur_val in select node_id from site_nodes - where object_id = delete__package_id loop - PERFORM site_node__delete(cur_val.node_id); + where object_id = delete__package_id loop + PERFORM site_node__delete(cur_val.node_id); end loop; -- Delete the object. PERFORM acs_object__delete ( delete__package_id - ); + ); return 0; END; @@ -2080,11 +2076,11 @@ v_initial_install_p integer; BEGIN select 1 into v_initial_install_p - from apm_package_types - where package_key = initial_install_p__package_key + from apm_package_types + where package_key = initial_install_p__package_key and initial_install_p = 't'; - - if NOT FOUND then + + if NOT FOUND then return 0; else return v_initial_install_p; @@ -2107,8 +2103,8 @@ v_singleton_p integer; BEGIN select count(*) into v_singleton_p - from apm_package_types - where package_key = singleton_p__package_key + from apm_package_types + where package_key = singleton_p__package_key and singleton_p = 't'; return v_singleton_p; @@ -2130,8 +2126,8 @@ v_num_instances integer; BEGIN select count(*) into v_num_instances - from apm_packages - where package_key = num_instances__package_key; + from apm_packages + where package_key = num_instances__package_key; return v_num_instances; @@ -2176,13 +2172,13 @@ v_version_id apm_package_versions.version_id%TYPE; v_max_version varchar; BEGIN - select max(apm_package_version__sortable_version_name(v.version_name)) into v_max_version + select max(apm_package_version__sortable_version_name(v.version_name)) into v_max_version from apm_package_version_info v where v.package_key = highest_version__package_key; - select version_id into v_version_id from apm_package_version_info i - where apm_package_version__sortable_version_name(version_name) = v_max_version and i.package_key = highest_version__package_key; + select version_id into v_version_id from apm_package_version_info i + where apm_package_version__sortable_version_name(version_name) = v_max_version and i.package_key = highest_version__package_key; - if NOT FOUND then + if NOT FOUND then return 0; else return v_version_id; @@ -2216,7 +2212,7 @@ END; $$ LANGUAGE plpgsql stable strict; --- create or replace package body apm_package_version +-- create or replace package body apm_package_version -- added @@ -2246,15 +2242,15 @@ BEGIN if apm_pkg_ver__version_id is null then select nextval('t_acs_object_id_seq') - into v_version_id - from dual; + into v_version_id + from dual; else v_version_id := apm_pkg_ver__version_id; end if; v_version_id := acs_object__new( - v_version_id, - 'apm_package_version', + v_version_id, + 'apm_package_version', now(), null, null, @@ -2268,14 +2264,14 @@ (version_id, package_key, version_name, version_uri, summary, description_format, description, release_date, vendor, vendor_uri, auto_mount, installed_p, data_model_loaded_p) values - (v_version_id, apm_pkg_ver__package_key, apm_pkg_ver__version_name, - apm_pkg_ver__version_uri, apm_pkg_ver__summary, + (v_version_id, apm_pkg_ver__package_key, apm_pkg_ver__version_name, + apm_pkg_ver__version_uri, apm_pkg_ver__summary, apm_pkg_ver__description_format, apm_pkg_ver__description, apm_pkg_ver__release_date, apm_pkg_ver__vendor, apm_pkg_ver__vendor_uri, apm_pkg_ver__auto_mount, apm_pkg_ver__installed_p, apm_pkg_ver__data_model_loaded_p); - return v_version_id; - + return v_version_id; + END; $$ LANGUAGE plpgsql; @@ -2294,18 +2290,18 @@ ) RETURNS integer AS $$ DECLARE BEGIN - delete from apm_package_owners - where version_id = delete__version_id; + delete from apm_package_owners + where version_id = delete__version_id; delete from apm_package_dependencies where version_id = delete__version_id; - delete from apm_package_versions - where version_id = delete__version_id; + delete from apm_package_versions + where version_id = delete__version_id; PERFORM acs_object__delete(delete__version_id); - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -2325,9 +2321,9 @@ DECLARE BEGIN update apm_package_versions set enabled_p = 't' - where version_id = enable__version_id; + where version_id = enable__version_id; - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -2346,11 +2342,11 @@ ) RETURNS integer AS $$ DECLARE BEGIN - update apm_package_versions + update apm_package_versions set enabled_p = 'f' - where version_id = disable__version_id; + where version_id = disable__version_id; - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -2373,51 +2369,51 @@ ) RETURNS integer AS $$ DECLARE - v_version_id integer; + v_version_id integer; BEGIN - v_version_id := acs_object__new( - copy__new_version_id, - 'apm_package_version', + v_version_id := acs_object__new( + copy__new_version_id, + 'apm_package_version', now(), null, null, null - ); + ); - insert into apm_package_versions(version_id, package_key, version_name, - version_uri, summary, description_format, description, - release_date, vendor, vendor_uri, auto_mount) - select v_version_id, package_key, copy__new_version_name, - copy__new_version_uri, summary, description_format, description, - release_date, vendor, vendor_uri, auto_mount - from apm_package_versions - where version_id = copy__version_id; - + insert into apm_package_versions(version_id, package_key, version_name, + version_uri, summary, description_format, description, + release_date, vendor, vendor_uri, auto_mount) + select v_version_id, package_key, copy__new_version_name, + copy__new_version_uri, summary, description_format, description, + release_date, vendor, vendor_uri, auto_mount + from apm_package_versions + where version_id = copy__version_id; + update acs_objects set title = (select v.package_key || ', Version ' || v.version_name from apm_package_versions v where v.version_id = copy__version_id) where object_id = copy__version_id; - insert into apm_package_dependencies(dependency_id, version_id, dependency_type, service_uri, service_version) - select nextval('t_acs_object_id_seq'), v_version_id, dependency_type, service_uri, service_version - from apm_package_dependencies - where version_id = copy__version_id; - + insert into apm_package_dependencies(dependency_id, version_id, dependency_type, service_uri, service_version) + select nextval('t_acs_object_id_seq'), v_version_id, dependency_type, service_uri, service_version + from apm_package_dependencies + where version_id = copy__version_id; + insert into apm_package_callbacks (version_id, type, proc) select v_version_id, type, proc from apm_package_callbacks where version_id = copy__version_id; - + if copy__copy_owners_p then insert into apm_package_owners(version_id, owner_uri, owner_name, sort_key) select v_version_id, owner_uri, owner_name, sort_key from apm_package_owners where version_id = copy__version_id; end if; - - return v_version_id; - + + return v_version_id; + END; $$ LANGUAGE plpgsql; @@ -2449,7 +2445,7 @@ ) RETURNS integer AS $$ DECLARE v_version_id apm_package_versions.version_id%TYPE; - version_unchanged_p integer; + version_unchanged_p integer; BEGIN -- Determine if version has changed. select case when count(*) = 0 then 0 else 1 end into version_unchanged_p @@ -2458,31 +2454,31 @@ and version_name = edit__version_name; if version_unchanged_p <> 1 then v_version_id := apm_package_version__copy( - edit__version_id, - edit__new_version_id, - edit__version_name, - edit__version_uri, + edit__version_id, + edit__new_version_id, + edit__version_name, + edit__version_uri, 'f' - ); - else - v_version_id := edit__version_id; + ); + else + v_version_id := edit__version_id; end if; - - update apm_package_versions - set version_uri = edit__version_uri, - summary = edit__summary, - description_format = edit__description_format, - description = edit__description, - release_date = date_trunc('days',now()), - vendor = edit__vendor, - vendor_uri = edit__vendor_uri, + + update apm_package_versions + set version_uri = edit__version_uri, + summary = edit__summary, + description_format = edit__description_format, + description = edit__description, + release_date = date_trunc('days',now()), + vendor = edit__vendor, + vendor_uri = edit__vendor_uri, auto_mount = edit__auto_mount, - installed_p = edit__installed_p, - data_model_loaded_p = edit__data_model_loaded_p - where version_id = v_version_id; + installed_p = edit__installed_p, + data_model_loaded_p = edit__data_model_loaded_p + where version_id = v_version_id; - return v_version_id; - + return v_version_id; + END; $$ LANGUAGE plpgsql; @@ -2510,15 +2506,15 @@ else v_dep_id := add_interface__interface_id; end if; - + insert into apm_package_dependencies (dependency_id, version_id, dependency_type, service_uri, service_version) values (v_dep_id, add_interface__version_id, 'provides', add_interface__interface_uri, - add_interface__interface_version); + add_interface__interface_version); return v_dep_id; - + END; $$ LANGUAGE plpgsql; @@ -2536,10 +2532,10 @@ ) RETURNS integer AS $$ DECLARE BEGIN - delete from apm_package_dependencies + delete from apm_package_dependencies where dependency_id = remove_interface__interface_id; - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -2562,11 +2558,11 @@ v_dep_id apm_package_dependencies.dependency_id%TYPE; BEGIN select dependency_id into v_dep_id from apm_package_dependencies - where service_uri = remove_interface__interface_uri + where service_uri = remove_interface__interface_uri and interface_version = remove_interface__interface_version; PERFORM apm_package_version__remove_interface(v_dep_id); - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -2596,15 +2592,15 @@ else v_dep_id := add_dependency__dependency_id; end if; - + insert into apm_package_dependencies (dependency_id, version_id, dependency_type, service_uri, service_version) values (v_dep_id, add_dependency__version_id, add_dependency__dependency_type, add_dependency__dependency_uri, add_dependency__dependency_version); return v_dep_id; - + END; $$ LANGUAGE plpgsql; @@ -2622,10 +2618,10 @@ ) RETURNS integer AS $$ DECLARE BEGIN - delete from apm_package_dependencies + delete from apm_package_dependencies where dependency_id = remove_dependency__dependency_id; - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -2647,12 +2643,12 @@ DECLARE v_dep_id apm_package_dependencies.dependency_id%TYPE; BEGIN - select dependency_id into v_dep_id from apm_package_dependencies - where service_uri = remove_dependency__dependency_uri + select dependency_id into v_dep_id from apm_package_dependencies + where service_uri = remove_dependency__dependency_uri and service_version = remove_dependency__dependency_version; PERFORM apm_package_version__remove_dependency(v_dep_id); - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -2670,74 +2666,74 @@ version_name varchar ) RETURNS varchar AS $$ DECLARE - a_fields integer; - a_start integer; - a_end integer; - a_order varchar(1000) default ''; - a_char char(1); - a_seen_letter boolean default 'f'; + a_fields integer; + a_start integer; + a_end integer; + a_order varchar(1000) default ''; + a_char char(1); + a_seen_letter boolean default 'f'; BEGIN a_fields := 0; - a_start := 1; - loop - a_end := a_start; - - -- keep incrementing a_end until we run into a non-number - while substr(version_name, a_end, 1) >= '0' and substr(version_name, a_end, 1) <= '9' loop - a_end := a_end + 1; - end loop; - if a_end = a_start then - return -1; - -- raise_application_error(-20000, 'Expected number at position ' || a_start); - end if; - if a_end - a_start > 4 then - return -1; - -- raise_application_error(-20000, 'Numbers within versions can only be up to 4 digits long'); - end if; - - -- zero-pad and append the number - a_order := a_order || substr('0000', 1, 4 - (a_end - a_start)) || - substr(version_name, a_start, a_end - a_start) || '.'; - a_fields := a_fields + 1; - if a_end > length(version_name) then - -- end of string - we're outta here - if a_seen_letter = 'f' then - -- append the "final" suffix if there haven't been any letters - -- so far (i.e., not development/alpha/beta) - a_order := a_order || repeat('0000.',7 - a_fields) || ' 3F.'; - end if; - return a_order; - end if; - - -- what's the next character? if a period, just skip it - a_char := substr(version_name, a_end, 1); - if a_char = '.' then - else - -- if the next character was a letter, append the appropriate characters - if a_char = 'd' then - a_order := a_order || repeat('0000.',7 - a_fields) || ' 0D.'; - else if a_char = 'a' then - a_order := a_order || repeat('0000.',7 - a_fields) || ' 1A.'; - else if a_char = 'b' then - a_order := a_order || repeat('0000.',7 - a_fields) || ' 2B.'; - end if; end if; end if; - - -- can't have something like 3.3a1b2 - just one letter allowed! - if a_seen_letter = 't' then - return -1; - -- raise_application_error(-20000, 'Not allowed to have two letters in version name ''' - -- || version_name || ''''); - end if; - a_seen_letter := 't'; - - -- end of string - we're done! - if a_end = length(version_name) then - return a_order; - end if; - end if; - a_start := a_end + 1; - end loop; - + a_start := 1; + loop + a_end := a_start; + + -- keep incrementing a_end until we run into a non-number + while substr(version_name, a_end, 1) >= '0' and substr(version_name, a_end, 1) <= '9' loop + a_end := a_end + 1; + end loop; + if a_end = a_start then + return -1; + -- raise_application_error(-20000, 'Expected number at position ' || a_start); + end if; + if a_end - a_start > 4 then + return -1; + -- raise_application_error(-20000, 'Numbers within versions can only be up to 4 digits long'); + end if; + + -- zero-pad and append the number + a_order := a_order || substr('0000', 1, 4 - (a_end - a_start)) || + substr(version_name, a_start, a_end - a_start) || '.'; + a_fields := a_fields + 1; + if a_end > length(version_name) then + -- end of string - we're outta here + if a_seen_letter = 'f' then + -- append the "final" suffix if there haven't been any letters + -- so far (i.e., not development/alpha/beta) + a_order := a_order || repeat('0000.',7 - a_fields) || ' 3F.'; + end if; + return a_order; + end if; + + -- what's the next character? if a period, just skip it + a_char := substr(version_name, a_end, 1); + if a_char = '.' then + else + -- if the next character was a letter, append the appropriate characters + if a_char = 'd' then + a_order := a_order || repeat('0000.',7 - a_fields) || ' 0D.'; + else if a_char = 'a' then + a_order := a_order || repeat('0000.',7 - a_fields) || ' 1A.'; + else if a_char = 'b' then + a_order := a_order || repeat('0000.',7 - a_fields) || ' 2B.'; + end if; end if; end if; + + -- can't have something like 3.3a1b2 - just one letter allowed! + if a_seen_letter = 't' then + return -1; + -- raise_application_error(-20000, 'Not allowed to have two letters in version name ''' + -- || version_name || ''''); + end if; + a_seen_letter := 't'; + + -- end of string - we're done! + if a_end = length(version_name) then + return a_order; + end if; + end if; + a_start := a_end + 1; + end loop; + END; $$ LANGUAGE plpgsql immutable; @@ -2755,18 +2751,18 @@ version_name_two varchar ) RETURNS integer AS $$ DECLARE - a_order_a varchar(250); - a_order_b varchar(250); + a_order_a varchar(250); + a_order_b varchar(250); BEGIN - a_order_a := apm_package_version__sortable_version_name(version_name_one); - a_order_b := apm_package_version__sortable_version_name(version_name_two); - if a_order_a < a_order_b then - return -1; - else if a_order_a > a_order_b then - return 1; - end if; end if; + a_order_a := apm_package_version__sortable_version_name(version_name_one); + a_order_b := apm_package_version__sortable_version_name(version_name_two); + if a_order_a < a_order_b then + return -1; + else if a_order_a > a_order_b then + return 1; + end if; end if; - return 0; + return 0; END; $$ LANGUAGE plpgsql immutable; @@ -2785,44 +2781,44 @@ upgrade_p__final_version_name varchar ) RETURNS integer AS $$ DECLARE - v_pos1 integer; - v_pos2 integer; + v_pos1 integer; + v_pos2 integer; v_tmp varchar(1500); v_path varchar(1500); v_version_from apm_package_versions.version_name%TYPE; v_version_to apm_package_versions.version_name%TYPE; BEGIN - -- Set v_path to the tail of the path (the file name). - v_path := substr(upgrade_p__path, instr(upgrade_p__path, '/', -1) + 1); + -- Set v_path to the tail of the path (the file name). + v_path := substr(upgrade_p__path, instr(upgrade_p__path, '/', -1) + 1); - -- Remove the extension, if it is .sql. - v_pos1 := position('.sql' in v_path); - if v_pos1 > 0 then - v_path := substr(v_path, 1, v_pos1 - 1); - end if; + -- Remove the extension, if it is .sql. + v_pos1 := position('.sql' in v_path); + if v_pos1 > 0 then + v_path := substr(v_path, 1, v_pos1 - 1); + end if; - -- Figure out the from/to version numbers for the individual file. - v_pos1 := instr(v_path, '-', -1, 2); - v_pos2 := instr(v_path, '-', -1); - if v_pos1 = 0 or v_pos2 = 0 then - -- There aren't two hyphens in the file name. Bail. - return 0; - end if; + -- Figure out the from/to version numbers for the individual file. + v_pos1 := instr(v_path, '-', -1, 2); + v_pos2 := instr(v_path, '-', -1); + if v_pos1 = 0 or v_pos2 = 0 then + -- There aren't two hyphens in the file name. Bail. + return 0; + end if; - v_version_from := substr(v_path, v_pos1 + 1, v_pos2 - v_pos1 - 1); - v_version_to := substr(v_path, v_pos2 + 1); + v_version_from := substr(v_path, v_pos1 + 1, v_pos2 - v_pos1 - 1); + v_version_to := substr(v_path, v_pos2 + 1); - if apm_package_version__version_name_greater(upgrade_p__initial_version_name, v_version_from) <= 0 and - apm_package_version__version_name_greater(upgrade_p__final_version_name, v_version_to) >= 0 then - return 1; - end if; + if apm_package_version__version_name_greater(upgrade_p__initial_version_name, v_version_from) <= 0 and + apm_package_version__version_name_greater(upgrade_p__final_version_name, v_version_to) >= 0 then + return 1; + end if; - return 0; + return 0; -- exception when others then - -- Invalid version number. - -- return 0; - + -- Invalid version number. + -- return 0; + END; $$ LANGUAGE plpgsql immutable; @@ -2842,16 +2838,16 @@ DECLARE BEGIN update apm_package_versions - set enabled_p = 'f', - installed_p = 'f' - where package_key = (select package_key from apm_package_versions - where version_id = upgrade__version_id); + set enabled_p = 'f', + installed_p = 'f' + where package_key = (select package_key from apm_package_versions + where version_id = upgrade__version_id); update apm_package_versions - set enabled_p = 't', - installed_p = 't' - where version_id = upgrade__version_id; - - return 0; + set enabled_p = 't', + installed_p = 't' + where version_id = upgrade__version_id; + + return 0; END; $$ LANGUAGE plpgsql; @@ -2891,11 +2887,11 @@ implements_subsite_p, inherit_templates_p) values (create_type__package_key, create_type__pretty_name, create_type__pretty_plural, - create_type__package_uri, create_type__package_type, create_type__spec_file_path, + create_type__package_uri, create_type__package_type, create_type__spec_file_path, create_type__spec_file_mtime, create_type__initial_install_p, create_type__singleton_p, create_type__implements_subsite_p, create_type__inherit_templates_p); - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -2926,20 +2922,20 @@ DECLARE BEGIN UPDATE apm_package_types SET - pretty_name = coalesce(update_type__pretty_name, pretty_name), - pretty_plural = coalesce(update_type__pretty_plural, pretty_plural), - package_uri = coalesce(update_type__package_uri, package_uri), - package_type = coalesce(update_type__package_type, package_type), - spec_file_path = coalesce(update_type__spec_file_path, spec_file_path), - spec_file_mtime = coalesce(update_type__spec_file_mtime, spec_file_mtime), - singleton_p = coalesce(update_type__singleton_p, singleton_p), - initial_install_p = coalesce(update_type__initial_install_p, initial_install_p), - implements_subsite_p = coalesce(update_type__implements_subsite_p, implements_subsite_p), - inherit_templates_p = coalesce(update_type__inherit_templates_p, inherit_templates_p) + pretty_name = coalesce(update_type__pretty_name, pretty_name), + pretty_plural = coalesce(update_type__pretty_plural, pretty_plural), + package_uri = coalesce(update_type__package_uri, package_uri), + package_type = coalesce(update_type__package_type, package_type), + spec_file_path = coalesce(update_type__spec_file_path, spec_file_path), + spec_file_mtime = coalesce(update_type__spec_file_mtime, spec_file_mtime), + singleton_p = coalesce(update_type__singleton_p, singleton_p), + initial_install_p = coalesce(update_type__initial_install_p, initial_install_p), + implements_subsite_p = coalesce(update_type__implements_subsite_p, implements_subsite_p), + inherit_templates_p = coalesce(update_type__inherit_templates_p, inherit_templates_p) where package_key = update_type__package_key; return update_type__package_key; - + END; $$ LANGUAGE plpgsql; @@ -2959,35 +2955,35 @@ ) RETURNS integer AS $$ DECLARE - cur_val record; + cur_val record; BEGIN if drop_type__cascade_p = 't' then for cur_val in select package_id from apm_packages where package_key = drop_type__package_key loop PERFORM apm_package__delete( - cur_val.package_id - ); + cur_val.package_id + ); end loop; - -- Unregister all parameters. + -- Unregister all parameters. for cur_val in select parameter_id from apm_parameters where package_key = drop_type__package_key - loop - PERFORM apm__unregister_parameter(cur_val.parameter_id); - end loop; - + loop + PERFORM apm__unregister_parameter(cur_val.parameter_id); + end loop; + -- Unregister all versions - for cur_val in select version_id from apm_package_versions + for cur_val in select version_id from apm_package_versions where package_key = drop_type__package_key - loop - PERFORM apm_package_version__delete(cur_val.version_id); + loop + PERFORM apm_package_version__delete(cur_val.version_id); end loop; end if; delete from apm_package_types where package_key = drop_type__package_key; - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -3005,14 +3001,14 @@ num_parameters__package_key varchar ) RETURNS integer AS $$ DECLARE - v_count integer; + v_count integer; BEGIN select count(*) into v_count from apm_parameters where package_key = num_parameters__package_key; return v_count; - + END; $$ LANGUAGE plpgsql stable; @@ -3083,11 +3079,11 @@ ) RETURNS integer AS $$ DECLARE BEGIN - delete from apm_parameter_values + delete from apm_parameter_values where value_id = delete__value_id; PERFORM acs_object__delete(delete__value_id); - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -3113,7 +3109,7 @@ ) RETURNS integer AS $$ DECLARE - v_application_id integer; + v_application_id integer; BEGIN v_application_id := apm_package__new ( application_id, @@ -3127,7 +3123,7 @@ ); return v_application_id; - + END; $$ LANGUAGE plpgsql; @@ -3152,7 +3148,7 @@ delete__application_id ); - return 0; + return 0; END; $$ LANGUAGE plpgsql; @@ -3182,7 +3178,7 @@ ) RETURNS integer AS $$ DECLARE - v_service_id integer; + v_service_id integer; BEGIN v_service_id := apm_package__new ( service_id, @@ -3196,7 +3192,7 @@ ); return v_service_id; - + END; $$ LANGUAGE plpgsql; @@ -3218,10 +3214,9 @@ delete from apm_services where service_id = delete__service_id; PERFORM apm_package__delete( - delete__service_id + delete__service_id ); - return 0; + return 0; END; $$ LANGUAGE plpgsql; - 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.13.2.4 -r1.13.2.5 --- openacs-4/packages/acs-kernel/sql/postgresql/utilities-create.sql 23 Feb 2022 18:24:53 -0000 1.13.2.4 +++ openacs-4/packages/acs-kernel/sql/postgresql/utilities-create.sql 20 Aug 2024 13:38:16 -0000 1.13.2.5 @@ -339,13 +339,13 @@ -- select define_function_args('util__get_primary_keys','table_name'); -CREATE OR REPLACE FUNCTION util__get_primary_keys(text) +CREATE OR REPLACE FUNCTION util__get_primary_keys(table_name 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 = $1::regclass + WHERE i.indrelid = table_name::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.10.1b6-5.10.1b7.sql'. Fisheye: No comparison available. Pass `N' to diff?