發布日期: 2023-09-14
PostgreSQL 16 包含許多新功能和強化功能,包括
允許平行處理 FULL
和內部右 OUTER
hash 連接
允許從備用伺服器進行邏輯複製
允許邏輯複製訂閱者平行套用大型交易
允許使用新的 pg_stat_io
檢視監控 I/O 統計資料
新增 SQL/JSON 建構函數和身分函數
改善真空冷凍的效能
新增支援,可在 pg_hba.conf
中對使用者和資料庫名稱進行正規表達式比對,並可在 pg_ident.conf
中對使用者名稱進行正規表達式比對
以下項目和 PostgreSQL 16 的其他新功能會在以下各節中更詳細地說明。
對於想要從任何先前版本移轉資料的人來說,必須使用 pg_dumpall 進行傾印/還原,或使用 pg_upgrade 或邏輯複製。請參閱 第 19.6 節,以取得有關移轉至主要新版本的一般資訊。
版本 16 包含許多變更,可能會影響與先前版本的相容性。請注意以下不相容性
變更 PL/pgSQL 繫結游標變數的指定規則 (Tom Lane)
先前,此類變數的字串值會在游標指定期間設定為與變數名稱相符;現在會在 OPEN
期間指定,且不會與變數名稱相符。若要還原先前的行為,請在 OPEN
之前將所需的入口名稱指定給游標變數。
禁止 NULLS NOT DISTINCT
主鍵索引 (Daniel Gustafsson)
變更 REINDEX DATABASE
和 reindexdb,使其不會處理系統目錄上的索引 (Simon Riggs)
仍可以使用 REINDEX SYSTEM
和 reindexdb --system
處理此類索引。
強化 GENERATED
對繼承和分割表的運算式限制 (Amit Langote、Tom Lane)
父系/分割表和子系/分割表的欄位必須全部具有相同的產生狀態,儘管現在實際的產生運算式可能不同。
移除 pg_walinspect 函數 pg_get_wal_records_info_till_end_of_wal()
和 pg_get_wal_stats_till_end_of_wal()
(Bharath Rupireddy)
將伺服器變數 force_parallel_mode
重新命名為 debug_parallel_query
(David Rowley)
移除使用 ON SELECT
規則手動 建立檢視 的功能 (Tom Lane)
移除伺服器變數 vacuum_defer_cleanup_age
(Andres Freund)
自從新增 hot_standby_feedback
和 複寫槽 之後,此變數就已不再必要。
移除伺服器變數 promote_trigger_file
(Simon Riggs)
此變數用於將備用伺服器提升為主要伺服器,但現在可以使用 pg_ctl promote
或 pg_promote()
更輕鬆地完成此動作。
移除唯讀伺服器變數 lc_collate
和 lc_ctype
(Peter Eisentraut)
校對和地區設定會因資料庫而異,因此將它們設為唯讀伺服器變數並無助益。
角色繼承現在會控制在 GRANT
期間新增的成員角色的預設繼承狀態 (Robert Haas)
角色預設的繼承行為可以使用新的 GRANT ... WITH INHERIT
子句覆寫。這允許繼承某些角色而不繼承其他角色,因為成員的繼承狀態是在 GRANT
時間設定的。先前,成員角色的繼承狀態僅由角色的繼承狀態控制,而角色繼承狀態的變更會影響所有先前和未來的成員角色。
限制 CREATEROLE
的權限及其修改其他角色的能力(Robert Haas)
先前具有 CREATEROLE
權限的角色可以變更任何非超級使用者角色的許多面向。此類變更,包括新增成員,現在需要要求變更的角色具有 ADMIN OPTION
權限。例如,他們現在只能在同時具有這些權限的情況下變更 CREATEDB
、REPLICATION
和 BYPASSRLS
屬性。
移除 postmaster 二進位檔的符號連結(Peter Eisentraut)
以下您將找到 PostgreSQL 16 和前一個主要版本之間變更的詳細說明。
在更多情況下允許遞增排序,包括 DISTINCT
(David Rowley)
新增具有 ORDER BY
或 DISTINCT
的聚合使用預先排序資料的能力(David Rowley)
新的伺服器變數 enable_presorted_aggregate
可用於停用此功能。
允許在 UNION ALL
上方記憶(Richard Guo)
允許反連接與非可為 Null 的輸入作為內部關係一起執行(Richard Guo)
允許平行化 FULL
和內部右方 OUTER
hash 連接(Melanie Plageman、Thomas Munro)
改善 GIN
索引存取最佳化器成本的準確度(Ronan Dunklau)
允許更有效率地新增堆積和索引頁面(Andres Freund)
在非凍結作業期間,在適當的地方執行頁面 凍結(Peter Geoghegan)
這使得全表凍結真空吸塵較不必要。
允許視窗函數在 RANGE
模式處於作用中但並非必要時,在內部使用較快的 ROWS
模式(David Rowley)
允許最佳化始終遞增的視窗函數 ntile()
、cume_dist()
和 percent_rank()
(David Rowley)
允許聚合函數 string_agg()
和 array_agg()
平行處理(David Rowley)
透過快取 RANGE
和 LIST
分割查詢來提升效能(Amit Langote、侯志傑、David Rowley)
允許控制真空吸塵和分析所使用的共用緩衝區(Melanie Plageman)
VACUUM
/ANALYZE
選項為 BUFFER_USAGE_LIMIT
,而 vacuumdb 選項為 --buffer-usage-limit
。預設值由伺服器變數 vacuum_buffer_usage_limit
設定,它也控制自動真空吸塵。
在 Windows 上支援 wal_sync_method=fdatasync
(Thomas Munro)
允許 HOT 更新,如果只更新 BRIN
編制索引的欄位(Matthias van de Meent、Josef Simanek、Tomas Vondra)
提升更新 程序標題 的速度(David Rowley)
允許 xid
/subxid
搜尋和 ASCII 字串偵測使用向量運算(Nathan Bossart、John Naylor)
ASCII 偵測對於 COPY FROM
特別有用。向量運算也用於一些 C 陣列搜尋。
減少記憶體配置的開銷(Andres Freund、David Rowley)
新增系統檢視 pg_stat_io
檢視,以追蹤 I/O 統計資料(Melanie Plageman)
記錄資料表上最後的順序和索引掃描的統計資料(Dave Page)
這些資訊會顯示在 pg_stat_*_tables
和 pg_stat_*_indexes
中。
記錄已更新列移動到新頁面的發生次數的統計資料(Corey Huinker)
pg_stat_*_tables
欄位是 n_tup_newpage_upd
。
新增推測鎖定資訊至 pg_locks
系統檢視(Masahiko Sawada、Noriyoshi Shinoda)
交易識別碼會顯示在 transactionid
欄位,而推測插入權杖會顯示在 objid
欄位。
新增已準備陳述式結果類型的顯示至 pg_prepared_statements
檢視(Dagfinn Ilmari Mannsåker)
在訂閱建立時建立訂閱統計資料項目,讓 stats_reset
能夠正確(Andres Freund)
先前只有在回報第一個統計資料時才會建立項目。
修正 pg_stat_database
中顯示的暫存關聯寫入的 I/O 記帳(Melanie Plageman)
新增函式 pg_stat_get_backend_subxact()
,以回報工作階段的子交易快取(Dilip Kumar)
讓 pg_stat_get_backend_idset()
、pg_stat_get_backend_activity()
和相關函式使用不變的後端識別碼(Nathan Bossart)
先前索引值可能會在工作階段的生命週期中變更。
報告具有特殊後端類型 (Melanie Plageman) 的獨立後端
新增等待事件 SpinDelay
以報告自旋鎖睡眠延遲 (Andres Freund)
建立新的等待事件 DSMAllocate
以表示等待動態共享記憶體配置 (Thomas Munro)
此類型的等待先前報告為 DSMFillZeroWrite
,也由 mmap()
配置使用。
將資料庫名稱新增至邏輯 WAL 傳送者的 程序標題 (Tatsuhiro Nakamori)
實體 WAL 傳送者不會顯示資料庫名稱。
將檢查點和 REDO LSN
資訊新增至 log_checkpoints
訊息 (Bharath Rupireddy、Kyotaro Horiguchi)
在用戶端憑證失敗期間提供其他詳細資料 (Jacob Champion)
新增預先定義的角色 pg_create_subscription
,具有建立訂閱的權限 (Robert Haas)
允許訂閱不需要密碼 (Robert Haas)
這透過選項 password_required=false
來達成。
簡化 LOCK TABLE
的權限 (Jeff Davis)
先前,使用者在各種鎖定層級執行 LOCK TABLE
的能力僅限於他們有權限在表格上執行的命令所需要的鎖定層級。例如,具有 UPDATE
權限的人員可以執行所有鎖定層級,除了 ACCESS SHARE
,即使它是較低的鎖定層級。現在,如果使用者已經有較高鎖定層級的權限,他們可以發出較低的鎖定層級。
允許 ALTER GROUP group_name ADD USER user_name
與 ADMIN OPTION
一起執行 (Robert Haas)
以前需要 CREATEROLE
權限。
允許 GRANT
使用 WITH ADMIN TRUE
/FALSE
語法 (Robert Haas)
以前僅支援 WITH ADMIN OPTION
語法。
允許建立其他角色的角色自動繼承新角色的權限,或 SET ROLE
到新角色的能力 (Robert Haas、Shi Yu)
這由伺服器變數 createrole_self_grant
控制。
禁止使用者變更非繼承角色的預設權限 (Robert Haas)
這現在僅允許繼承角色。
在授予角色成員資格時,要求授予者角色為具有適當權限的角色 (Robert Haas)
即使非引導超級使用者授予角色成員資格,這也是一個需求。
允許非超級使用者使用非目前使用者的授予者使用者授予權限 (Robert Haas)
目前使用者仍必須具有指定授予者使用者所給予的足夠權限。
新增 GRANT
來控制使用 SET ROLE
的權限 (Robert Haas)
這由新的 GRANT ... SET
選項控制。
新增依賴性追蹤至已授予權限的角色 (Robert Haas)
例如,移除 ADMIN OPTION
會在有權限使用該選項時失敗;必須使用 CASCADE
來撤銷依賴性權限。
新增 GRANT
記錄的授予者依賴性追蹤 (Robert Haas)
這保證 pg_auth_members
.grantor
值始終有效。
允許多個角色成員資格記錄 (Robert Haas)
以前,新的成員資格授予會移除先前的匹配成員資格授予,即使授予的其他方面不匹配。
禁止移除引導使用者的超級使用者權限 (Robert Haas)
復原此類使用者可能會導致錯誤。
允許 makeaclitem()
接受多個權限名稱 (Robins Tharakan)
以前只接受單一權限名稱,例如 SELECT
。
新增對 Kerberos 憑證委派的支援 (Stephen Frost)
這會使用伺服器變數 gss_accept_delegation
和 libpq 連線參數 gssdelegation
來啟用。
允許使用伺服器變數 scram_iterations
設定 SCRAM 迭代次數 (Daniel Gustafsson)
改善伺服器變數管理的效能 (Tom Lane)
嚴格限制哪些伺服器變數可以重設 (Masahiko Sawada)
以前,某些變數(例如 transaction_isolation
)不受 RESET ALL
影響,但它們可以在不適當的情況下個別重設。
將各種 postgresql.conf
項目移至新的類別 (Shinya Kato)
這也會影響 pg_settings
檢視中顯示的類別。
防止組態檔案遞迴超過 10 個層級 (Julien Rouhaud)
允許 autovacuum
更頻繁地套用變更至延遲設定 (Melanie Plageman)
不要只在每個關聯的開始套用變更,而是在每個區塊的開始套用變更。
移除檔案必須永久重新命名的限制 (Nathan Bossart)
在發生崩潰後,archive_command
指令現在更有可能在已封存的檔案中被呼叫。
防止同時設定 archive_library
和 archive_command
(Nathan Bossart)
以前 archive_library
會覆寫 archive_command
。
允許郵件伺服器使用中止訊號終止子行程 (Tom Lane)
這允許收集卡住的子程式的核心傾印。這由 send_abort_for_crash
和 send_abort_for_kill
控制。郵件伺服器的 -T
參數現在與設定 send_abort_for_crash
相同。
移除非功能性的郵件伺服器 -n
選項 (Tom Lane)
允許伺服器為具有 pg_use_reserved_connections
會員資格的角色保留後端時段 (Nathan Bossart)
保留時段的數量由伺服器變數 reserved_connections
設定。
允許 大頁面 在較新版本的 Windows 10 上運作 (Thomas Munro)
這新增了在較新版本的 Windows 10 上啟用大頁面所需的特殊處理。
新增 debug_io_direct
設定供開發人員使用 (Thomas Munro, Andres Freund, Bharath Rupireddy)
雖然主要供開發人員使用,wal_sync_method=open_sync
/open_datasync
已修改為不使用直接 I/O 搭配 wal_level=minimal
;這現在已啟用 debug_io_direct=wal
。
新增函式 pg_split_walfile_name()
來報告 WAL 檔案名稱的區段和時間軸值 (Bharath Rupireddy)
新增支援在 pg_hba.conf
中的資料庫和角色項目上進行正規表示式比對 (Bertrand Drouvot)
正規表示式模式以斜線為前置詞。如果在 pg_hba.conf
中參照,以斜線開頭的資料庫和角色名稱需要使用雙引號。
改善 pg_ident.conf
的使用者欄位處理,以符合 pg_hba.conf
(Jelte Fennema)
特別是,新增支援 all
、使用 +
的角色會員資格,以及以斜線開頭的正規表示式。任何符合這些模式的使用者名稱都必須使用雙引號。
允許在 pg_hba.conf
和 pg_ident.conf
中包含檔案 (Julien Rouhaud)
這些由 include
、include_if_exists
和 include_dir
控制。系統檢視 pg_hba_file_rules
和 pg_ident_file_mappings
現在顯示檔案名稱。
允許 pg_hba.conf
權杖長度不限 (Tom Lane)
將規則和對應數字新增至系統檢視 pg_hba_file_rules
(Julien Rouhaud)
使用 ICU 時,從地區設定中判斷預設編碼 (Jeff Davis)
先前預設值永遠是 UTF-8
。
讓 CREATE DATABASE
和 CREATE COLLATION
的 LOCALE
選項,以及 initdb 和 createdb 的 --locale
選項,控制非 libc 校對提供者 (Jeff Davis)
先前它們只控制 libc 提供者。
新增預先定義的校對 unicode
和 ucs_basic
(Peter Eisentraut)
這僅在啟用 ICU 支援時才有效。
允許建立自訂 ICU 校對規則 (Peter Eisentraut)
這是使用 CREATE COLLATION
的新 RULES
子句,以及 CREATE DATABASE
、createdb 和 initdb 的新選項來完成的。
允許 Windows 自動匯入系統地區設定 (Juan José Santamaría Flecha)
先前,只能在 Windows 上匯入 ICU 地區設定。
允許在備用伺服器上進行 邏輯解碼 (Bertrand Drouvot, Andres Freund, Amit Khandekar)
邏輯槽建立需要快照 WAL 記錄,但無法在備用伺服器上建立。為避免延遲,新函式 pg_log_standby_snapshot()
允許建立此類記錄。
新增伺服器變數以控制邏輯解碼發布者如何傳輸變更,以及訂閱者如何套用變更 (Shi Yu)
允許邏輯複製初始表格同步以二進位格式複製列(Melih Mutlu)
這僅對標記為二進位的訂閱才有可能。
允許並行應用邏輯複製(Hou Zhijie、Wang Wei、Amit Kapila)
CREATE SUBSCRIPTION
STREAMING
選項現在支援 parallel
以啟用並行工作人員應用大型交易。並行工作人員的數量由新的伺服器變數 max_parallel_apply_workers_per_subscription
控制。等待事件 LogicalParallelApplyMain
、LogicalParallelApplyStateChange
和 LogicalApplySendData
也已新增。欄位 leader_pid
已新增至系統檢視 pg_stat_subscription
以追蹤並行活動。
改善沒有主鍵的 邏輯複製應用 效能(Onder Kalaci、Amit Kapila)
特別是,REPLICA IDENTITY FULL
現在可以使用 B-tree 索引,而不是循序掃描表格來尋找相符項。
允許邏輯複製訂閱者僅處理沒有來源的變更(Vignesh C、Amit Kapila)
這可用於避免複製迴圈。這由新的 CREATE SUBSCRIPTION ... ORIGIN
選項控制。
執行邏輯複製 SELECT
和 DML 動作為表格擁有者(Robert Haas)
這改善了安全性,現在要求訂閱擁有者為超級使用者或對複製組中擁有表格的所有角色具有 SET ROLE
權限。以前以訂閱擁有者身分執行所有操作的行為可以使用訂閱 run_as_owner
選項啟用。
讓 wal_retrieve_retry_interval
以每個訂閱為基礎運作(Nathan Bossart)
以前重試時間是全域套用。這也新增了等待事件 >LogicalRepLauncherDSA
和 LogicalRepLauncherHash
。
新增 EXPLAIN
選項 GENERIC_PLAN
以顯示參數化查詢的通用計畫 (Laurenz Albe)
允許 COPY FROM
值對應至欄位的 DEFAULT
(Israel Barth Rubio)
允許 COPY
至外部資料表以批次新增列 (Andrey Lepikhov, Etsuro Fujita)
這由 postgres_fdw 選項 batch_size
控制。
允許 CREATE TABLE
指定 STORAGE
類型 (Teodor Sigaev, Aleksander Alekseev)
以前只有 ALTER TABLE
可以控制這個。
允許在外部資料表上 截斷觸發器 (Yugo Nagata)
允許 VACUUM
和 vacuumdb 只處理 TOAST
資料表 (Nathan Bossart)
這是透過讓 VACUUM
關閉 PROCESS_MAIN
或讓 vacuumdb 使用 --no-process-main
選項來完成。
新增 VACUUM
選項以略過或更新所有 凍結 的統計資料 (Tom Lane, Nathan Bossart)
這些選項為 SKIP_DATABASE_STATS
和 ONLY_DATABASE_STATS
。
變更 REINDEX DATABASE
和 REINDEX SYSTEM
不再需要引數 (Simon Riggs)
以前必須指定資料庫名稱。
允許 CREATE STATISTICS
在未指定時產生統計資料名稱 (Simon Riggs)
允許非十進制的 整數文字(Peter Eisentraut)
例如,0x42F
、0o273
和 0b100101
。
允許 NUMERIC
處理任何大小的十六進位、八進位和二進位整數(Dean Rasheed)
以前,僅支援使用這些非十進位基數的未加引號的八位元組整數。
允許在整數和數字 常數 中使用底線(Peter Eisentraut、Dean Rasheed)
這可以改善長數字串的可讀性。
在日期時間輸入中接受拼寫 +infinity
(Vik Fearing)
防止在日期時間字串中同時指定 epoch
和 infinity
以及其他欄位(Joseph Koshakow)
移除對以 Y
形式輸入日期的未記載支援(Joseph Koshakow)年
M月
D日
新增函數 pg_input_is_valid()
和 pg_input_error_info()
來檢查類型轉換錯誤(Tom Lane)
允許 FROM
子句中的子查詢省略別名(Dean Rasheed)
在 SQL/JSON 路徑中新增對增強數字文字的支援(Peter Eisentraut)
例如,允許十六進位、八進位和二進位整數以及數字之間的底線。
新增 SQL/JSON 建構函數(Nikita Glukhov、Teodor Sigaev、Oleg Bartunov、Alexander Korotkov、Amit Langote)
新函數 JSON_ARRAY()
、JSON_ARRAYAGG()
、JSON_OBJECT()
和 JSON_OBJECTAGG()
是 SQL 標準的一部分。
新增 SQL/JSON 物件檢查(Nikita Glukhov、Teodor Sigaev、Oleg Bartunov、Alexander Korotkov、Amit Langote、Andrew Dunstan)
IS JSON
檢查包含值、陣列、物件、純量和唯一金鑰的檢查。
允許 JSON 字串剖析使用向量運算(John Naylor)
改善全文重點標示函數 ts_headline()
對於 OR
和 NOT
表達式的處理(Tom Lane)
新增函數在指定時區中新增、減去和產生 timestamptz
值(Przemyslaw Sztoch、Gurjeet Singh)
這些函數為 date_add()
、date_subtract()
和 generate_series()
。
將 date_trunc(unit, timestamptz, time_zone)
變更為不可變函數(Przemyslaw Sztoch)
這允許使用此函數建立表達式索引。
新增伺服器變數 SYSTEM_USER
(Bertrand Drouvot)
這會報告驗證方法及其驗證的使用者。
新增函數 array_sample()
和 array_shuffle()
(Martin Kalcher)
新增聚合函數 ANY_VALUE()
,它會從集合中傳回任何值(Vik Fearing)
新增函數 random_normal()
以提供常態分佈的隨機數字(Paul Ramsey)
新增誤差函數 erf()
及其補數 erfc()
(Dean Rasheed)
改善數值 power()
對於整數指數的準確度(Dean Rasheed)
新增 XMLSERIALIZE()
選項 INDENT
以美化列印其輸出(Jim Jones)
將 pg_collation_actual_version()
變更為傳回預設排序的合理值(Jeff Davis)
先前會傳回 NULL
。
允許 pg_read_file()
和 pg_read_binary_file()
忽略不存在的檔案 (Kyotaro Horiguchi)
將位元組規格 (B
) 新增至 pg_size_bytes()
(Peter Eisentraut)
允許 to_reg
* 函式接受數字 OID 作為輸入 (Tom Lane)
新增在 PL/pgSQL 中取得目前函式 OID 的功能 (Pavel Stehule)
新增 libpq 連線選項 require_auth
來指定可接受的身分驗證方法清單 (Jacob Champion)
這也可拿來禁止特定的身分驗證方法。
允許隨機選取多個 libpq 指定的主機 (Jelte Fennema)
這可透過 load_balance_hosts=random
來啟用,並可拿來進行負載平衡。
新增 libpq 選項 sslcertmode
來控制用戶端憑證的傳輸 (Jacob Champion)
選項值為 disable
、allow
和 require
。
允許 libpq 使用系統憑證池來進行憑證驗證 (Jacob Champion, Thomas Habets)
這可透過 sslrootcert=system
來啟用,這也會啟用 sslmode=verify-full
。
允許 ECPG
變數宣告使用與未保留 SQL 關鍵字相符的 typedef 名稱(Tom Lane)
此變更可防止與 C typedef 名稱相符的關鍵字在後續 EXEC SQL
區塊中被當作關鍵字處理。
允許 psql 控制展開格式中標題列的最大寬度(Platon Pronko)
這由 xheader_width
控制。
新增 psql 命令 \drg
來顯示角色成員資格詳細資料(Pavel Luzanov)
已從 \du
和 \dg
移出 Member of
輸出欄位,因為這個新命令會更詳細地顯示此資訊。
允許 psql 的存取權限命令顯示系統物件(Nathan Bossart)
新增 FOREIGN
指定到 psql \d+
以表示外部資料表子層級和分割(Ian Lawrence Barwick)
防止 \df+
顯示函數原始碼(Isaac Morland)
函數主體較容易使用 \sf
查看。
允許 psql 使用延伸查詢通訊協定提交查詢(Peter Eisentraut)
傳遞引數給此類查詢時使用新的 psql \bind
命令。
允許 psql \watch
限制執行次數(Andrey Borodin)
指定 \watch
選項時,現在可以命名這些選項。
偵測 psql \watch
的無效值,並允許零表示不延遲(Andrey Borodin)
允許 psql 腳本取得 shell 命令和查詢的結束狀態(Corey Huinker、Tom Lane)
新的 psql 控制變數為 SHELL_ERROR
和 SHELL_EXIT_CODE
。
各種 psql 標籤完成改進(Vignesh C、Aleksander Alekseev、Dagfinn Ilmari Mannsåker、Shi Yu、Michael Paquier、Ken Kato、Peter Smith)
新增 pg_dump 控制傾印子表格和分區(Gilles Darold)
新的選項為 --table-and-children
、--exclude-table-and-children
和 --exclude-table-data-and-children
。
新增 LZ4 和 Zstandard 壓縮到 pg_dump(Georgios Kokolatos、Justin Pryzby)
允許 pg_dump 和 pg_basebackup 使用 long
模式進行壓縮(Justin Pryzby)
改進 pg_dump 以接受更一致的壓縮語法(Georgios Kokolatos)
選項如 --compress=gzip:5
。
新增 initdb 選項,用於設定伺服器變數,以供 initdb 和所有未來伺服器啟動期間使用(Tom Lane)
選項為 -c name=value
。
新增選項至 createuser 以控制更多使用者選項(Shinya Kato)
具體而言,新的選項控制有效日期、繞過列級安全性,以及角色成員資格。
捨棄 createuser 選項 --role
(Nathan Bossart)
此選項很容易與新的 createuser 角色成員資格選項混淆,因此已新增選項 --member-of
,具有相同功能。仍可以使用 --role
選項。
允許控制 vacuumdb 架構處理(Gilles Darold)
這些由選項 --schema
和 --exclude-schema
控制。
讓 pg_upgrade 設定新的叢集的語言環境和編碼(Jeff Davis)
這消除了使用相同語言環境和編碼設定建立新叢集的要求。
新增 pg_upgrade 選項,用於指定預設傳輸模式(Peter Eisentraut)
選項為 --copy
。
改善 pg_basebackup 以接受數字壓縮選項 (Georgios Kokolatos、Michael Paquier)
現在支援 --compress=server-5
等選項。
修正 pg_basebackup 以處理儲存在 PGDATA
目錄中的表空間 (Robert Haas)
新增 pg_waldump 選項 --save-fullpage
以傾印全頁面影像 (David Christensen)
允許 pg_waldump 選項 -t
/--timeline
接受十六進位值 (Peter Eisentraut)
新增支援進度回報至 pg_verifybackup (Masahiko Sawada)
允許 pg_rewind 正確追蹤時間軸變更 (Heikki Linnakangas)
先前如果在時間軸切換後但在檢查點發出前執行 pg_rewind,它可能會錯誤地判定不需要倒轉。
讓 pg_receivewal 和 pg_recvlogical 在 SIGTERM
上乾淨地退出 (Christoph Berg)
此訊號通常由 systemd 使用。
預設建置 ICU 支援 (Jeff Davis)
這會移除 建置旗標 --with-icu
,並新增旗標 --without-icu
。
新增對 x86-64 架構上 SSE2 (串流 SIMD 延伸 2) 向量運算的支援 (John Naylor)
新增對 ARM 架構上進階 SIMD (單一指令多重資料) (NEON) 指令的支援 (Nathan Bossart)
讓使用 MSVC 建置的 Windows 二進位檔案使用 RandomizedBaseAddress
(ASLR) (Michael Paquier)
這已在 MinGW 建置中啟用。
預設防止延伸函式庫匯出其符號 (Andres Freund、Tom Lane)
現在必須明確標記需要從核心後端或其他延伸函式庫呼叫的函式 PGDLLEXPORT
。
需要 Windows 10 或更新版本 (Michael Paquier、Juan José Santamaría Flecha)
先前支援 Windows Vista 和 Windows XP。
需要 Perl 5.14 或更新版本(John Naylor)
需要 Bison 2.3 或更新版本(John Naylor)
需要 Flex 2.5.35 或更新版本(John Naylor)
需要 MIT Kerberos 以支援 GSSAPI(Stephen Frost)
移除對 Visual Studio 2013 的支援(Michael Paquier)
移除對 HP-UX 的支援(Thomas Munro)
移除對 HP/Intel Itanium 的支援(Thomas Munro)
移除對 M68K、M88K、M32R 和 SuperH CPU 架構的支援(Thomas Munro)
移除 libpq 對 SCM 憑證驗證的支援(Michael Paquier)
PostgresSQL 9.1 中已移除後端對此驗證方法的支援。
新增 meson 建置系統(Andres Freund、Nazir Bilal Yavuz、Peter Eisentraut)
最終將取代 Autoconf 和基於 Windows 的 MSVC 建置系統。
允許控制建置系統所使用的 openssl 二進位檔位置(Peter Eisentraut)
讓尋找 openssl 程式成為 configure 或 meson 選項
新增建置選項以允許測試小型表格區塊大小(Andres Freund)
建置選項為 --with-segsize-blocks
和 -Dsegsize_blocks
。
新增 pgindent 選項(Andrew Dunstan)
新選項為 --show-diff
、--silent-diff
、--commit
和 --help
,並允許多個 --exclude
選項。此外,還需要明確指定 typedef 檔案。選項 --code-base
和 --build
也已移除。
將 pg_bsd_indent 原始碼新增至主樹(Tom Lane)
改善 make_ctags 和 make_etags(Yugo Nagata)
調整 pg_attribute
欄位以提升效率(Peter Eisentraut)
改善在布林欄位上使用基於擴充功能的索引(Zongliang Quan、Tom Lane)
為 fuzzystrmatch 新增對 Daitch-Mokotoff Soundex 的支援(Dag Lem)
允許 auto_explain 記錄傳遞給參數化陳述式的值 (Dagfinn Ilmari Mannsåker)
這會影響使用伺服器端 PREPARE
/EXECUTE
和用戶端解析/繫結的查詢。記錄由 auto_explain.log_parameter_max_length
控制;預設情況下,查詢參數會在沒有長度限制的情況下記錄。
讓 auto_explain 的 log_verbose
模式遵循 compute_query_id
的值 (Atsushi Torikoshi)
先前即使已啟用 compute_query_id
,log_verbose
也不會顯示查詢識別碼。
將 ltree 標籤的最大長度從 256 變更為 1000,並允許連字號 (Garen Torikian)
讓 pg_stat_statements
標準化用於公用程式命令的常數 (Michael Paquier)
先前常數會出現在佔位符中,例如 $1
。
新增 pg_walinspect 函式 pg_get_wal_block_info()
以報告 WAL 區塊資訊 (Michael Paquier, Melanie Plageman, Bharath Rupireddy)
變更 pg_walinspect 函式 pg_get_wal_records_info()
和 pg_get_wal_stats()
解釋結束 LSN 的方式 (Bharath Rupireddy)
先前表示不存在 WAL 位置的結束 LSN 會產生錯誤,而現在會將它們解釋為 WAL 的結束。
在 pg_walinspect 和 pg_waldump 中新增 WAL 記錄的詳細說明 (Melanie Plageman, Peter Geoghegan)
新增 pageinspect 函式 bt_multi_page_stats()
以報告多個頁面的統計資料 (Hamid Akhtar)
這類似於 bt_page_stats()
,但它可以報告範圍內的頁面。
新增空範圍輸出欄位至 pageinspect 函式 brin_page_items()
(Tomas Vondra)
重新設計封存模組以提高彈性(Nathan Bossart)
初始化變更將需要更新為舊版 Postgres 編寫的模組。
修正不正確的 pg_stat_statements 列追蹤延伸查詢協定陳述式(Sami Imseih)
新增 pg_buffercache 函式 pg_buffercache_usage_counts()
以報告使用總計(Nathan Bossart)
新增 pg_buffercache 函式 pg_buffercache_summary()
以報告摘要緩衝統計資料(Melih Mutlu)
允許使用新語法 @extschema:referenced_extension_name@
在延伸指令碼中參照所需延伸的架構(Regina Obe)
允許使用 no_relocate
將所需延伸標記為不可重新配置(Regina Obe)
這允許 @extschema:referenced_extension_name@
在延伸的生命週期內被視為常數。
允許 postgres_fdw 並行中斷(Etsuro Fujita)
這已啟用 postgres_fdw 選項 parallel_abort
。
讓 ANALYZE
在外部 postgres_fdw 表格上更有效率(Tomas Vondra)
postgres_fdw 選項 analyze_sampling
控制抽樣方法。
限制 postgres_fdw 中 reg
* 型別常數的出貨,僅限於參照內建物件或標記為可出貨的延伸(Tom Lane)
讓 postgres_fdw 和 dblink 在建立連線期間處理中斷(Andres Freund)
以下人員(按字母順序)已作為修補程式作者、提交者、審查者、測試人員或問題報告者,為此版本做出貢獻。
Abhijit Menon-Sen |
Adam Mackler |
Adrian Klaver |
Ahsan Hadi |
Ajin Cherian |
Ajit Awekar |
Alan Hodgson |
Aleksander Alekseev |
Alex Denman |
Alex Kozhemyakin |
Alexander Korolev |
Alexander Korotkov |
Alexander Lakhin |
Alexander Pyhalov |
Alexey Borzov |
Alexey Ermakov |
Alexey Makhmutov |
Álvaro Herrera |
Amit Kapila |
Amit Khandekar |
Amit Langote |
Amul Sul |
Anastasia Lubennikova |
Anban Company |
Andreas Dijkman |
Andreas Karlsson |
Andreas Scherbaum |
Andrei Zubkov |
Andres Freund |
Andrew Alsup |
Andrew Bille |
Andrew Dunstan |
Andrew Gierth |
Andrew Kesper |
Andrey Borodin |
Andrey Lepikhov |
Andrey Sokolov |
Ankit Kumar Pandey |
Ante Kresic |
Anton Melnikov |
Anton Sidyakin |
Anton Voloshin |
Antonin Houska |
Arne Roland |
Artem Anisimov |
Arthur Zakirov |
Ashutosh Bapat |
Ashutosh Sharma |
Asim Praveen |
Atsushi Torikoshi |
Ayaki Tachikake |
Balazs Szilfai |
Benoit Lobréau |
Bernd Helmle |
Bertrand Drouvot |
Bharath Rupireddy |
Bilva Sanaba |
Bob Krier |
Boris Zentner |
Brad Nicholson |
Brar Piening |
Bruce Momjian |
Bruno da Silva |
Carl Sopchak |
Cary Huang |
Changhong Fei |
Chris Travers |
Christoph Berg |
Christophe Pettus |
Corey Huinker |
Craig Ringer |
Curt Kolovson |
Dag Lem |
Dagfinn Ilmari Mannsåker |
Daniel Gustafsson |
Daniel Vérité |
Daniel Watzinger |
Daniel Westermann |
Daniele Varrazzo |
Daniil Anisimov |
Danny Shemesh |
Dave Page |
David Christensen |
David G. Johnston |
David Geier |
David Gilman |
David Kimura |
David Rowley |
David Steele |
David Turon |
David Zhang |
Davinder Singh |
Dean Rasheed |
Denis Laxalde |
Dilip Kumar |
Dimos Stamatakis |
Dmitriy Kuzmin |
Dmitry Astapov |
德米特里·多爾戈夫 |
德米特里·科瓦爾 |
李東旭 |
劉冬明 |
德魯·德沃爾特 |
鄧肯·桑茲 |
埃德·馬斯特 |
葉戈爾·欽迪亞斯金 |
葉卡捷琳娜·基里亞諾娃 |
艾琳娜·因德魯普斯卡婭 |
埃馬紐埃爾·昆塞羅特 |
埃里克·穆塔 |
埃里克·賴克爾斯 |
埃爾基·埃薩爾 |
埃爾溫·布蘭德施泰特 |
藤田悅郎 |
尤金尼·朱日涅夫 |
尤拉·塔維拉 |
埃文·瓊斯 |
埃夫根尼·莫羅佐夫 |
法布里齊奧·德·羅耶斯·梅洛 |
法里亞斯·德·奧利維拉 |
弗洛林·艾里昂 |
弗朗茨-約瑟夫·法伯 |
加倫·托里奇安 |
喬治奧斯·科科拉托斯 |
吉爾斯·達羅爾德 |
格雷格·斯塔克 |
紀堯姆·勒拉格 |
岡納·布魯斯 |
岡納·莫林 |
古吉特·辛格 |
王海陽 |
唐海英 |
哈米德·阿克塔爾 |
漢斯·布施曼 |
吳浩 |
黑田早人 |
希思·洛德 |
海基·林納坎加斯 |
希曼舒·烏帕迪亞亞 |
河內久裕 |
宋宏宇 |
胡伯特·盧巴切夫斯基 |
洪阮 |
伊恩·巴威克 |
伊布拉爾·艾哈邁德 |
伊利亞·格拉德舍夫 |
伊利亞·涅納舍夫 |
艾薩克·莫蘭德 |
以色列·巴特·魯比奧 |
雅各布·錢皮恩 |
雅各布·斯佩德爾 |
海梅·卡薩諾瓦 |
雅庫布·瓦爾塔克 |
詹姆斯·科爾曼 |
詹姆斯·英福姆 |
詹姆斯·范恩斯 |
揚·維克 |
李賈平 |
吉萬·拉德 |
傑夫·戴維斯 |
傑夫·簡斯 |
讓-紀堯姆·德·羅爾泰 |
傑爾特·芬內馬 |
何健 |
吉姆·瓊斯 |
陳金寶 |
喬·康威 |
喬爾·雅各布森 |
約翰·內勒 |
喬納森·卡茨 |
約瑟夫·西馬內克 |
約瑟夫·科沙科夫 |
胡安·何塞·桑塔瑪麗亞·弗萊查 |
朱利安·魯豪德 |
朱利安·羅澤 |
趙俊旺 |
賈斯汀·普里茲比 |
賈斯汀·張 |
卡琳娜·利特斯克維奇 |
卡爾·O·平克 |
黑田啟介 |
加藤健 |
凱文·麥基賓 |
基蘭·麥卡斯克 |
柯克·沃拉克 |
康斯坦丁·克尼日尼克 |
柴垣浩志 |
川本浩太郎 |
劉奎 |
堀口恭太郎 |
拉克希米·納拉亞南·斯里塔 |
勞倫斯·帕里 |
勞倫茨·阿爾貝 |
盧卡·費拉里 |
盧卡斯·菲特爾 |
馬切克·薩克雷達 |
馬格努斯·哈甘德 |
Maja Zaloznik |
Marcel Hofstetter |
Marina Polyakova |
Mark Dilger |
Marko Tiikkaja |
Markus Winand |
Martijn van Oosterhout |
Martin Jurca |
Martin Kalcher |
Mary Xu |
Masahiko Sawada |
Masahiro Ikeda |
Masao Fujii |
Mason Sharp |
Matheus Alcantara |
Mats Kindahl |
Matthias van de Meent |
Matthijs van der Vleuten |
Maxim Orlov |
Maxim Yablokov |
Mehmet Emin Karakas |
Melanie Plageman |
Melih Mutlu |
Micah Gates |
Michael Banck |
Michael Paquier |
Michail Nikolaev |
Michel Pelletier |
Mike Oh |
Mikhail Gribkov |
Mingli Zhang |
Miroslav Bendik |
Mitsuru Hinata |
Myo Wai Thant |
Naeem Akhter |
Naoki Okano |
Nathan Bossart |
Nazir Bilal Yavuz |
Neha Sharma |
Nick Babadzhanian |
Nicola Contu |
Nikhil Shetty |
Nikita Glukhov |
Nikolay Samokhvalov |
Nikolay Shaplov |
Nishant Sharma |
Nitin Jadhav |
Noah Misch |
Noboru Saito |
Noriyoshi Shinoda |
Nuko Yokohama |
Oleg Bartunov |
Oleg Tselebrovskiy |
Olly Betts |
Onder Kalaci |
Onur Tirtir |
Pablo Federico |
Palle Girgensohn |
Paul Guo |
Paul Jungwirth |
Paul Ramsey |
Pavel Borisov |
Pavel Kulakov |
Pavel Luzanov |
Pavel Stehule |
Peifeng Qiu |
Peter Eisentraut |
Peter Geoghegan |
Peter Smith |
Phil Florent |
Philippe Godfrin |
Platon Pronko |
Przemyslaw Sztoch |
Rachel Heaton |
Ranier Vilela |
Regina Obe |
Reid Thompson |
Reiner Peterke |
Richard Guo |
Riivo Kolka |
Rishu Bagga |
Robert Haas |
Robert Sjöblom |
Robert Treat |
Roberto Mello |
Robins Tharakan |
Roman Zharkov |
Ronan Dunklau |
Rushabh Lathia |
Ryo Matsumura |
Samay Sharma |
Sami Imseih |
Sandeep Thakkar |
Sandro Santilli |
Sebastien Flaesch |
Sébastien Lardière |
Sehrope Sarkuni |
Sergey Belyashov |
Sergey Pankov |
Sergey Shinderuk |
Shi Yu |
Shinya Kato |
Sho Kato |
Shruthi Gowda |
Shveta Mallik |
Simon Riggs |
Sindy Senorita |
Sirisha Chamarthi |
Sravan Kumar |
Stéphane Tachoires |
Stephen Frost |
Steve Chavez |
Stone Tickle |
Sven Klemm |
高道大通 |
出井武志 |
中森達裕 |
石井達夫 |
Teja Mupparti |
Tender Wang |
Teodor Sigaev |
Thiago Nunes |
Thom Brown |
Thomas Habets |
Thomas Mc Kay |
Thomas Munro |
Tim Carey-Smith |
Tim Field |
Timo Stolz |
Tom Lane |
Tomas Vondra |
Tor Erik Linnerud |
Torsten Förtsch |
Tristan Partin |
Troy Frericks |
Tushar Ahuja |
Valerie Woolard |
Vibhor Kumar |
Victor Spirin |
Victoria Shepard |
Vignesh C |
Vik Fearing |
Vitaly Burovoy |
Vitaly Davydov |
王偉 |
曾文靜 |
Whale Song |
Will Mortensen |
Wolfgang Walther |
文欣 |
郭星 |
徐興旺 |
趙雪靜 |
雷延亮 |
莫友繆 |
永田裕吾 |
Yura Sokolov |
桂木優太 |
甄明陽 |
李政 |
于志宏 |
侯志傑 |
全宗良 |
姜祖明 |
如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步說明的地方,請使用此表單回報文件問題。