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包含实用程序。

当从源码发布中编译时, 这些组件不能自动创建, 除非你建立"world"目标(参阅step 2)。 你可以通过运行下面命令创建和安装:

<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命令来实现。在一个新的数据库中, 你可以简单地做

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管理未来更新模块。 关于扩展更新的更多信息,参见Section 35.15

注意,然而,这些模块在这个意义上不是"扩展", 但在一些其他的方式中被加载到服务器,比如 通过 shared_preload_libraries。 参见每个模块的文档获取更多信息。