Table of Contents
crosstab 等)TABLESAMPLE 的 SYSTEM_ROWS 采样方法TABLESAMPLE 的 SYSTEM_TIME 采样方法
本附录与下一附录介绍 PostgreSQL 发行版中 contrib 目录下的可选组件。它们包括移植工具、分析实用程序,以及不属于 PostgreSQL 核心系统的插件特性。它们之所以被独立放置,主要是因为它们面向的受众有限,或者过于实验性而不适合进入主源码树。这并不妨碍它们的实用性。
本附录介绍 contrib 中的扩展及其他服务器插件模块库。Appendix G 介绍实用程序。
从源码发行版构建时,除非你构建 “world” 目标(参见 Step 2),否则这些可选组件不会被自动构建。你可以在已配置的源码树的 contrib 目录中运行以下命令来构建并安装所有组件:
makemake install
或者,要只构建并安装某个选定的模块,在该模块的子目录中执行同样的命令即可。许多模块带有回归测试,安装前可以运行以下命令执行它们:
make check
安装后(前提是已有 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 |
许多扩展允许你把其对象安装到你选择的模式中。为此,请在 CREATE EXTENSION 命令中加入 SCHEMA
。默认情况下,对象会被放置到你当前的目标创建模式中,而该模式默认为 schema_namepublic。
不过请注意,其中一些组件并非这种意义上的“扩展”,而是以其他方式加载到服务器中,例如通过 shared_preload_libraries。细节请参见各组件的文档。