大卫·惠勒:RFC:扩展打包与查找

大卫·惠勒:RFC:扩展打包与查找

💡 原文英文,约3000词,阅读约需11分钟。
📝

内容提要

本文提出了改进PostgreSQL扩展文件组织和搜索路径的建议,以解决用户在不修改Postgres安装的情况下添加扩展的挑战。建议包括将扩展文件集中在一个目录中,并引入新配置参数,以简化安装和查找过程,从而提高扩展管理效率,特别是在容器和macOS环境中。

🎯

关键要点

  • 提出改进PostgreSQL扩展文件组织和搜索路径的建议。

  • 用户面临的挑战是需要在不修改Postgres安装的情况下添加扩展。

  • Debian系统中,创建扩展包的用户账户缺乏向Postgres安装添加文件的权限。

  • Christoph Berg的补丁通过添加第二个查找路径解决了扩展和动态模块的问题。

  • Peter Eisentraut提出的补丁提供了更典型的搜索路径模式,但未考虑与扩展一起提供的共享模块。

  • OCI镜像是不可变的,安装持久扩展需要创建持久卷并映射到特定目录。

  • CloudNativePg社区希望消除对持久卷的需求,依赖于每个扩展的单独镜像。

  • macOS的Postgres.app支持扩展,但安装扩展会破坏Apple的签名验证。

  • 建议将扩展文件集中在一个目录中,以简化安装和查找过程。

  • 引入新的pg_config参数以返回默认安装扩展的目录。

  • 添加扩展查找路径GUC,列出Postgres将搜索的所有目录。

  • 更新CREATE EXTENSION命令以在扩展路径中查找扩展控制文件。

  • 更新PGXS的扩展安装行为以符合新的布局。

  • 提出的文件布局和扩展路径GUC解决了打包测试和OCI/Kubernetes的用例。

  • 为扩展模块预加载添加新的GUC,以便在会话中预加载共享模块。

  • 未来考虑修改CREATE EXTENSION以支持仅包含共享模块的扩展。

  • RFC不包括如何管理第三方共享库的问题。

➡️

继续阅读