On 11/09/2025 16:11, Peter Eisentraut wrote:
>
> Here is a patch for that. Please test it against your setup.
Thanks a lot. Here is a test, and IMHO, it looks good.
-- version 1 of monextension is in /tmp/extensions/share/extension
postgres=# show extension_control_path ;
extension_control_path
------------------------------------------------------
$system:/tmp/extensions/share:/tmp/extensions2/share
(1 ligne)
postgres=# select * from pg_available_extensions where name =
'monextension';
name | default_version | installed_version | comment
--------------+-----------------+-------------------+---------------
monextension | 1.0 | | Mon extension
(1 ligne)
-- switching order
postgres=# alter system set extension_control_path =
'$system:/tmp/extensions2/share:/tmp/extensions/share';
ALTER SYSTEM
postgres=# select pg_reload_conf();
pg_reload_conf
----------------
t
(1 ligne)
postgres=# show extension_control_path ;
extension_control_path
------------------------------------------------------
$system:/tmp/extensions2/share:/tmp/extensions/share
(1 ligne)
-- version 2 of monextension is in /tmp/extensions2/share/extension
postgres=# select * from pg_available_extensions where name =
'monextension';
name | default_version | installed_version | comment
--------------+-----------------+-------------------+---------------
monextension | 2.0 | | Mon extension
(1 ligne)
-- make a mistake in first folder
postgres=# alter system set extension_control_path =
'$system:/tmp/extension_old/share:/tmp/extensions/share';
ALTER SYSTEM
postgres=# select pg_reload_conf();
pg_reload_conf
----------------
t
(1 ligne)
-- still version 2.0
postgres=# select * from pg_available_extensions where name =
'monextension';
name | default_version | installed_version | comment
--------------+-----------------+-------------------+---------------
monextension | 1.0 | | Mon extension
(1 ligne)