Index: openacs-4/packages/acs-tcl/tcl/apm-install-procs-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-install-procs-oracle.xql,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-tcl/tcl/apm-install-procs-oracle.xql 5 Jan 2010 21:26:01 -0000 1.14 +++ openacs-4/packages/acs-tcl/tcl/apm-install-procs-oracle.xql 19 Jan 2010 22:32:39 -0000 1.15 @@ -259,49 +259,38 @@ - + - - select apm.register_parameter( + begin + :1 := apm.register_parameter( null, :descendent_package_key, - ap.parameter_name, - ap.description, - ap.datatype, - ap.default_value, - ap.section_name, - ap.min_n_values, - ap.max_n_values) - from apm_parameters ap - where package_key = :package_key - and not exists (select 1 - from apm_parameters ap2 - where ap2.parameter_name = ap.parameter_name - and ap2.package_key = :descendent_package_key) - - + :parameter_name, + :description, + :datatype, + :default_value, + :section_name, + :min_n_values, + :max_n_values) + end; + - + - select apm.register_parameter( + begin + :1 := apm.register_parameter( null, - :package_key, - ap.parameter_name, - ap.description, - ap.datatype, - ap.default_value, - ap.section_name, - ap.min_n_values, - ap.max_n_values) - from apm_parameters ap - where package_key = :inherited_package_key - and not exists (select 1 - from apm_parameters ap2 - where ap2.parameter_name = ap.parameter_name - and ap2.package_key = :package_key) - - + :new_package_key, + :parameter_name, + :description, + :datatype, + :default_value, + :section_name, + :min_n_values, + :max_n_values) + end; + Index: openacs-4/packages/acs-tcl/tcl/apm-install-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-install-procs-postgresql.xql,v diff -u -r1.16 -r1.17 --- openacs-4/packages/acs-tcl/tcl/apm-install-procs-postgresql.xql 5 Jan 2010 21:26:01 -0000 1.16 +++ openacs-4/packages/acs-tcl/tcl/apm-install-procs-postgresql.xql 19 Jan 2010 22:32:39 -0000 1.17 @@ -200,31 +200,19 @@ - + - select apm__register_parameter(null, :descendent_package_key, ap.parameter_name, - ap.description, ap.datatype, ap.default_value, - ap.section_name, ap.min_n_values, ap.max_n_values) - from apm_parameters ap - where package_key = :package_key - and not exists (select 1 - from apm_parameters ap2 - where ap2.parameter_name = ap.parameter_name - and ap2.package_key = :descendent_package_key) + select apm__register_parameter(null, :descendent_package_key, :parameter_name, + :description, :datatype, :default_value, + :section_name, :min_n_values, :max_n_values) - + - select apm__register_parameter(null, :package_key, ap.parameter_name, ap.description, - ap.datatype, ap.default_value, ap.section_name, - ap.min_n_values, ap.max_n_values) - from apm_parameters ap - where package_key = :inherited_package_key - and not exists (select 1 - from apm_parameters ap2 - where ap2.parameter_name = ap.parameter_name - and ap2.package_key = :package_key) + select apm__register_parameter(null, :new_package_key, :parameter_name, :description, + :datatype, :default_value, :section_name, + :min_n_values, :max_n_values) Index: openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl,v diff -u -r1.99 -r1.100 --- openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl 5 Jan 2010 21:26:01 -0000 1.99 +++ openacs-4/packages/acs-tcl/tcl/apm-install-procs.tcl 19 Jan 2010 22:32:39 -0000 1.100 @@ -975,20 +975,24 @@ return $version_id } -ad_proc apm_copy_descendent_params { package_key } { +ad_proc apm_copy_descendent_params { new_package_key } { Copy new parameters in the package to its descendents. Called when a package is upgraded. } { - foreach descendent_package_key [nsv_get apm_package_descendents $package_key] { - db_list copy_descendent_params {} + foreach descendent_package_key [nsv_get apm_package_descendents $new_package_key] { + db_foreach descendent_params {} { + db_exec_plsql copy_descendent_param {} + } } } -ad_proc apm_copy_inherited_params { package_key } { +ad_proc apm_copy_inherited_params { new_package_key } { Copy parameters from a packages ancestors. Called for an "extends" dependency. } { - foreach inherited_package_key [nsv_get apm_package_inherit_order $package_key] { - db_list copy_inherited_params {} + foreach inherited_package_key [nsv_get apm_package_inherit_order $new_package_key] { + db_foreach inherited_params {} { + db_exec_plsql copy_inherited_param {} + } } } Index: openacs-4/packages/acs-tcl/tcl/apm-install-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-install-procs.xql,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-tcl/tcl/apm-install-procs.xql 28 Aug 2003 09:41:43 -0000 1.5 +++ openacs-4/packages/acs-tcl/tcl/apm-install-procs.xql 19 Jan 2010 22:32:39 -0000 1.6 @@ -88,5 +88,29 @@ where version_id = :version_id + + + + select ap.* + from apm_parameters ap + where package_key = :new_package_key + and not exists (select 1 + from apm_parameters ap2 + where ap2.parameter_name = ap.parameter_name + and ap2.package_key = :descendent_package_key) + + + + + + select ap.* + from apm_parameters ap + where package_key = :inherited_package_key + and not exists (select 1 + from apm_parameters ap2 + where ap2.parameter_name = ap.parameter_name + and ap2.package_key = :new_package_key) + +