PostgreSQL与中文社区
2019獨角獸企業重金招聘Python工程師標準>>>
PostgreSQL社區
????PostgreSQL全球社區官網:http://www.postgresql.org/
? ? 中國開源聯盟PostgreSQL協會官網:http://www.postgresqlchina.com/
? ??PostgreSQL中文社區官網:http://www.postgres.cn/home
????PostgreSQL專業1群 : 3336901(已滿)
????PostgreSQL專業2群 : 100910388
????PostgreSQL專業3群 : 150657323
????文檔翻譯群 : 309292849
?
?
PostgreSQL -? 世界上最強大的開源數據庫
中文轉自:http://www.postgres.cn/about
英文參考:?http://www.postgresql.org/about/
一、概要介紹
PostgreSQL是一個功能強大的開源數據庫系統。經過長達15年以上的積極開發和不斷改進,PostgreSQL已在可靠性、穩定性、數據一致性等獲得了業內極高的聲譽。目前PostgreSQL可以運行在所有主流操作系統上,包括Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS X、Solaris和Tru64)和Windows。PostgreSQL是完全的事務安全性數據庫,完整地支持外鍵、聯合、視圖、觸發器和存儲過程(并支持多種語言開發存儲過程)。它支持了大多數的SQL:2008標準的數據類型,包括整型、數值值、布爾型、字節型、字符型、日期型、時間間隔型和時間型,它也支持存儲二進制的大對像,包括圖片、聲音和視頻。PostgreSQL對很多高級開發語言有原生的編程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl 和ODBC以及其他語言等,也包含各種文檔。
作為一種企業級數據庫,PostgreSQL以它所具有的各種高級功能而自豪,像多版本并發控制(MVCC)、按時間點恢復(PITR)、表空間、異步復制、嵌套事務、在線熱備、復雜查詢的規劃和優化以及為容錯而進行的預寫日志等。它支持國際字符集、多字節編碼并支持使用當地語言進行排序、大小寫處理和格式化等操作。它也在所能管理的大數據量和所允許的大用戶量并發訪問時間具有完全的高伸縮性。目前已有很多PostgreSQL的系統在實際生產環境下管理著超過4TB的數據。一些PostgreSQL系統的極限值如下表所列:
????極限值:
????最大單個數據庫大小????不限
????最大數據單表大小????32 TB
????單條記錄最大????1.6 TB
????單字段最大允許????1 GB
????單表允許最大記錄數????不限
????單表最大字段數????250 - 1600 (取決于字段類型)
????單表最大索引數????不限
????由于PostgreSQL的優異性能,它已贏得最終用戶和業內的多次大獎,包括Linux新媒體(Linux New Media)的最佳數據庫獎和5次Linux期刊編輯選出的最佳數據庫獎。
????眾多功能和標準兼容性
????PostgreSQL對SQL標準高度兼容,它實現的功能完全遵守于ANSI-SQL:2008標準。目前完全支持子查詢(包括在FROM中的子查詢)、授權讀取和可序列化的事務隔離級別。同時PostgreSQL也具有完整的關系數據庫系統的目錄功能,它支持單數據庫的多模式功能,每一個目錄可通過SQL標準中定義的字典信息模式進行訪問。
Data集成性功能包括(復合)主鍵、含有嚴格約束或級聯更新和刪除功能的外鍵、錄入檢查約束、唯一性約束和非空約束。
PostgreSQL也具有很多擴展模塊和更高級的功能。其中有為方便使用的通過序列實現的自增字段、 允許返回部分記錄集的LIMIT/OFFSET選項,也支持復合、唯一、部分和函數式索引,索引并支持B-Tree、R-Tree、Hash或GiST存儲方式。
GiST (通用搜索樹) 索引是一種高級系統算法,它將不同的排序算法與包含B-Tree、B+-Tree、R-Tree、部分匯總樹、可加權的B+-Tree以及其他多種搜索邏輯結合在一起,它也提供了接口允許創建用戶數據類型和擴展的查詢方法。這樣,GiST提供了用戶指定存儲和定義新方法進行查詢的靈活性---它大大超越了標準B-Tree、R-Tree和其他通用搜索邏輯所能提供的功能。
GiST現在也成為很多其他使用PostgreSQL公共項目的基礎,如OpenFTS和PostGIS項目。 OpenFTS(開源全文搜索引擎)項目提供在線索引和數據庫搜索的相當權重評分。 PostGIS項目給PostgreSQL增加了地理信息管理功能,允許用戶將PostgreSQL作為GIS空間地理信息數據庫使用,這和專業的ESRI公司的SDE系統以及Oracle的空間地理擴展模塊功能相同。
其他高級功能包括表繼承、規則和數據庫事件響應功能等。表繼承功能可以按原來的一個表創建一個有關系的新表,這樣允許數據庫設計人員可以將一個表作為基表,從基表派生出新表。并且PostgreSQL甚至可以使用此方式實現單級或多級的繼承。
規則功能是用來調用查詢的重算功能,允許數據庫設計人員根據不同的表或視圖來創建規則,以實現動態改變數據庫原操作為新的操作的功能。
事件響應功能是一個內部通訊功能,它將系統信息或事件在用戶使用的LISTEN和NOTIFY兩條指令后進行傳遞,允許 簡要的點對點通訊或是對指定數據庫事件的定點通訊。由于信息可以從觸發器或是存儲過程中發出,PostgreSQL的用戶可以監控類似更新、新增或是刪除的數據庫事件。
????高度可定制性
?????PostgreSQL的存儲過程開發可以使用眾多的程序語言,包括Java、Perl、Python、Ruby、Tcl、C/C++和自帶的PL/pgSQL,其中的PL/pgSQL與Oracle的PL/SQL很相似,內置了數百個函數,功能從基本的算術計算和字符串處理到加密邏輯計算并與Oracle有高度兼容性。觸發器和存儲過程可以使用C語言開發并可以作為內部庫文件加載至數據庫內部,開發上的巨大靈活性擴展了數據庫能力。相應地,PostgreSQL也包括一套框架允許開發人員定義和創建他們自己的可在函數中使用數據類型,也可以定義操作符新的處理方式,具有了這樣的能力后,PostgreSQL現已具有了各種高級數據類型,包括幾何圖形、空間地理、網絡地址甚至于ISBN/ISSN(國際標準書號/國際標準序列號),這些都可以加入至系統中。
由于有很多的存儲過程語言可以使用,這樣也產生了很多的庫接口,這樣允許各種編譯型或是解釋型的語言在PostgreSQL進行使用,包括Java(JDBC)、ODBC、Perl、Python、Ruby、C、C++、PHP、Lisp、Scheme和Qt等。
二、版權聲明
????PostgreSQL 使用PostgreSQL版權聲明,它是類似BSD的版權。由于這個經 OSI認證的版權不限制PostgreSQL在商業環境和有 版權的應用程序中使用,因此被公認為是非常有靈活性和對商業應用是友好的。加上有多個公司的支持和源代碼歸屬公共所有, 我們的版權使得PostgreSQL在那些希望在自己的產品里嵌入數據庫的廠商中很流行,因為他們不用擔心費用、嵌入軟件的版權 鎖以及版權條款的改變。
三、優勢特性
?????跨平臺能力
PostgreSQL幾乎可以所有Unix類操作系統下運行 (根據統計有至少34種平臺),自8.0版本以后,在Windows平臺下的也使用原生支持方式。
?????大數據量環境下的設計
我們使用MVCC模式作為數據存儲的策略,這樣PostgreSQL可以在大數據量的環境下具有極高的響應性能。一些領先的商業私有數據庫供應商基于相同的原因,也使用這種技術。
? ? ?圖形化的數據庫設計和管理工具
有很多高品質的圖形化的PostgreSQL管理工具軟件,包括開源和商業性質的。在我們的維基網站上有一個清單列出了PostgreSQL相關的圖形化工具軟件。
???? ?技術特性列表
????下表列出了各個版本中不同功能的支持情況。將光標移至每一個功能名稱上時會顯示該功能更詳細的解釋。
-
后臺處理類
-
性能類
-
安全類
-
網絡類
-
多字節/國際化類
-
平臺類
-
數據類型
-
函數和觸發器類
-
過程語言類
-
擴展模塊類
| 64-bit large objects | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| Advisory locks | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| ALTER object IF EXISTS | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| Autovacuum enabled by default | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Cascading streaming replication | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| Changing column types (ALTER TABLE .. ALTER COLUMN TYPE) | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Checksum on data pages | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| Column level permissions | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Common Table Expressions (WITH RECURSIVE) | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Concurrent GiST indexes | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| COPY from/to STDIN/STDOUT | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| COPY with arbitrary SELECT | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| Crash-safe GiST indexes | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| CREATE TABLE ... (LIKE) with foreign tables, views and composite types | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| CSV support for COPY | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Custom background workers | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| Default permissions | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Deferrable unique constraints | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Disk based FSM | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Dollar Quoting | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| DROP object IF EXISTS | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| Exclusion constraints | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| EXPLAIN (BUFFERS) support | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Extension package installation | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| Foreign data wrappers | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| Foreign Tables | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| Full code coverage generation support | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Holdable cursors | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Hot Standby | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Improved set of JSON functions and operators | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| INSERT/UPDATE/DELETE RETURNING | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| Integrated autovacuum daemon | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| Join removal support | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| LATERAL clause | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| Loadable plugin infrastructure for monitoring the planner | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Materialized views | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| Multiple autovacuum workers | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Multiple input aggregates | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| Multirow VALUES | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| MVCC safe CLUSTER | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Named restore points | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| ON COMMIT clause for CREATE TEMPORARY TABLE | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| ORDER BY NULLS FIRST/LAST | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Parallel pg_dump | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| Payload support for LISTEN/NOTIFY | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Per tablespace support for GUCs | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Per user/database server configuration settings | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Pg_basebackup tool | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| pg_receivexlog tool | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| Point-in-Time Recovery | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Prefix support for text search synonym dictionary | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Row-wise comparison | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| Savepoints | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| SELECT FOR NO KEY UPDATE/SELECT FOR KEY SHARE lock modes | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| Serializable Snapshot Isolation | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| SP-GiST indexes for range types | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| SQLDA support for ECPG | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| SQL-standard information schema | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| SQL standard interval handling | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Streaming-only cascading replication | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| Streaming Replication | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Support for anonymous shared memory | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| Synchronous replication | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| TABLE statement | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Temporary VIEWs | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| Two Phase commit | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| Txid functions | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Typed tables | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| UNNEST/array_agg | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Updatable views | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| Updateable cursors | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Version aware psql | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Visibility map | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| WAL-safe B-Tree Indexes | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Warm Standby | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| Window functions | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Writable Common Table Expressions | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| Writable Foreign Data Wrappers | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| XML, JSON and YAML output for EXPLAIN | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Asynchronous Commit | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Automatic plan invalidation | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Background Checkpointer | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| Background Writer | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Cross datatype hashing support | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Distributed checkpointing | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Foreign keys marked as NOT VALID | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| Full Text Search | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| GIN (Generalized Inverted Index) Indexes | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| GIN indexes partial match | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| GiST (Generalized Search Tree) Indexes | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Hashing support for DISTINCT/UNION/INTERSECT/EXCEPT | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Hashing support for FULL OUTER JOIN, LEFT OUTER JOIN and RIGHT OUTER JOIN | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| Hashing support for NUMERIC | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Heap Only Tuples (HOT) | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Indexes on expressions | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Index-only scans | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| Index support for IS NULL | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Inlining of SQL-functions | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| In-memory Bitmap Indexes | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| K-nearest neighbor GiST support | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| Lazy XID allocation | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Multi-core scalability for read-only workloads | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| Multiple temporary tablespaces | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Non-blocking CREATE INDEX | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| Outer Join reordering | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| Parallel restore | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Partial sort capability (top-n sorting) | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| SELECT ... FOR UPDATE/SHARE NOWAIT | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| Semi- and Antijoins | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Shared row level locking | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| Space-Partitioned GiST Indexes | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| Synchronized sequential scanning | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Table partitioning | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| Tablespaces | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Unlogged tables | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| WAL Buffer auto-tuning | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| GSSAPI support | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Large object access controls | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Native LDAP authentication | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| Native RADIUS authentication | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Per user/database connection limits | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| ROLES | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| Search+bind mode operation for LDAP authentication | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| security_barrier option on views | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| Security Service Provider Interface (SSPI) | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| SSL certificate validation in libpq | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| SSL client certificate authentication | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| SSPI authentication via GSSAPI | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| Full SSL support | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| IPv6 Support | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| V2 client protocol | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| V3 client protocol | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Column-level collation support | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| Database level Collation | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| EUC_JIS_2004/ SHIFT_JIS_2004 support | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Multibyte encoding support, incl. UTF8 | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Multiple language support | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Unicode string literals and identifiers | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| UTF8 support on Windows | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| Microsoft Visual C++ Support | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Native Windows Port | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Spinlock support for the SuperH hardware platform | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Sun Studio compiler on Linux | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Windows x64 support | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Arrays of compound types | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Array support | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| ENUM data type | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| GUID/UUID data type | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| IS0 8601 interval syntax | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| JSON data type | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| NULLs in Array | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| Range types | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| smallserial type | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| Type modifier support | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| XML data type | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| ALTER TABLE ENABLE/DISABLE TRIGGER | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| ALTER TABLE / ENABLE REPLICA TRIGGER/RULE | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Column level triggers | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Event triggers | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| Function argument names | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| ORDER BY support within aggregates | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Per function GUC settings | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Per function statistics | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| RETURN QUERY EXECUTE | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| RETURNS TABLE | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Statement level triggers | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Statement level TRUNCATE triggers | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Triggers on views | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| Variadic functions | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| WHEN clause for CREATE TRIGGER | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| CASE in pl/pgsql | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| CONTINUE statement for PL/pgSQL | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| DO statement for pl/perl | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| DO statement for pl/pgsql | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| EXCEPTION support in PL/pgSQL | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| EXECUTE USING in PL/pgSQL | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| FOREACH IN ARRAY in pl/pgsql | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| IN/OUT/INOUT parameters for pl/pgsql and PL/SQL | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| Named parameters | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Non-superuser language creation | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Number of function arguments increased to 100 | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| pl/pgsql installed by default | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Polymorphic functions | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| Python 3 support for pl/python | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| Qualified function parameters | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| RETURN QUERY in pl/pgsql | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| ROWS and COST specification for functions | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| Scrollable and updatable cursor support for pl/pgsql | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| SQLERRM/SQLSTATE for pl/pgsql | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| Unicode object support in PL/python | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| User defined exceptions | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| Validator function for pl/perl | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| contrib/adminpack | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| contrib/auth_delay | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| contrib/autoexplain | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| contrib/btree_gin | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| contrib/btree_gist | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| contrib/citext | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| contrib/dblink | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| contrib/dblink asyncronous notification support | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| contrib/dbsize | Y | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 |
| contrib/file_fdw | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| contrib/fuzzystrmatch | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| contrib/hstore | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| contrib/hstore improvements | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| contrib/intarray | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| contrib/isn (ISBN) | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| contrib/ltree | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| contrib/pageinspect | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| contrib/passwordcheck | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| contrib/pg_autovacuum | Y | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 |
| contrib/pgbench | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| contrib/pg_buffercache | ? | Y | Y | Y | Y | Y | Y | Y | Y |
| contrib/pg_freespacemap | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| contrib/pg_standby | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| contrib/pg_stat_statements | ? | ? | ? | ? | Y | Y | Y | Y | Y |
| contrib/pg_stat_statements improvements | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| contrib/pgstattuple | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| contrib/pg_trgm | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| contrib/pg_trgm regular expressions indexing | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| contrib/pg_upgrade | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| contrib/pg_xlogdump | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| contrib/postgres_fdw | ? | ? | ? | ? | ? | ? | ? | ? | Y |
| contrib/seg | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| contrib/sepgsql | ? | ? | ? | ? | ? | ? | Y | Y | Y |
| contrib/sslinfo | ? | ? | Y | Y | Y | Y | Y | Y | Y |
| contrib/tablefunc | Y | Y | Y | Y | Y | Y | Y | Y | Y |
| contrib/tcn | ? | ? | ? | ? | ? | ? | ? | Y | Y |
| contrib/tsearch2 | Y | Y | Y | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 |
| contrib/tsearch2 compat wrapper | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| contrib/tsearch2 UTF8 support | ? | ? | Y | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 |
| contrib/unaccent | ? | ? | ? | ? | ? | Y | Y | Y | Y |
| contrib/userlocks | Y | Y | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 |
| contrib/uuid-ossp | ? | ? | ? | Y | Y | Y | Y | Y | Y |
| contrib/xml2 | Y | Y | Y | Y | 廢棄 | 廢棄 | 廢棄 | 廢棄 | 廢棄 |
轉載于:https://my.oschina.net/liuyuanyuangogo/blog/498486
總結
以上是生活随笔為你收集整理的PostgreSQL与中文社区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络知识:分享几个路由器设置小技巧,欢迎
- 下一篇: 数据库:MYSQL相关设计规范梳理,值得