From: | Peter Eisentraut <peter(at)eisentraut(dot)org> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: extension_control_path |
Date: | 2025-03-19 06:08:40 |
Message-ID: | E1tumbY-003Dl3-2o@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
extension_control_path
The new GUC extension_control_path specifies a path to look for
extension control files. The default value is $system, which looks in
the compiled-in location, as before.
The path search uses the same code and works in the same way as
dynamic_library_path.
Some use cases of this are: (1) testing extensions during package
builds, (2) installing extensions outside security-restricted
containers like Python.app (on macOS), (3) adding extensions to
PostgreSQL running in a Kubernetes environment using operators such as
CloudNativePG without having to rebuild the base image for each new
extension.
There is also a tweak in Makefile.global so that it is possible to
install extensions using PGXS into an different directory than the
default, using 'make install prefix=/else/where'. This previously
only worked when specifying the subdirectories, like 'make install
datadir=/else/where/share pkglibdir=/else/where/lib', for purely
implementation reasons. (Of course, without the path feature,
installing elsewhere was rarely useful.)
Author: Peter Eisentraut <peter(at)eisentraut(dot)org>
Co-authored-by: Matheus Alcantara <matheusssilv97(at)gmail(dot)com>
Reviewed-by: David E. Wheeler <david(at)justatheory(dot)com>
Reviewed-by: Gabriele Bartolini <gabriele(dot)bartolini(at)enterprisedb(dot)com>
Reviewed-by: Marco Nenciarini <marco(dot)nenciarini(at)enterprisedb(dot)com>
Reviewed-by: Niccolò Fei <niccolo(dot)fei(at)enterprisedb(dot)com>
Discussion: https://www.postgresql.org/message-id/flat/E7C7BFFB-8857-48D4-A71F-88B359FADCFD(at)justatheory(dot)com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/4f7f7b0375854e2f89876473405a8f21c95012af
Modified Files
--------------
doc/src/sgml/config.sgml | 68 ++++
doc/src/sgml/extend.sgml | 19 +-
doc/src/sgml/ref/create_extension.sgml | 6 +-
src/Makefile.global.in | 19 +-
src/backend/commands/extension.c | 403 +++++++++++++--------
src/backend/utils/fmgr/dfmgr.c | 77 ++--
src/backend/utils/misc/guc_tables.c | 13 +
src/backend/utils/misc/postgresql.conf.sample | 1 +
src/include/commands/extension.h | 2 +
src/include/fmgr.h | 3 +
src/test/modules/test_extensions/Makefile | 1 +
src/test/modules/test_extensions/meson.build | 5 +
.../t/001_extension_control_path.pl | 80 ++++
13 files changed, 512 insertions(+), 185 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2025-03-19 09:45:01 | pgsql: Update a code comment |
Previous Message | Michael Paquier | 2025-03-19 04:35:12 | pgsql: psql: Allow queries terminated by semicolons while in pipeline m |