选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / 配置参数 / 客户端连接默认值

CONFIGURATION PARAMETER客户端连接默认值 / 其他默认值

extension_control_path

设置扩展控制文件的搜索路径。

Sets the path for extension control files.

字符串 会话(超级用户) 引入 18 现存至 20 devel 0 次默认值变更

类型
字符串string
上下文
会话(超级用户)超级用户可在会话内用 SET 修改
默认值
$system
引入版本
18
状态
现存

PostgreSQL 18 手册 官方文档 引入提交 4f7f7b0375

版本轨迹

PostgreSQL 18 新增此参数。

默认值变迁

$system 18 – 20

默认值自 PostgreSQL 18 起没有变过。带单位的取值换算成了可读形式,原始的 boot_val 与单位写在悬浮提示里。

手册说明

PostgreSQL 18 手册 · 19.11 客户端连接默认值 本站手册 官方原文

搜索扩展的路径,特别是扩展控制文件(name.control)。其余扩展脚本和辅助控制文件会从找到主控制文件的同一目录中加载。详情请参见Section 36.17.1

extension_control_path 的值必须是绝对目录路径列表,各路径以冒号分隔 (在 Windows 上使用分号)。如果某个列表元素以特殊字符串 $system 开头, 则 $system 会被替换为编译时确定的 PostgreSQL 扩展目录, 也就是标准版 PostgreSQL 所提供扩展的安装位置。 (可使用 pg_config --sharedir 查找该目录名称。)例如:

extension_control_path = '/usr/local/share/postgresql:/home/my_project/share:$system'

或者在 Windows 环境中:

extension_control_path = 'C:\tools\postgresql;H:\my_project\share;$system'

请注意,指定的每个路径元素都应当包含一个 extension 子目录,其中放置 .control.sql 文件;系统会自动为每个路径元素追加 extension 后缀。

该参数的默认值是 '$system'。如果将其设置为空字符串,也会视为默认的 '$system'

如果配置路径中的多个目录中存在同名扩展,则只会使用路径中最先找到的那个。

该参数可以由超级用户和具有适当SET权限的用户在运行时更改,但这种方式下的设置只会持续到客户端连接结束,因此这种方法应保留用于开发目的。 推荐在postgresql.conf中设置该参数。

请注意,如果你设置该参数以便从非标准位置加载扩展,那么通常还需要把dynamic_library_path设置为相应的位置。

机制详解

extension_control_path:设置扩展控制文件的搜索路径。PostgreSQL 用该路径查找扩展的主控制文件,随后从找到主文件的同一目录加载脚本与次级控制文件。

extension_control_path 属于 SUPERUSER 上下文。超级用户或获授相应 SET 权限的角色可在会话内修改,ALTER ROLE 或 ALTER DATABASE 可为未来会话建立默认值。

库发现与预加载会和已安装二进制版本、扩展控制文件、服务器或后端启动,以及模块自身 GUC 相互作用。

调优建议

按典型负载给出的取值思路,不是放之四海皆准的配方:实际取值要看数据量、并发度与硬件。

  • OLTP在线事务处理

    保持 $system 优先,只加入管理员控制且控制文件、脚本、本地库、升级与回滚共同版本化的扩展仓库。

  • OLAP分析与批处理

    只有为主库与备用库软件包一致分发经评审扩展目录时才使用独立路径,并测试 CREATE EXTENSION 与每条升级边。

  • 小规格低配实例与开发机

    保持 $system;额外控制文件根目录不会提升容量,却让扩展来源与灾难恢复更难审计。

常见问题

  • 只在一个会话中修改 extension_control_path,却认为角色默认值、数据库默认值或其他池化会话也已随之改变。
  • 指定缺失或 ABI 不兼容模块,导致连接失败或服务器无法启动。
  • 把搜索或预加载路径当作无害配置,忽略它决定服务器信任哪些本地代码。
  • 没有回滚计划及客户端或运维兼容测试,就全局修改 extension_control_path。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的快照。

  1. PostgreSQL 20 ← 19 沿用 19

    事实沿用 19

  2. PostgreSQL 18 ← 17 新增此参数

    PostgreSQL 18 起可用

逐版本快照

每个收录版本里的 7 项事实,与上一个存在的版本不同的格子带底色。版本号链到该版。

版本 默认值单位上下文类型最小值最大值枚举值
18 $system 会话(超级用户) 字符串
19 $system 会话(超级用户) 字符串
20 沿用 $system 会话(超级用户) 字符串

参考资料

同类参数

参数 类型 上下文 默认值 版本变动 最近变更
Client Connection Defaults 客户端连接默认值 3 个
其他默认值 3
dynamic_library_path 字符串 会话(超级用户) $libdir
设置动态可加载模块的搜索路径。 现存
extension_control_path 字符串 会话(超级用户) $system
设置扩展控制文件的搜索路径。 现存
gin_fuzzy_search_limit 整数 会话 0
设置 GIN 精确搜索允许返回的最大结果数。 现存