目录
crosstab
等)TABLESAMPLE
的 SYSTEM_ROWS
采样方法TABLESAMPLE
的 SYSTEM_TIME
采样方法本附录及下一附录包含在 PostgreSQL 分发的<code class="literal">contrib</code> 目录中找到可选组件的信息。其中包括移植工具、分析实用程序和不属于 PostgreSQL 核心系统一部分的插件功能。它们主要是因为涉及的受众范围有限或过于试验性而与主源代码树分开放置的。但这并不妨碍它们发挥作用。
本附录涵盖在 contrib
中找到的扩展以及其他服务器插件模块库。附录 G 涵盖实用程序。
从源代码分发版构建时,这些可选组件不会自动构建,除非您构建“world”目标(参见步骤 2)。您可以通过运行以下命令构建并安装它们全部
make
make install
在已配置源代码树的 contrib
目录中;或者,只需构建并安装一个选定的模块,请在该模块的子目录中执行相同的操作。许多模块都有回归测试,可以通过运行以下命令执行该测试
make check
在安装之前或
make installcheck
一旦运行 PostgreSQL 服务器。
如果您使用的是 PostgreSQL 的预打包版本,则这些组件通常作为单独的子包(比如 postgresql-contrib
)提供。
许多组件提供打包为扩展的新用户定义函数、运算符或类型。为使用其中一种扩展,在安装代码后需要在数据库系统中注册新 SQL 对象。这是通过执行 CREATE EXTENSION 命令完成的。在新的数据库中,您可以简单地执行
CREATE EXTENSION extension_name
;
此命令仅在当前数据库中注册新 SQL 对象,因此您需要在希望扩展的功能可用的每个数据库中运行此命令。或者,在数据库 template1
中运行此命令,以便默认情况下将扩展复制到随后创建的数据库中。
对于所有扩展,CREATE EXTENSION
命令必须由数据库超级用户运行,除非扩展被认为是 “受信任” 的。受信任的扩展可以由对当前数据库具有 CREATE
权限的任何用户运行。受信任的扩展将在以下章节中进行识别。通常,受信任的扩展是不能提供对数据库外功能的访问的扩展。
以下扩展在默认安装中受信任
btree_gin | fuzzystrmatch | ltree | tcn |
btree_gist | hstore | pgcrypto | tsm_system_rows |
citext | intarray | pg_trgm | tsm_system_time |
cube | isn | seg | unaccent |
dict_int | lo | tablefunc | uuid-ossp |
许多扩展允许你在选择的架构中安装其对象。要执行此操作,请将 SCHEMA
添加到 schema_name
CREATE EXTENSION
命令。默认情况下,这些对象会放置在当前创建目标架构中,后者又默认为 public
。
但是请注意,在这种情况中,其中一些组件不是 ““扩展””,而是通过其他方式加载到服务器中,例如通过 shared_preload_libraries 加载。有关详细信息,请参见每个组件的文档。