Re: Only one version can be installed when using extension_control_path
Pierrick <pierrick.chovelon@dalibo.com>
From: Pierrick <pierrick.chovelon@dalibo.com>
To: Peter Eisentraut <peter@eisentraut.org>
Cc: "pgsql-hackers@lists.postgresql.org"
<pgsql-hackers@lists.postgresql.org>,
"David G. Johnston" <david.g.johnston@gmail.com>,
Tom Lane <tgl@sss.pgh.pa.us>, Matheus Alcantara <matheusssilv97@gmail.com>
Date: 2025-09-11T18:03:07Z
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)
Commits
-
Hide duplicate names from extension views
- bf5da5d6cae9 19 (unreleased) landed
- 8309f3f86da8 18.0 landed