Index: openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.1.1d1-5.1.1d2.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.1.1d1-5.1.1d2.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-kernel/sql/postgresql/upgrade/upgrade-5.1.1d1-5.1.1d2.sql 1 Jul 2004 20:18:06 -0000 1.1.2.3 @@ -0,0 +1,57 @@ + +create or replace function apm__register_parameter (integer,varchar,varchar,varchar,varchar,varchar,varchar,integer,integer) +returns integer as ' +declare + register_parameter__parameter_id alias for $1; -- default null + register_parameter__package_key alias for $2; + register_parameter__parameter_name alias for $3; + register_parameter__description alias for $4; -- default null + register_parameter__datatype alias for $5; -- default ''string'' + register_parameter__default_value alias for $6; -- default null + register_parameter__section_name alias for $7; -- default null + register_parameter__min_n_values alias for $8; -- default 1 + register_parameter__max_n_values alias for $9; -- default 1 + + v_parameter_id apm_parameters.parameter_id%TYPE; + v_value_id apm_parameter_values.value_id%TYPE; + v_pkg record; + +begin + -- Create the new parameter. + v_parameter_id := acs_object__new( + register_parameter__parameter_id, + ''apm_parameter'', + now(), + null, + null, + null + ); + + insert into apm_parameters + (parameter_id, parameter_name, description, package_key, datatype, + default_value, section_name, min_n_values, max_n_values) + values + (v_parameter_id, register_parameter__parameter_name, + 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. + for v_pkg in + select package_id + 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; + + return v_parameter_id; + +end;' language 'plpgsql'; +