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 服务器已经运行后运行:
make installcheck
如果你使用的是预打包版本的 PostgreSQL, 这些组件通常会作为单独的子包提供,例如 postgresql-contrib。
许多组件提供新的用户定义函数、操作符或类型,并将其打包为 扩展。 安装代码后,要使用其中某个扩展,就需要在数据库系统中注册新的 SQL 对象。 这可通过执行 CREATE EXTENSION 命令完成。 在一个新建的数据库中,你可以直接执行:
CREATE EXTENSION extension_name;
该命令只会在当前数据库中注册这些新的 SQL 对象,因此需要在每个希望使用该 扩展功能的数据库中运行它。另一种做法是在 template1 数据库中运行它,这样该扩展默认会被复制到随后创建的数据库中。
对于所有扩展,除非该扩展被视为 “trusted”,否则 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。 详情见各组件文档。
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。