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';
+
