附录 F.附加提供的模块

目录

本附录和下一个附录包含有关可在 PostgreSQL 发行版的contrib目录中找到的模块的信息。这些包括移植工具,分析 Util 和插件功能,它们不是 PostgreSQL 核心系统的一部分,主要是因为它们仅针对有限的受众或过于试验性而不能成为主要源代码树的一部分。这并不排除它们的用处。

本附录介绍了在contrib中找到的扩展和其他服务器插件模块。 Appendix G涵盖 Util。

从源代码分发进行构建时,除非您构建“世界”目标(请参阅Step 2),否则不会自动构建这些组件。您可以通过运行以下命令来构建和安装所有它们:

make
make install

在已配置的源树的contrib目录中;或仅构建和安装一个选定的模块,请在该模块的子目录中执行相同的操作。许多模块都有回归测试,可以通过运行以下命令来执行:

make check

安装前或

make installcheck

一旦您运行了 PostgreSQL 服务器。

如果使用的是 PostgreSQL 的预打包版本,则通常将这些模块作为单独的子包提供,例如postgresql-contrib

许多模块提供了新的用户定义函数,运算符或类型。要使用这些模块之一,在安装代码之后,需要在数据库系统中注册新的 SQL 对象。在 PostgreSQL 9.1 和更高版本中,这是通过执行CREATE EXTENSION命令来完成的。在新的数据库中,您只需

CREATE EXTENSION module_name;

此命令必须由数据库超级用户运行。这只会在当前数据库中注册新的 SQL 对象,因此您需要在每个希望使用模块功能的数据库中运行此命令。或者,在数据库template1中运行它,以便将 extensions 随后复制到-默认情况下创建数据库。

许多模块允许您以所选的模式安装其对象。为此,请将SCHEMA schema_name添加到CREATE EXTENSION命令。默认情况下,对象将放置在当前的创建目标架构中,该架构又默认为public

如果您的数据库是通过 PostgreSQL 9.1 之前版本的转储和重新加载来实现的,并且您一直在使用该模块中 9.1 之前的版本,则应改用

CREATE EXTENSION module_name FROM unpackaged;

这会将模块 9.1 之前的对象更新为适当的* extension *对象。将来对模块的更新将由ALTER EXTENSIONManagement。有关扩展程序更新的更多信息,请参见Section 38.16

但是请注意,这些模块中的某些不是这种意义上的“扩展”,而是以其他方式(例如shared_preload_libraries)加载到服务器中。有关详细信息,请参见每个模块的文档。