From: | Pierrick <pierrick(dot)chovelon(at)dalibo(dot)com> |
---|---|
To: | Peter Eisentraut <peter(at)eisentraut(dot)org> |
Cc: | "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Matheus Alcantara <matheusssilv97(at)gmail(dot)com> |
Subject: | Re: Only one version can be installed when using extension_control_path |
Date: | 2025-09-11 18:03:07 |
Message-ID: | 4e24fd4c-61e9-41e2-b3ac-c2160502a16b@dalibo.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | 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)
From | Date | Subject | |
---|---|---|---|
Next Message | Álvaro Herrera | 2025-09-11 18:05:32 | Re: Unexpected changes of CurrentResourceOwner and CurrentMemoryContext |
Previous Message | Álvaro Herrera | 2025-09-11 17:55:25 | Re: Foreign key isolation tests |