目录
old_snapshot_threshold
状态crosstab
等)TABLESAMPLE
的 SYSTEM_ROWS
采样方法TABLESAMPLE
的 SYSTEM_TIME
采样方法本附录和下一附录包含 PostgreSQL 发行版 contrib
目录中可选组件的信息。这些组件包括移植工具、分析实用程序和插件功能,它们不属于 PostgreSQL 核心系统的一部分。它们之所以单独存在,主要是因为它们面向的受众有限,或者过于实验性,无法成为主源代码树的一部分。但这并不妨碍它们的使用。
本附录涵盖了 contrib
中的扩展和其他服务器插件模块库。附录 G 涵盖了实用程序。
从源发行版构建时,不会自动构建这些可选组件,除非您构建“world”目标(请参见 步骤 2)。您可以在配置的源代码树的 contrib
目录中运行以下命令来构建并安装所有组件;或者仅构建并安装一个选定的模块,请在该模块的子目录中执行相同的操作。
make
make install
许多模块都有回归测试,可以通过运行以下命令来执行这些测试:
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。有关详细信息,请参阅每个组件的文档。