目錄
crosstab
及其他)TABLESAMPLE
的 SYSTEM_ROWS
取樣方法TABLESAMPLE
的 SYSTEM_TIME
取樣方法本附錄和下一個附錄包含有關 PostgreSQL 發行版本之 contrib
目錄中找到的可選元件的資訊。這些包括移植工具、分析實用程式和外掛程式功能,這些不是 PostgreSQL 核心系統的一部分。它們是分開的,主要是因為它們針對的是有限的受眾,或是太過於實驗性而無法成為主要原始碼樹的一部分。這並不排除它們的實用性。
本附錄涵蓋了在 contrib
中找到的擴充功能和其他伺服器外掛程式模組函式庫。 附錄 G 涵蓋了實用程式。
從原始碼發行版本建置時,除非您建置「world」目標(請參閱步驟 2),否則這些可選元件不會自動建置。您可以透過執行以下命令來建置和安裝所有這些元件
make
make install
在已設定的原始碼樹的 contrib
目錄中;或者,若要僅建置和安裝一個選定的模組,請在該模組的子目錄中執行相同的操作。許多模組都有回歸測試,可以透過執行以下命令來執行
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。有關詳細資訊,請參閱每個元件的文件。
如果您在文件中發現任何不正確、與您使用特定功能時的體驗不符或需要進一步澄清的地方,請使用此表單來報告文件問題。