發布日期: 2024-09-26
PostgreSQL 17 包含許多新功能和增強功能,包括
用於 VACUUM
的新記憶體管理系統,可減少記憶體消耗並提高整體清理效能。
新的SQL/JSON功能,包含建構子、識別函數,以及 JSON_TABLE()
函數,該函數可將 JSON 資料轉換為表格表示。
各種查詢效能改進,包含使用串流 I/O 的循序讀取、高並發下的寫入吞吐量,以及在 btree 索引中搜尋多個值。
邏輯複製增強功能,包括
故障轉移控制
pg_createsubscriber,一個從實體備份建立邏輯副本的工具
pg_upgrade 現在會保留發布者的邏輯複製槽和訂閱者的完整訂閱狀態。這將允許升級到未來的重大版本,以繼續邏輯複製,而無需複製來重新同步。
新的客戶端連線選項,sslnegotiation=direct
,執行直接 TLS 握手以避免往返協商。
pg_basebackup 現在支援增量備份。
COPY
新增了一個選項 ON_ERROR ignore
,允許複製操作在發生錯誤時繼續。
以上項目和 PostgreSQL 17 的其他新功能將在以下各節中詳細說明。
對於希望從任何先前版本遷移資料的使用者,需要使用 pg_dumpall 進行傾印/還原,或使用 pg_upgrade 或邏輯複製。 有關遷移到新的主要版本的常規資訊,請參閱第 18.6 節。
版本 17 包含許多可能會影響與先前版本相容性的變更。 請注意以下不相容性
變更函數以在維護操作期間使用安全的 search_path (Jeff Davis) § §
這可以防止維護操作(ANALYZE
、CLUSTER
、CREATE INDEX
、CREATE MATERIALIZED VIEW
、REFRESH MATERIALIZED VIEW
、REINDEX
或 VACUUM
)執行不安全的存取。 運算式索引和物化視圖使用的需要參考非預設模式的函數,必須在函數建立期間指定搜尋路徑。
限制 ago
只能出現在 interval
值的結尾 (Joseph Koshakow) § §
此外,防止空的間隔單位多次出現。
移除伺服器變數 old_snapshot_threshold (Thomas Munro) §
此變數允許清理移除可能仍然對執行中的交易可見的列,如果在之後存取,會導致「快照過舊」錯誤。 如果找到改進的實作方式,此功能可能會在之後重新新增到 PostgreSQL。
變更 SET SESSION AUTHORIZATION
對初始工作階段使用者的超級使用者狀態的處理方式 (Joseph Koshakow) §
新的行為基於發出 SET SESSION AUTHORIZATION
命令時,工作階段使用者的超級使用者狀態,而不是連線時的超級使用者狀態。
移除模擬每個資料庫使用者的功能 (Nathan Bossart) §
很少使用此功能 db_user_namespace
。
移除 adminpack contrib 擴充功能 (Daniel Gustafsson) §
這曾經被現在已終止支援的 pgAdmin III 使用。
在 Windows 上移除 wal_sync_method 值 fsync_writethrough
(Thomas Munro) §
在 Windows 上,此值與 fsync
相同。
變更兩個檔案邊界處理WAL檔案名稱函數 (Kyotaro Horiguchi, Andres Freund, Bruce Momjian) §
當LSN在檔案區段邊界上時,pg_walfile_name()
和 pg_walfile_name_offset()
函數過去會報告先前的區段號碼;現在它會傳回目前的LSN區段。LSN區段。
移除伺服器變數 trace_recovery_messages
,因為不再需要 (Bharath Rupireddy) §
移除 資訊綱要 欄位 element_types
.domain_default
(Peter Eisentraut) §
變更 pgrowlocks 鎖定模式輸出標籤 (Bruce Momjian) §
從 pg_stat_bgwriter
移除 buffers_backend
和 buffers_backend_fsync
(Bharath Rupireddy) §
這些欄位被認為與 pg_stat_io
中相似的欄位重複。
重新命名 pg_stat_statements 的 I/O 區塊讀取/寫入計時統計欄位 (Nazir Bilal Yavuz) §
這會將 blk_read_time
重新命名為 shared_blk_read_time
,並將 blk_write_time
重新命名為 shared_blk_write_time
。
變更 pg_attribute
.attstattarget
和 pg_statistic_ext
.stxstattarget
,將預設統計目標表示為 NULL
(Peter Eisentraut) § §
將 pg_collation
.colliculocale
重新命名為 colllocale
,並將 pg_database
.daticulocale
重新命名為 datlocale
(Jeff Davis) §
將 pg_stat_progress_vacuum
欄位 max_dead_tuples
重新命名為 max_dead_tuple_bytes
,將 num_dead_tuples
重新命名為 num_dead_item_ids
,並新增 dead_tuple_bytes
(Masahiko Sawada) § §
重新命名SLRU系統檢視表 pg_stat_slru
中的欄位 (Alvaro Herrera) §
pg_stat_reset_slru()
接受的欄位名稱也已變更。
您將在下面找到 PostgreSQL 17 和前一個主要版本之間的變更的詳細說明。
允許最佳化工具透過考慮先前列輸出子句中引用的欄位的統計資訊和排序順序來改善CTE計畫 (Jian Guo, Richard Guo, Tom Lane) § §
改善 IS NOT NULL
和 IS NULL
查詢限制的最佳化 (David Rowley, Richard Guo, Andy Fan) § §
從 NOT NULL
欄位的查詢中移除 IS NOT NULL
限制,如果指定了 IS NULL
,則消除對 NOT NULL
欄位的掃描。
允許對 IS [NOT] UNKNOWN
條件式的布林欄位進行分割區修剪 (David Rowley) §
改善使用包含運算子 <@ 和 @> 時的範圍值最佳化 (Kim Johan Andersson, Jian He) §
允許將相關的 IN
子查詢轉換為聯結 (Andy Fan, Tom Lane) §
改善分割區表、繼承父系和 UNION ALL
查詢上 LIMIT
子句的最佳化 (Andy Fan, David Rowley) §
允許在更多情況下以平行方式執行查詢節點 (Tom Lane) §
允許內部排序 GROUP BY
欄位以符合 ORDER BY
(Andrei Lepikhov, Teodor Sigaev) §
可以使用伺服器變數 enable_group_by_reordering 停用此功能。
允許 UNION
(不含 ALL
) 使用 MergeAppend (David Rowley) §
修正 MergeAppend 計畫以更準確地計算需要排序的列數 (Alexander Kuzmenkov) §
允許 GiST 和 SP-GiST 索引成為增量排序的一部分 (Miroslav Bendik) §
這對於 ORDER BY
子句特別有用,其中第一個欄位具有 GiST 和 SP-GiST 索引,而其他欄位則沒有。
將欄位新增至 pg_stats
以報告範圍類型直方圖資訊 (Egor Rogov, Soumyadeep Chakraborty) §
允許 vacuum 更有效率地移除和凍結 tuple (Melanie Plageman, Heikki Linnakangas) §
WAL由 vacuum 引起的流量也更緊湊。
允許 vacuum 更有效率地儲存 tuple 參考 (Masahiko Sawada, John Naylor) § § § §
此外,當 maintenance_work_mem 或 autovacuum_work_mem 較高時,vacuum 不再靜默地限制為 1 GB 記憶體。
最佳化沒有索引的關係的 vacuum (Melanie Plageman) §
將預設 vacuum_buffer_usage_limit 增加到 2MB (Thomas Munro) §
改善檢查具有許多成員的角色時的效能 (Nathan Bossart) §
改善競爭激烈的WAL寫入的效能 (Bharath Rupireddy) §
改善將大型資料區塊傳輸到用戶端時的效能 (Melih Mutlu) §
允許使用新的系統變數 io_combine_limit 對檔案系統讀取進行分組 (Thomas Munro, Andres Freund, Melanie Plageman, Nazir Bilal Yavuz) § § §
建立系統檢視 pg_stat_checkpointer
(Bharath Rupireddy, Anton A. Melnikov, Alexander Korotkov) § § §
相關欄位已從 pg_stat_bgwriter
移除,並新增至此新的系統檢視。
改善重設統計資訊的控制 (Atsushi Torikoshi, Bharath Rupireddy) § § §
允許 pg_stat_reset_shared()
(不含引數) 和 pg_stat_reset_shared(NULL
) 重設所有共用統計資訊。允許 pg_stat_reset_shared('slru') 和 pg_stat_reset_slru()
(不含引數) 重設SLRU統計資訊,這已可透過 pg_stat_reset_slru(NULL) 達成。
新增與以下項目相關的日誌訊息WAL從備份復原 (Andres Freund) §
新增 log_connections 日誌行,用於 trust
連線 (Jacob Champion) §
新增日誌訊息,以報告 walsender 取得和釋放複製槽 (Bharath Rupireddy) §
這由伺服器變數 log_replication_commands 啟用。
新增系統檢視 pg_wait_events
,報告等待事件類型 (Bertrand Drouvot) §
這有助於將說明新增至 pg_stat_activity
中報告的等待事件。
允許 vacuum 報告索引處理的進度 (Sami Imseih) §
這會顯示在系統檢視 pg_stat_progress_vacuum
欄位 indexes_total
和 indexes_processed
中。
允許授與執行維護作業的權利 (Nathan Bossart) §
此權限可以使用 MAINTAIN
權限在每個資料表上授與,也可以透過 pg_maintain
預先定義的角色在每個角色上授與。允許的操作為 VACUUM
、ANALYZE
、REINDEX
、REFRESH MATERIALIZED VIEW
、CLUSTER
和 LOCK TABLE
。
允許具有 pg_monitor
成員資格的角色執行 pg_current_logfile()
(Pavlo Golub, Nathan Bossart) §
新增系統變數 allow_alter_system,以禁止 ALTER SYSTEM
(Jelte Fennema-Nio, Gabriele Bartolini) §
允許 ALTER SYSTEM
設定無法辨識的自訂伺服器變數 (Tom Lane) §
這也可以透過 GRANT ON PARAMETER
達成。
新增伺服器變數 transaction_timeout,以限制交易的持續時間 (Andrey Borodin, Japin Li, Junwang Zhao, Alexander Korotkov) § § §
新增內建的平台獨立定序提供者 (Jeff Davis) § § § §
這支援 C
和 C.UTF-8
定序。
新增伺服器變數 huge_pages_status,以報告 Postgres 使用巨型頁面的情況 (Justin Pryzby) §
當 huge_pages 設定為 try
時,這會很有用。
新增伺服器變數以停用事件觸發器 (Daniel Gustafsson) §
設定 event_triggers 允許暫時停用事件觸發器以進行偵錯。
允許配置 SLRU 快取大小 (Andrey Borodin, Dilip Kumar, Alvaro Herrera) §
新的伺服器變數為 commit_timestamp_buffers、multixact_member_buffers、multixact_offset_buffers、notify_buffers、serializable_buffers、subtransaction_buffers 和 transaction_buffers。commit_timestamp_buffers、transaction_buffers 和 subtransaction_buffers 會隨著 shared_buffers 自動擴展。
新增對增量檔案系統備份的支援 (Robert Haas, Jakub Wartak, Tomas Vondra) § §
可以使用 pg_basebackup 的新增選項 --incremental
建立增量備份。新增的應用程式 pg_combinebackup 允許操作基礎和增量檔案系統備份。
允許建立WAL摘要檔案 (Robert Haas, Nathan Bossart, Hubert Depesz Lubaczewski) § § § §
這些檔案記錄了在 LSN 範圍內已變更的區塊編號,並且對於增量檔案系統備份很有用。這由伺服器變數 summarize_wal 和 wal_summary_keep_time 控制,並透過 pg_available_wal_summaries()
、pg_wal_summary_contents()
和 pg_get_wal_summarizer_state()
進行檢視。
將系統識別碼新增到檔案系統備份清單檔案 (Amul Sul) §
這有助於偵測無效的WAL用法。
允許在 pg_basebackup 將連線資訊寫入 postgresql.auto.conf
時,寫入連線字串值 dbname
(Vignesh C, Hayato Kuroda) §
新增欄位 pg_replication_slots
.invalidation_reason
,以報告無效插槽的原因 (Shveta Malik, Bharath Rupireddy) § §
新增欄位 pg_replication_slots
.inactive_since
,以報告插槽的非活動持續時間 (Bharath Rupireddy) § § §
新增函式 pg_sync_replication_slots()
以同步邏輯複寫插槽 (Hou Zhijie, Shveta Malik, Ajin Cherian, Peter Eisentraut) § §
新增應用程式 pg_createsubscriber,以從實體待命伺服器建立邏輯複本 (Euler Taveira) §
讓 pg_upgrade 遷移有效的邏輯插槽和訂閱 (Hayato Kuroda, Hou Zhijie, Vignesh C, Julien Rouhaud, Shlok Kyal) § §
這允許邏輯複寫在升級後快速繼續。這僅適用於版本 17 或更高版本的舊 PostgreSQL 叢集。
啟用 邏輯插槽的容錯移轉 (Hou Zhijie, Shveta Malik, Ajin Cherian) §
這由 pg_create_logical_replication_slot()
的可選第五個參數控制。
新增伺服器變數 sync_replication_slots 以啟用容錯移轉邏輯插槽同步 (Shveta Malik, Hou Zhijie, Peter Smith) § §
將邏輯複寫容錯移轉控制新增到 CREATE/ALTER SUBSCRIPTION
(Shveta Malik, Hou Zhijie, Ajin Cherian) § §
允許邏輯複寫變更的應用程式在訂閱者上使用 雜湊索引 (Hayato Kuroda) §
先前只能將 btree 索引用於此目的。
如果訂閱擁有者的超級使用者權限被撤銷,則重新啟動套用工作者 (Vignesh C) §
這會強制重新驗證。
將 flush
選項新增到 pg_logical_emit_message()
(Michael Paquier) §
這使訊息具有持久性。
允許指定必須先同步才能對訂閱者可見的實體待命伺服器 (Hou Zhijie, Shveta Malik) § §
新的伺服器變數是 synchronized_standby_slots。
將工作者類型欄位新增到 pg_stat_subscription
(Peter Smith) §
新增 COPY
選項 ON_ERROR ignore
以捨棄錯誤列 (Damir Belyalov, Atsushi Torikoshi, Alex Shulgin, Jian He, Yugo Nagata) § § § §
預設行為是 ON_ERROR stop
。
新增 COPY
選項 LOG_VERBOSITY
,它會報告 COPY FROM
忽略的錯誤列 (Bharath Rupireddy) §
允許 COPY FROM
報告處理期間跳過的列數 (Atsushi Torikoshi) §
這會出現在系統檢視欄位 pg_stat_progress_copy
.tuples_skipped
中。
在 COPY FROM
中,允許輕鬆指定所有欄位都應強制為 null 或 not null (Zhang Mingli) §
允許分割資料表具有識別欄位 (Ashutosh Bapat) §
允許在分割資料表上使用 排除限制 (Paul A. Jungwirth) §
只要排除限制比較分割區索引鍵欄位的相等性,其他欄位就可以使用排除限制專用的比較。
新增更清楚的 ALTER TABLE
方法,以將欄位設定為預設統計目標 (Peter Eisentraut) §
新的語法是 ALTER TABLE ... SET STATISTICS DEFAULT
;仍然支援使用 SET STATISTICS -1
。
允許 ALTER TABLE
變更欄位的產生式表示式 (Amul Sul) §
語法是 ALTER TABLE ... ALTER COLUMN ... SET EXPRESSION
。
允許在分割資料表上指定資料表存取方法 (Justin Pryzby, Soumyadeep Chakraborty, Michael Paquier) § §
為 ALTER TABLE .. SET ACCESS METHOD
增加 DEFAULT
設定 (Michael Paquier) §
允許 EXPLAIN
報告最佳化器的記憶體使用情況 (Ashutosh Bapat) §
該選項名為 MEMORY
。
新增 EXPLAIN
選項 SERIALIZE
,以報告轉換資料以進行網路傳輸的成本 (Stepan Rutz, Matthias van de Meent) §
將本地 I/O 區塊讀/寫時序統計資訊新增到 EXPLAIN
的 BUFFERS
輸出中 (Nazir Bilal Yavuz) §
改進 EXPLAIN
對 SubPlan 節點和輸出參數的顯示 (Tom Lane, Dean Rasheed) §
新增JIT deform_counter
詳細資訊到 EXPLAIN
(Dmitry Dolgov) §
允許 interval
資料類型支援 +/-infinity
值 (Joseph Koshakow, Jian He, Ashutosh Bapat) §
允許使用透過 ALTER TYPE
新增的 ENUM
,如果該類型是在同一交易中建立的 (Tom Lane) §
先前不允許這樣做。
新增函式 JSON_TABLE()
,將 JSON
資料轉換為表格表示法 (Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Jian He) § §
此函式可以在 SELECT
查詢的 FROM
子句中用作元組來源。
新增SQL/JSON建構函式 JSON()
、JSON_SCALAR()
和 JSON_SERIALIZE()
(Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote) §
新增SQL/JSON查詢函式 JSON_EXISTS()
、JSON_QUERY()
和 JSON_VALUE()
(Nikita Glukhov, Teodor Sigaev, Oleg Bartunov, Alexander Korotkov, Andrew Dunstan, Amit Langote, Peter Eisentraut, Jian He) § § § § §
新增 jsonpath 方法,將 JSON
值轉換為其他 JSON
資料類型 (Jeevan Chalke) §
jsonpath 方法為 .bigint()
、.boolean()
、.date()
、.decimal([precision [, scale]])
、.integer()
、.number()
、.string()
、.time()
、.time_tz()
、.timestamp()
和 .timestamp_tz()
。
新增 to_timestamp()
時區格式說明符 (Tom Lane) §
TZ
接受時區縮寫或數值偏移量,而 OF
僅接受數值偏移量。
允許使用 AT LOCAL
指定工作階段時區 (Vik Fearing) §
當從時間戳記值新增和移除時區時,這很有用,而不是指定文字工作階段時區。
新增函式 uuid_extract_timestamp()
和 uuid_extract_version()
以傳回UUID資訊 (Andrey Borodin) §
新增函式以產生指定範圍內的隨機數 (Dean Rasheed) §
這些函式是 random(min, max)
,它們採用 integer
、bigint
和 numeric
類型的值。
新增將整數轉換為二進位和八進位字串的函式 (Eric Radman, Nathan Bossart) §
這些函式為 to_bin()
和 to_oct()
。
新增 Unicode 資訊函式 (Jeff Davis) §
函式 unicode_version()
傳回 Unicode 版本,icu_unicode_version()
傳回ICU版本,而 unicode_assigned()
傳回字元是否已指派 Unicode 代碼點。
新增函式 to_regtypemod()
以傳回類型規格的類型修飾符 (David Wheeler, Erik Wienhold) §
新增 pg_basetype()
函式以傳回網域的基底類型 (Steve Chavez) §
新增函式 pg_column_toast_chunk_id()
以傳回值的 TOAST 識別碼 (Yugo Nagata) §
如果該值未儲存在TOAST.
NULL
。%TYPE
規格參照複合欄位 (Tom Lane) §新增 libpq 函式以變更角色密碼 (Joe Conway) §
新的函式 PQchangePassword()
會在將新密碼傳送到伺服器之前進行雜湊。
新增 libpq 函式以關閉入口網站和預先準備的陳述式 (Jelte Fennema-Nio) §
這些函式為 PQclosePrepared()
、PQclosePortal()
、PQsendClosePrepared()
和 PQsendClosePortal()
。新增 libpqAPI
先前僅支援封鎖、未加密的取消請求。
新增 libpq 函式 PQsocketPoll()
以允許輪詢網路通訊端 (Tristan Partin, Tom Lane) § §
新增 libpq 函式 PQsendPipelineSync()
以傳送管線同步點 (Anton Kirilov) §
這與 PQpipelineSync()
相似,但除非達到輸出緩衝區的大小閾值,否則它不會刷新到伺服器。
新增 libpq 函式 PQsetChunkedRowsMode()
以允許以區塊形式檢索結果 (Daniel Vérité) §允許TLS
連線,而無需網路往返協商 (Greg Stark, Heikki Linnakangas, Peter Eisentraut, Michael Paquier, Daniel Gustafsson) § § § § § § § §這透過用戶端選項 sslnegotiation=direct
啟用,需要ALPN
改善 psql 預設和空權限的顯示方式 (Erik Wienhold, Laurenz Albe) §
指令 \dp
現在為空權限顯示 (none)
;預設仍然顯示為空。
讓反斜線指令遵守 \pset null
(Erik Wienhold, Laurenz Albe) §
先前 \pset null
被忽略。
允許 psql 的 \watch
在傳回最少列數後停止 (Greg Sabino Mullane) §
參數為 min_rows
。
允許使用 control-C 取消 psql 連線嘗試 (Tristan Partin) §
允許 psql 針對非 SELECT
查詢遵守 FETCH_COUNT
(Daniel Vérité) §
允許 pg_dump 的大型物件以批次方式還原 (Tom Lane) §
這允許還原許多大型物件,以避免交易限制並可以平行還原。
新增 pg_dump 選項 --exclude-extension
(Ayush Vatsa) §
允許 pg_dump、pg_dumpall 和 pg_restore 在檔案中指定包含/排除的物件 (Pavel Stehule, Daniel Gustafsson) §
該選項稱為 --filter
。
將 --sync-method
參數新增到多個客戶端應用程式 (Justin Pryzby, Nathan Bossart) §
這些應用程式包括 initdb、pg_basebackup、pg_checksums、pg_dump、pg_rewind 和 pg_upgrade。
新增 pg_restore 選項 --transaction-size
,以允許在交易批次中還原物件 (Tom Lane) §
這允許交易批次的效能優勢,而不會產生過大的交易區塊的問題。
將 pgbench 的除錯模式選項從 -d
變更為 --debug
(Greg Sabino Mullane) §
選項 -d
現在用於資料庫名稱,並且也可以使用新的 --dbname
選項。
新增 pgbench 選項 --exit-on-abort
,以便在任何客戶端中止後退出 (Yugo Nagata) §
新增 pgbench 命令 \syncpipeline
以允許發送同步訊息 (Anthonin Bonnefoy) §
允許 pg_archivecleanup 移除備份歷史檔案 (Atsushi Torikoshi) §
該選項為 --clean-backup-history
。
將一些長選項新增到 pg_archivecleanup (Atsushi Torikoshi) §
長選項包括 --debug
、--dry-run
和 --strip-extension
。
允許 pg_basebackup 和 pg_receivewal 在其連線規格中使用 dbname (Jelte Fennema-Nio) §
這對於對資料庫名稱敏感的連線池非常有用。
新增 pg_upgrade 選項 --copy-file-range
(Thomas Munro) §
這在 Linux 和 FreeBSD 上受到支援。
允許 reindexdb --index
以平行處理來自不同表格的索引 (Maxim Orlov, Svetlana Derevyanko, Alexander Korotkov) §
允許 reindexdb、vacuumdb 和 clusterdb 處理符合模式的所有資料庫中的物件 (Nathan Bossart) § § §
新的選項 --all
控制此行為。
移除對 OpenSSL 1.0.1 的支援 (Michael Paquier) §
使用CPU AVX-512 指令進行位元計數 (Paul Amonson, Nathan Bossart, Ants Aasma) § §
需要 LLVM 10 或更高版本 (Thomas Munro) §
使用原生CRC64 位元 LoongArch CPU 上的指令 (Xudong Yang) §
移除 AIX 支援 (Heikki Linnakangas) §
移除 Microsoft Visual Studio 專用的 PostgreSQL 建置選項 (Michael Paquier) §
Meson 現在是 Visual Studio 建置唯一可用的方法。
移除設定選項 --disable-thread-safety
(Thomas Munro, Heikki Linnakangas) § §
我們現在假設所有支援的平台都有足夠的執行緒支援。
移除 configure 選項 --with-CC
(Heikki Linnakangas) §
設定 CC
環境變數現在是指定編譯器的唯一支援方法。
使用者定義的資料類型接收函數將不再收到以 null 結尾的資料 (David Rowley) §
新增增量 JSON
剖析器,用於處理巨型 JSON
文件 (Andrew Dunstan) §
將最上層的 README
檔案轉換為 Markdown (Nathan Bossart) §
移除不再需要的最上層 INSTALL
檔案 (Tom Lane) §
移除 make 的 distprep
選項 (Peter Eisentraut) §
新增 make 對 Android 共享函式庫的支援 (Peter Eisentraut) §
新增後端對注入點的支援 (Michael Paquier) § § § §
這用於伺服器偵錯,並且必須在伺服器編譯時啟用。
新增動態共享記憶體註冊表 (Nathan Bossart) §
這允許未在啟動時初始化的共享函式庫協調動態共享記憶體存取。
修正 emit_log_hook
以便為同一查詢使用與其他日誌記錄相同的時間值 (Kambam Vinay, Michael Paquier) §
改善使用 jsonpath
進行謂詞檢查的文件 (David Wheeler) §
允許將帶有非連接條件的連接下推到外部伺服器和自定義掃描 (Richard Guo, Etsuro Fujita) §
需要修改外部資料包裝器和自定義掃描以處理這些情況。
允許將 EXISTS
和 IN
子查詢下推到 postgres_fdw 外部伺服器 (Alexander Pyhalov) §
增加預設的外部資料包裝器元組成本 (David Rowley, Umair Shahid) § §
最佳化器使用此值。
允許在 ltree 欄位上建立雜湊索引 (Tommy Pavlicek) §
這也啟用了 ltree 欄位上的雜湊連接和雜湊聚合。
允許 unaccent 字元轉換規則包含空格和引號 (Michael Paquier) §
unaccent.rules
檔案的語法已更改。
允許 amcheck 使用新選項 --checkunique
檢查唯一約束違規 (Anastasia Lubennikova, Pavel Borisov, Maxim Orlov) §
允許 ALTER OPERATOR
設置更多最佳化屬性 (Tommy Pavlicek) §
這對於擴充套件很有用。
允許擴充套件定義自定義等待事件 (Masahiro Ikeda) § § § §
自定義等待事件已新增到 postgres_fdw 和 dblink。
新增 pg_buffercache 函數 pg_buffercache_evict()
以允許共享緩衝區逐出 (Palak Chaturvedi, Thomas Munro) §
這對於測試很有用。
以佔位符取代儲存在 pg_stat_statements
中的儲存點名稱 (Greg Sabino Mullane) §
這大大減少了記錄 SAVEPOINT
、RELEASE SAVEPOINT
和 ROLLBACK TO SAVEPOINT
命令所需的條目數量。
取代兩階段提交GID以佔位符取代儲存在 pg_stat_statements
中的資料 (Michael Paquier) §
這大大減少了記錄 PREPARE TRANSACTION
、COMMIT PREPARED
和 ROLLBACK PREPARED
所需的條目數量。
在 pg_stat_statements
中追蹤 DEALLOCATE
(Dagfinn Ilmari Mannsåker, Michael Paquier) §
DEALLOCATE
名稱以佔位符的形式儲存在 pg_stat_statements
中。
新增 pg_stat_statements
的本機 I/O 區塊讀/寫計時統計資料欄位 (Nazir Bilal Yavuz) § §
新的欄位是 local_blk_read_time
和 local_blk_write_time
。
新增JIT將 deform_counter 詳細資訊新增到 pg_stat_statements
(Dmitry Dolgov) §
新增可選的第四個引數 (minmax_only
) 到 pg_stat_statements_reset()
,以允許僅重置最小值/最大值統計資訊 (Andrei Zubkov) §
此引數預設為 false
。
新增 pg_stat_statements
欄位 stats_since
和 minmax_stats_since
,以追蹤條目的建立時間和上次最小值/最大值重置時間 (Andrei Zubkov) §
以下人士(按字母順序排列)以補丁作者、提交者、審閱者、測試人員或問題回報者的身分,對此版本做出了貢獻。
Abhijit Menon-Sen |
Adnan Dautovic |
Aidar Imamov |
Ajin Cherian |
Akash Shankaran |
Akshat Jaimini |
Alaa Attya |
Aleksander Alekseev |
Aleksej Orlov |
Alena Rybakina |
Alex Hsieh |
Alex Malek |
Alex Shulgin |
Alex Work |
Alexander Korotkov |
Alexander Kozhemyakin |
Alexander Kuzmenkov |
Alexander Lakhin |
Alexander Pyhalov |
Alexey Palazhchenko |
Alfons Kemper |
Álvaro Herrera |
Amadeo Gallardo |
Amit Kapila |
Amit Langote |
Amul Sul |
Anastasia Lubennikova |
Anatoly Zaretsky |
Andreas Karlsson |
Andreas Ulbrich |
Andrei Lepikhov |
Andrei Zubkov |
Andres Freund |
Andrew Alsup |
Andrew Atkinson |
Andrew Bille |
Andrew Dunstan |
Andrew Kane |
Andrey Borodin |
Andrey Rachitskiy |
Andrey Sokolov |
Andy Fan |
Anthonin Bonnefoy |
Anthony Hsu |
Anton Kirilov |
Anton Melnikov |
Anton Voloshin |
Antonin Houska |
Ants Aasma |
Antti Lampinen |
Aramaki Zyake |
Artem Anisimov |
Artur Zakirov |
Ashutosh Bapat |
Ashutosh Sharma |
Atsushi Torikoshi |
Attila Gulyás |
Ayush Tiwari |
Ayush Vatsa |
Bartosz Chrol |
Benoît Ryder |
Bernd Helmle |
Bertrand Drouvot |
Bharath Rupireddy |
Bo Andreson |
Boshomi Phenix |
Bowen Shi |
Boyu Yang |
Bruce Momjian |
Cameron Vogt |
Cary Huang |
Cédric Villemain |
Changhong Fei |
Chantal Keller |
Chapman Flack |
Chengxi Sun |
Chris Travers |
Christian Maurer |
Christian Stork |
Christoph Berg |
Christoph Heiss |
Christophe Courtois |
Christopher Kline |
Claudio Freire |
Colin Caine |
Corey Huinker |
Curt Kolovson |
Dag Lem |
Dagfinn Ilmari Mannsåker |
Damir Belyalov |
Daniel Fredouille |
Daniel Gustafsson |
Daniel Shelepanov |
Daniel Vérité |
Daniel Westermann |
Darren Rush |
Dave Cramer |
Dave Page |
David Christensen |
David Cook |
David G. Johnston |
David Geier |
David Hillman |
David Perez |
David Rowley |
David Steele |
David Wheeler |
David Zhang |
Dean Rasheed |
Denis Erokhin |
Denis Laxalde |
Devrim Gündüz |
Dilip Kumar |
Dimitrios Apostolou |
Dmitry Dolgov |
Dmitry Koval |
Dmitry Vasiliev |
Dominique Devienne |
Dong Wook Lee |
Donghang Lin |
Dongming Liu |
Drew Callahan |
Drew Kimball |
Dzmitry Jachnik |
Egor Chindyaskin |
Egor Rogov |
Ekaterina Kiryanova |
Elena Indrupskaya |
Elizabeth Christensen |
Emre Hasegeli |
Eric Cyr |
Eric Mutta |
Eric Radman |
Eric Ridge |
Erik Rijkers |
Erik Wienhold |
Erki Eessaar |
Ethan Mertz |
Etsuro Fujita |
Eugen Konkov |
Euler Taveira |
Evan Macbeth |
Evgeny Morozov |
Fabien Coelho |
Fabrízio de Royes Mello |
Farias de Oliveira |
Feliphe Pozzer |
Fire Emerald |
Flavien Guedez |
Floris Van Nee |
Francesco Degrassi |
Frank Streitzig |
Gabriele Bartolini |
Garrett Thornburg |
Gavin Flower |
Gavin Panella |
Gilles Darold |
Gilles Parc |
Grant Gryczan |
Greg Nancarrow |
Greg Sabino Mullane |
Greg Stark |
Gurjeet Singh |
Haiying Tang |
Hajime Matsunaga |
Hal Takahara |
Hanefi Onaldi |
Hannu Krosing |
Hans Buschmann |
Hao Wu |
Hao Zhang |
Hayato Kuroda |
Heikki Linnakangas |
Hemanth Sandrana |
Himanshu Upadhyaya |
Hironobu Suzuki |
Holger Reise |
Hongxu Ma |
Hongyu Song |
Horst Reiterer |
Hubert Lubaczewski |
Hywel Carver |
Ian Barwick |
Ian Ilyasov |
Ilya Nenashev |
Isaac Morland |
Israel Barth Rubio |
Ivan Kartyshov |
Ivan Kolombet |
Ivan Lazarev |
Ivan Panchenko |
Ivan Trofimov |
Jacob Champion |
Jacob Speidel |
Jacques Combrink |
Jaime Casanova |
Jakub Wartak |
James Coleman |
James Pang |
Jani Rahkola |
Japin Li |
Jeevan Chalke |
Jeff Davis |
Jeff Janes |
Jelte Fennema-Nio |
Jeremy Schneider |
Jian Guo |
Jian He |
Jim Jones |
Jim Keener |
Jim Nasby |
Jingtang Zhang |
Jingxian Li |
Jingzhou Fu |
Joe Conway |
Joel Jacobson |
John Ekins |
John Hsu |
John Morris |
John Naylor |
John Russell |
Jonathan Katz |
Jordi Gutiérrez |
Joseph Koshakow |
Josh Kupershmidt |
Joshua D. Drake |
Joshua Uyehara |
Jubilee Young |
Julien Rouhaud |
Junwang Zhao |
Justin Pryzby |
Kaido Vaikla |
Kambam Vinay |
Karen Talarico |
Karina Litskevich |
Karl O. Pinc |
Kashif Zeeshan |
Kim Johan Andersson |
Kirill Reshke |
Kirk Parker |
Kirk Wolak |
Kisoon Kwon |
Koen De Groote |
Kohei KaiGai |
Kong Man |
Konstantin Knizhnik |
Kouhei Sutou |
Krishnakumar R |
Kuntal Ghosh |
Kurt Roeckx |
Kyotaro Horiguchi |
Lang Liu |
Lars Kanis |
Laurenz Albe |
Lauri Laanmets |
Legs Mansion |
Lukas Fittl |
Magnus Hagander |
Mahendrakar Srinivasarao |
Maiquel Grassi |
Manos Emmanouilidis |
Marcel Hofstetter |
Marcos Pegoraro |
Marian Krucina |
Marina Polyakova |
Mark Dilger |
Mark Guertin |
Mark Sloan |
Markus Winand |
Marlene Reiterer |
Martín Marqués |
Martin Nash |
Martin Schlossarek |
Masahiko Sawada |
Masahiro Ikeda |
Masaki Kuwamura |
Masao Fujii |
Mason Sharp |
Matheus Alcantara |
Mats Kindahl |
Matthias Kuhn |
Matthias van de Meent |
Maxim Boguk |
Maxim Orlov |
Maxim Yablokov |
Maxime Boyer |
Melanie Plageman |
Melih Mutlu |
Merlin Moncure |
Micah Gate |
Michael Banck |
Michael Bondarenko |
Michael Paquier |
Michael Wang |
Michael Zhilin |
Michail Nikolaev |
Michal Bartak |
Michal Kleczek |
Mikhail Gribkov |
Mingli Zhang |
Miroslav Bendik |
Mitsuru Hinata |
Moaaz Assali |
Muralikrishna Bandaru |
Nathan Bossart |
Nazir Bilal Yavuz |
Neil Tiffin |
Ngigi Waithaka |
Nikhil Benesch |
Nikhil Raj |
Nikita Glukhov |
Nikita Kalinin |
Nikita Malakhov |
Nikolay Samokhvalov |
Nikolay Shaplov |
Nisha Moond |
Nishant Sharma |
Nitin Jadhav |
Noah Misch |
Noriyoshi Shinoda |
Ole Peder Brandtzæg |
Oleg Bartunov |
Oleg Sibiryakov |
Oleg Tselebrovskiy |
Olleg Samoylov |
Onder Kalaci |
Ondrej Navratil |
Pablo Kharo |
Palak Chaturvedi |
Pantelis Theodosiou |
Paul Amonson |
Paul Jungwirth |
Pavel Borisov |
Pavel Kulakov |
Pavel Luzanov |
Pavel Stehule |
Pavlo Golub |
Pedro Gallegos |
Pete Storer |
Peter Eisentraut |
Peter Geoghegan |
Peter Smith |
Philip Warner |
Philipp Salvisberg |
Pierre Ducroquet |
Pierre Fortin |
Przemyslaw Sztoch |
Quynh Tran |
Raghuveer Devulapalli |
Ranier Vilela |
Reid Thompson |
Rian McGuire |
Richard Guo |
Richard Vesely |
Ridvan Korkmaz |
Robert Haas |
Robert Scott |
Robert Treat |
Roberto Mello |
Robins Tharakan |
Roman Lozko |
Ronan Dunklau |
Rui Zhao |
Ryo Matsumura |
Ryoga Yoshida |
Sameer Kumar |
Sami Imseih |
Samuel Dussault |
Sanjay Minni |
Satoru Koizumi |
Sebastian Skalacki |
Sergei Glukhov |
Sergei Kornilov |
Sergey Prokhorenko |
Sergey Sargsyan |
Sergey Shinderuk |
Shaozhong Shi |
Shaun Thomas |
Shay Rojansky |
Shihao Zhong |
Shinya Kato |
Shlok Kyal |
Shruthi Gowda |
Shubham Khanna |
Shulin Zhou |
Shveta Malik |
Simon Riggs |
Soumyadeep Chakraborty |
Sravan Velagandula |
Stan Hu |
Stepan Neretin |
Stepan Rutz |
Stéphane Schildknecht |
Stephane Tachoires |
Stephen Frost |
Steve Atkins |
Steve Chavez |
Suraj Khamkar |
Suraj Kharage |
Svante Richter |
Svetlana Derevyanko |
Sylvain Frandaz |
Takayuki Tsunakawa |
Tatsuo Ishii |
Tatsuro Yamada |
Tender Wang |
Teodor Sigaev |
Thom Brown |
Thomas Munro |
Tim Carey-Smith |
Tim Needham |
Tim Palmer |
Tobias Bussmann |
Tom Lane |
Tomas Vondra |
Tommy Pavlicek |
Tomonari Katsumata |
Tristan Partin |
Tristen Raab |
Tung Nguyen |
Umair Shahid |
Uwe Binder |
Valerie Woolard |
Vallimaharajan G |
Vasya Boytsov |
Victor Wagner |
Victor Yegorov |
Victoria Shepard |
Vidushi Gupta |
Vignesh C |
Vik Fearing |
Viktor Leis |
Vinayak Pokale |
Vitaly Burovoy |
Vojtech Benes |
Wei Sun |
Wei Wang |
Wenjiang Zhang |
Will Mortensen |
Willi Mann |
Wolfgang Walther |
Xiang Liu |
Xiaoran Wang |
Xing Guo |
Xudong Yang |
Yahor Yuzefovich |
Yajun Hu |
Yaroslav Saburov |
Yong Li |
Yongtao Huang |
Yugo Nagata |
Yuhang Qiu |
Yuki Seino |
Yura Sokolov |
Yurii Rashkovskii |
Yuuki Fujii |
Yuya Watari |
Yves Colin |
Zhihong Yu |
Zhijie Hou |
Zongliang Quan |
Zubeyr Eryilmaz |
Zuming Jiang |
如果您在文件中發現任何不正確、與您對特定功能的使用經驗不符或需要進一步澄清的地方,請使用此表格來回報文件問題。