Re: Only one version can be installed when using extension_control_path

Pierrick <pierrick.chovelon@dalibo.com>

From: Pierrick <pierrick.chovelon@dalibo.com>
To: Matheus Alcantara <matheusssilv97@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, "David G. Johnston" <david.g.johnston@gmail.com>
Cc: Peter Eisentraut <peter@eisentraut.org>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2025-09-10T07:48:40Z
Lists: pgsql-hackers
On 09/09/2025 16:18, Matheus Alcantara wrote:
> On Tue Sep 9, 2025 at 4:53 AM -03, Pierrick wrote:
>> On 08/09/2025 17:35, Tom Lane wrote:
>>> "David G. Johnston"<david.g.johnston@gmail.com> writes:
>>>> On Monday, September 8, 2025, Matheus Alcantara<matheusssilv97@gmail.com>
>>>> wrote:
>>>>> On this step it will search the .control
>>>>> file on paths at extension_control_path in order and it will use the
>>>>> first one that it finds and based on the .control file found it will
>>>>> install the extension using the version specified on the command.
>>>> Then pg_available_extensions seems broken - it lists extensions as
>>>> available that are not accessible to the user due to this policy.  Maybe we
>>>> need to add something indicating that certain rows are hidden behind the
>>>> present path setting which would need to be changed if one wishes to
>>>> install them.  Also seems like the extension location should be part of the
>>>> output too.
>> I agree. If an extension is the list, I expect to be able to install it.
>>
> I definitely agree that pg_available_extensions is wrong but I think
> that a fix for this should be to don't allow extensions with the same
> name on different paths.
>
> The current behavior is to stop the searching when the first extension
> name matches with the CREATE EXTENSION input, this works in the same way
> when for example we have the same command on multiple paths on PATH.

If so, then only one line should be printed in pg_available_extensions.
This could be the fix :).

> Changing the behavior to search on all paths to find the extension that
> matches the name and possibly the version seems complicated and
> confusing to me TBH.
>
> To have multiple versions of the same extension, the .sql files for all
> versions should be put on the same path all together as already is
> today. Enabling adding the same extension on multiple paths doesn't seem
> right to me IMHO.
>
> Any thoughts? I'm missing something here?

Well, I don't really have a strong argument, but adding this new setting 
allows
people to work with extensions differently. Having different folders for 
different
versions of the same extension might be a new approach.

>
>> Adding extension location is a good idea.
>>
> This looks like a good idea to me too.
>
> Thanks for all the comments!
You are welcome :)
>
> --
> Matheus Alcantara

Commits

  1. Hide duplicate names from extension views