public inbox for [email protected]  
help / color / mirror / Atom feed
From: Pierrick <[email protected]>
To: [email protected]
Subject: Adding clarification on extension_control_path when extension is present in multiple folders
Date: Fri, 5 Sep 2025 15:53:09 +0200
Message-ID: <[email protected]> (raw)

When playing with the new GUC extension_control_path, I found that the 
paths are evaluated one by one
(like search_path)and if an extension is present in multiple paths, only 
the on in the first path
will be considered.I think this is totally fine, but I'd like to adda 
documentation patch to explain
this (attached file).

What do you think ?

Pierrick,


Here is an example to understand that I can only create extension in 
version 2.0.

postgres=# show extension_control_path ;
extension_control_path
-----------------------------------------------------------------------------
  $system:/extensions/meilleureextension/share:/extensions/monextension/share
(1 row)

postgres=# select * from pg_available_extensions where name like '%mon%';
      name     | default_version | installed_version |    comment
--------------+-----------------+-------------------+---------------
  monextension | 2.0             |                   | Meilleure
  monextension | 1.0             |                   | Mon extension
(2 rows)
postgres=# select * from pg_available_extensions where name like '%mon%';
      name     | default_version | installed_version |    comment
--------------+-----------------+-------------------+---------------
  monextension | 2.0             |                   | Meilleure
  monextension | 1.0             |                   | Mon extension
(2 rows)
postgres=# create extension monextension version "1.0" ;
ERROR:  extension "monextension" has no installation script nor update 
path for version "1.0"
postgres=# create extension monextension ;
CREATE EXTENSION
postgres=# select * from pg_available_extensions where name like '%mon%';
      name     | default_version | installed_version |    comment
--------------+-----------------+-------------------+---------------
  monextension | 2.0             | 2.0               | Meilleure
  monextension | 1.0             | 2.0               | Mon extension
(2 rows)





Attachments:

  [text/x-patch] 0001-Add-clarification-on-extension_control_path.patch (950B, 2-0001-Add-clarification-on-extension_control_path.patch)
  download | inline diff:
From d04af9866d9eddea04b046005df3b2cdc99b28ec Mon Sep 17 00:00:00 2001
From: Pierrick Chovelon <[email protected]>
Date: Fri, 5 Sep 2025 15:36:20 +0200
Subject: [PATCH] Add clarification on extension_control_path

---
 doc/src/sgml/config.sgml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 0a4b3e55ba5..752d18dec53 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -11079,6 +11079,12 @@ extension_control_path = '/usr/local/share/postgresql:$system'
 dynamic_library_path = '/usr/local/lib/postgresql:$libdir'
 </programlisting>
        </para>
+
+	<para>
+        This variable specifies the order in which extensions are searched when created.
+        If an extension is present in multiple paths, only the first path that contains
+        extension's files will be used.
+       </para>
       </listitem>
      </varlistentry>
 
-- 
2.43.0



reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: Adding clarification on extension_control_path when extension is present in multiple folders
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox