Re: Only one version can be installed when using extension_control_path - Mailing list pgsql-hackers

From Pierrick
Subject Re: Only one version can be installed when using extension_control_path
Date
Msg-id 4e24fd4c-61e9-41e2-b3ac-c2160502a16b@dalibo.com
Whole thread Raw
In response to Re: Only one version can be installed when using extension_control_path  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: Only one version can be installed when using extension_control_path
List pgsql-hackers
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)




pgsql-hackers by date:

Previous
From: Álvaro Herrera
Date:
Subject: Re: Foreign key isolation tests
Next
From: Pierrick
Date:
Subject: Re: Only one version can be installed when using extension_control_path