Re: glob support in extension_control_path/dynamic_library_path? - Mailing list pgsql-hackers

From Matheus Alcantara
Subject Re: glob support in extension_control_path/dynamic_library_path?
Date
Msg-id bbf9a0ee-f264-4037-8a02-09fa54a923fc@gmail.com
Whole thread
In response to glob support in extension_control_path/dynamic_library_path?  (Jakob Egger <jakob@eggerapps.at>)
Responses Re: glob support in extension_control_path/dynamic_library_path?
List pgsql-hackers
On 29/05/26 09:26, Jakob Egger wrote:
> Hello!
> 
> The extension_control_path setting allowed us to offer precompiled downloadable extensions for Postgres.app:
https://postgresapp.com/extensions/
> 
> We install extensions each into their own path, for example:
> 
> /Users/USER/Library/Application Support/Postgres/Extensions/18/http
> /Users/USER/Library/Application Support/Postgres/Extensions/18/pg_cron
> ....
> 
> This allows us to update extensions by just deleting the folder and installing the new version -- we don't need to
trackall the files belonging to an extension. If we put all separately downloaded extensions in a single directory we
wouldbe very likely to end up with orphaned files sooner or later.
 
> 
> However, this leads to a rather lengthy configuration that needs to be updated whenever an extension is installed:
> 
> extension_control_path="$system:/Users/jakob/Library/Application
Support/Postgres/Extensions/18/pg_parquet/share/postgresql:/Users/jakob/Library/Application
Support/Postgres/Extensions/18/pg_cron/share/postgresql:/Users/jakob/Library/Application
Support/Postgres/Extensions/18/http/share/postgresql:/Users/jakob/Library/Application
Support/Postgres/Extensions/18/timescaledb/share/postgresql:/Users/jakob/Library/Application
Support/Postgres/Extensions/18/plv8/share/postgresql:/Users/jakob/Library/Application
Support/Postgres/Extensions/18/pg_search/share/postgresql"
> 

Yeah, I've also faced some configurations like this when working with 
extension_control_path.

> It would be really nice if we could just use glob patterns like this:
> 
> extension_control_path="$system:/Users/jakob/Library/Application Support/Postgres/Extensions/18/*/share/postgresql"
> dynamic_library_path="$libdir:/Users/jakob/Library/Application Support/Postgres/Extensions/18/*/lib/postgresql"
> 
> This would also have the advantage of not requiring a server restart after installing an extension.
> 
> I believe this would also be useful for Docker use case mentioned in the original thread
(https://www.postgresql.org/message-id/E7C7BFFB-8857-48D4-A71F-88B359FADCFD%40justatheory.com)when multiple extensions
areused
 
> 
> I have tried implementing this patch myself, and it was pretty straightforward to implement a proof of concept.
> 
> I wonder if such an addition would be useful for other packagers?
> 

Please, share the patch so we can better evaluate.

--
Matheus Alcantara
EDB: https://www.enterprisedb.com



pgsql-hackers by date:

Previous
From: Andrei Lepikhov
Date:
Subject: Re: hashjoins vs. Bloom filters (yet again)
Next
From: Etsuro Fujita
Date:
Subject: Re: [(known) BUG] DELETE/UPDATE more than one row in partitioned foreign table