Wiki / Configuration Parameters
extension_control_path
A path to search for extensions, specifically extension control files (name.control). The remaining extension script and secondary control files are then loaded from the same directory where the primary control file was found. See Section 36.17.1 for details. The value for extension_control_path must be a list of absolute directory paths separated by colons (or semi-colons on Windows). If a list element starts with the special string $system, the compiled-in PostgreSQL extension directory is substituted for $system; this is where the extensions provided by the standard PostgreSQL distribution are installed. (Use pg_config --sharedir to find out the name of this directory.) For example: extension_control_path = '/usr/local/share/postgresql:/home/my_project/share:$system' or, in a Windows environment: extension_control_path = 'C:\tools\postgresql;H:\my_project\share;$system' Note that the specified paths elements are expected to have a subdirectory extension which will contain the .control and .sql files; the extension suffix is automatically appended to each path element. The default value for this parameter is '$system'. If the value is set to an empty string, the default '$system' is also assumed. If extensions with equal names are present in multiple directories in the configured path, only the instance found first in the path will be used. This parameter can be changed at run time by superusers and users with the appropriate SET privilege, but a setting done that way will only persist until the end of the client connection, so this method should be reserved for development purposes. The recommended way to set this parameter is in the postgresql.conf configuration file. Note that if you set this parameter to be able to load extensions from nonstandard locations, you will most likely also need to set dynamic_library_path to a correspondent location, for example, extension_control_path = '/usr/local/share/postgresql:$system' dynamic_library_path = '/usr/local/lib/postgresql:$libdir'
English manual coverage begins with PostgreSQL 7.4. Source history and runtime observations have their own recorded version boundaries.
Reading PG 18·Select a recorded version
- boot val
- $system
- category
- Client Connection Defaults / Other Defaults
- context
- superuser
- documented
- true
- enumvals
- Unknown
- extra desc
- The remaining extension script and secondary control files are then loaded from the same directory where the primary control file was found.
- lang
- en
- max val
- Unknown
- metadata version
- 18
- min val
- Unknown
- name
- extension_control_path
- short desc
- Sets the path for extension control files.
- source
- pg-settings-source-snapshot
- unit
- Unknown
- vartype
- string
Definition PG 18
A path to search for extensions, specifically extension control files (name.control). The remaining extension script and secondary control files are then loaded from the same directory where the primary control file was found. See Section 36.17.1 for details. The value for extension_control_path must be a list of absolute directory paths separated by colons (or semi-colons on Windows). If a list element starts with the special string $system, the compiled-in PostgreSQL extension directory is substituted for $system; this is where the extensions provided by the standard PostgreSQL distribution are installed. (Use pg_config --sharedir to find out the name of this directory.) For example: extension_control_path = '/usr/local/share/postgresql:/home/my_project/share:$system' or, in a Windows environment: extension_control_path = 'C:\tools\postgresql;H:\my_project\share;$system' Note that the specified paths elements are expected to have a subdirectory extension which will contain the .control and .sql files; the extension suffix is automatically appended to each path element. The default value for this parameter is '$system'. If the value is set to an empty string, the default '$system' is also assumed. If extensions with equal names are present in multiple directories in the configured path, only the instance found first in the path will be used. This parameter can be changed at run time by superusers and users with the appropriate SET privilege, but a setting done that way will only persist until the end of the client connection, so this method should be reserved for development purposes. The recommended way to set this parameter is in the postgresql.conf configuration file. Note that if you set this parameter to be able to load extensions from nonstandard locations, you will most likely also need to set dynamic_library_path to a correspondent location, for example, extension_control_path = '/usr/local/share/postgresql:$system' dynamic_library_path = '/usr/local/lib/postgresql:$libdir'
Compare versions
Source references
Full definition and evidence JSON
Definition sources
center · PostgreSQL 18 · wiki-repair-20261023:d1784c86007bf80d8a894f8107a2c96e4b3e1cb3cee38706e2129212d80fd54c
Text language: en · wiki-repair-20261023:d1784c86007bf80d8a894f8107a2c96e4b3e1cb3cee38706e2129212d80fd54c