🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Appendix F. 额外提供的模块 **Table of Contents** + F.1\. adminpack + F.2\. auth_delay + F.3\. auto_explain + F.4\. btree_gin + F.5\. btree_gist + F.6\. chkpass + F.7\. citext + F.8\. cube + F.9\. dblink + F.10\. dict_int + F.11\. dict_xsyn + F.12\. dummy_seclabel + F.13\. earthdistance + F.14\. file_fdw + F.15\. fuzzystrmatch + F.16\. hstore + F.17\. intagg + F.18\. intarray + F.19\. isn + F.20\. lo + F.21\. ltree + F.22\. pageinspect + F.23\. passwordcheck + F.24\. pg_buffercache + F.25\. pgcrypto + F.26\. pg_freespacemap + F.27\. pgrowlocks + F.28\. pg_stat_statements + F.29\. pgstattuple + F.30\. pg_trgm + F.31\. postgres_fdw + F.32\. seg + F.33\. sepgsql + F.34\. spi + F.35\. sslinfo + F.36\. tablefunc + F.37\. tcn + F.38\. test_parser + F.39\. tsearch2 + F.40\. unaccent + F.41\. uuid-ossp + F.42\. xml2 本附录和下一个包含可以在PostgreSQL 发布的`contrib`目录中找到的模块信息。 这些包括移植工具,分析工具,和不是核心PostgreSQL系统部分的插件功能, 主要因为他们关注于有限的读者或者太实验而不是主要源码树的一部分。 这并不妨碍他们有效性。 该附录包含扩展以及在`contrib`中发现的服务器插件模块。 [Appendix G](#calibre_link-408)包含实用程序。 当从源码发布中编译时, 这些组件不能自动创建, 除非你建立"world"目标(参阅[step 2](#calibre_link-1090))。 你可以通过运行下面命令创建和安装: ``` <kbd class="literal">gmake</kbd> <kbd class="literal">gmake install</kbd> ``` 在配置的源码树的`contrib`目录中 或编译和安装一个选定的模块,在该模块的子目录做同样的事。 许多模块可以进行回归测试,可以通过运行下面命令被执行: ``` <kbd class="literal">gmake check</kbd> ``` 在安装前或者 ``` <kbd class="literal">gmake installcheck</kbd> ``` 一旦你有正运行的PostgreSQL服务器。 如果您使用的是PostgreSQL的预包装版本, 这些模块通常可以作为一个单独的包, 如`postgresql-contrib`。 许多模块提供新的用户自定义函数,操作符,或类型。 为了利用其中一个模块,在你安装代码之后 你需要在数据库系统中注册新的SQL对象。 在PostgreSQL 9.1和以后版本,这是通过执行 [CREATE EXTENSION](#calibre_link-572)命令来实现。在一个新的数据库中, 你可以简单地做 ``` CREATE EXTENSION _module_name_; ``` 此命令必须由数据库管理员运行。这个 在当前数据库中注册新的SQL对象, 所以你需要在你想要该模 块的功能可用的每个数据库中运行这个 命令。另外, 在数据库`template1`中运行它,这样扩展将被复制到 缺省随后创建的数据库中。 许多模块允许你在你选择的模式中安装对象。 要做到这一点,添加`SCHEMA` `_schema_name_`到`CREATE EXTENSION`命令, 默认情况下,该对象将被放置在当前创建的 目标模式中,通常`public`。 如果你的数据库通过转储提出,并且从PostgreSQL9.1之前版本恢复 ,你在它的模块的先前9.1版本使用过,你应该替代做 ``` CREATE EXTENSION _module_name_ FROM unpackaged; ``` 这将更新模块的9.1之前对象到一个适当的 _扩展_对象。 通过[ALTER EXTENSION](#calibre_link-573)管理未来更新模块。 关于扩展更新的更多信息,参见[Section 35.15](#calibre_link-840)。 注意,然而,这些模块在这个意义上不是"扩展", 但在一些其他的方式中被加载到服务器,比如 通过 [shared_preload_libraries](#calibre_link-576)。 参见每个模块的文档获取更多信息。