PostgreSQL 每週新聞 - 2021 年 3 月 7 日

發表於 2021-03-08,作者:PWN
PWN

PostgreSQL 每週新聞 - 2021 年 3 月 7 日

PostgreSQL 產品新聞

parquet_s3_fdw 0.1,用於 S3 上 parquet 檔案的外部資料包裝器,已發布。 https://github.com/pgspider/parquet_s3_fdw/releases/tag/v0.1

3 月份的 PostgreSQL 工作

https://archives.postgresql.org/pgsql-jobs/2021-03/

PostgreSQL 新聞報導

Planet PostgreSQL: https://planet.postgresql.org/

本週的 PostgreSQL 每週新聞由 David Fetter 撰寫

請在太平洋標準時間/太平洋夏令時間週日下午 3:00 前將新聞和公告提交至 david@fetter.org。

已應用補丁

Thomas Munro 推送

Amit Kapila 推送了程式碼

Andres Freund 推送了程式碼

  • 修正 Windows 上 021_row_visibility.pl 恢復測試的掛起問題。psql 程序沒有被明確終止(但最終會因 postgres 關閉而退出)。由於某種原因,windows perl 不喜歡這樣,導致出現類似 Warning: unable to close filehandle GEN20 properly: Bad file descriptor during global destruction 的錯誤。該測試是在 d6734a897e3 中引入的,因此無需向後移植。 https://git.postgresql.org/pg/commitdiff/1e6e40447115ca7b4749d7d117b81b016ee5e2c2

Tom Lane 推送了程式碼

Michaël Paquier 推送

Álvaro Herrera 推送

Peter Geoghegan 推送

  • 修正 nbtree 頁面刪除錯誤訊息。調整了一些「不該發生」的錯誤訊息,這些訊息假設頁面刪除的目標頁面必須是半毀損頁面。在內部目標頁面的情況下,這個假設是錯誤的。簡單地將這些頁面稱為目標頁面即可。內部頁面永遠不會被標記為半毀損。對於正在刪除的每個子樹,只有一個半毀損頁面。半毀損頁面也是目標子樹的葉節點層級頁面。自 commit efada2b8 以來,情況一直是如此,該 commit 完全修改了 nbtree 頁面刪除。https://git.postgresql.org/pg/commitdiff/3d8d5787a358156edaa7782f0c88e231af974a01

  • nbtree 頁面刪除:新增 leaftopparent 斷言。新增說明文件斷言。這使得更容易追蹤我們如何在目標子樹的半毀損/葉節點層級頁面中維護頂層父連結。https://git.postgresql.org/pg/commitdiff/5b2f2af3d9d57626b9052a05337e32ad1399093d

Peter Eisentraut 推送

Heikki Linnakangas 推送

Fujii Masao 推送

Andrew Dunstan 推送

Magnus Hagander 推送

待處理的修補程式

Pavel Stěhule 提交了 schema variables 修補程式的另一個版本。

Maxim Orlov 提交了一個修補程式,用於修正在 libpq 連接字串中 TLS 和多個主機之間的不協調。

Thomas Munro 提交了另外兩個版本的修補程式,用於為 walreceiver 狀態新增條件變數,另一個用於恢復暫停/恢復,並減少在恢復中輪詢 postmaster 的頻率。

Ajin Cherian 和 Amit Kapila 交換了修補程式,以新增一個選項,用於通過 pg_create_logical_replication_slot 啟用 two_phase commits。

Michael Banck 提交了一個修補程式,以向 pg_dump/pg_dumpall 新增一個 --create-only 選項。

Michaël Paquier 提交了修補程式的另一個版本,以澄清 archiver 中信號處理的文檔。

Etsuro Fujita 提交了修補程式的另一個版本,以在 postgres_fdw 節點上實現異步附加。

Peter Eisentraut 提交了修補程式的另一個版本,以處理構建中的 macOS SIP。

Laurenz Albe 和 Amit Langote 交換了修補程式,以允許在分割表上設定 parallel_workers。

Joel Jacobson 提交了 regexp_positions() 的三個版本修補程式,該修補程式返回每個匹配項的開始和結束位置。

Thomas Munro 提交了另外兩個版本的修補程式,以提供一個新的可選 GUC,可用於檢查用戶端連線是否在運行非常長的查詢時定期斷開。

Paul Förster 提交了修補程式的另一個版本,以在 psql --help 的輸出中提及 URI 和服務。

Peter Smith 和 Ajin Cherian 交換了修補程式,以實現兩階段事務的邏輯解碼。

Greg Nancarrow 和 Amit Kapila 交換了修補程式,以啟用 "INSERT INTO ... SELECT ..." 的平行 SELECT,新增一個新的布林值 GUC enable_parallel_dml 和一個類似的表選項 parallel_dml_enabled。

Dian M Fay 提交了兩個版本的修補程式,以在 binary OpExpr 的另一端也是文本時,抑制 postgres_fdw 中文本常量的顯式轉換。

Dilip Kumar 提交了修補程式的另外三個版本,以新增表的壓縮方法選項。

Julien Rouhaud 提交了修補程式的另一個版本,以將查詢混淆從 pg_stat_statements 移至核心,在 pg_stat_activity 和 log_line_prefix 中公開 queryid,並在 EXPLAIN ... VERBOSE 中公開查詢標識符。

Bruce Momjian 送來了一個修補程式,用來修正一些 GiST 程式碼的註解。

Vik Fearing 送來了另一個修訂版本的修補程式,用來實作 GROUP BY DISTINCT,這可以省略重複的 GROUPING SET。

Mark Dilger 送來了另一個修訂版本的修補程式,用來新增一個 contrib 擴充套件,pg_amcheck。

Pavel Borisov 送來了另一個修訂版本的修補程式,用來讓 amcheck 檢查 btree 索引的 UNIQUE 限制。

Jacob Champion 送來了另一個修訂版本的修補程式,用來新增一個 API 到 table AM,以接受欄位投影列表。

Joel Jacobson 送來了兩個修訂版本的修補程式,用來支援具有邊界資訊的空範圍。

Tomáš Vondra 送來了三個修訂版本的修補程式,用來實作 BRIN 多範圍索引。

Peter Eisentraut 送來了另一個修訂版本的修補程式,用來實作 SQL 標準的函數主體。

Thomas Munro 送來了兩個修訂版本的修補程式,用來實作平行完整雜湊聯結。

Magnus Hagander 送來了五個修訂版本的修補程式,用來新增 PROXY 協定支援。

Vigneshwaran C 送來了一個修補程式,用來修正在 crake 中的 Buildfarm 失敗,方法是將 Perl 程式碼中的宣告與賦值分離。

Michaël Paquier 送來了另一個修訂版本的修補程式,用來在檢查是否需要 SSL 之前,先啟用 libcrypto 回呼。

Daniel Gustafsson 送來了另一個修訂版本的修補程式,用來支援 NSS 作為 libpq TLS 後端。

Gilles Darold 送來了一個修補程式,用來實作 regexp_count、regexp_instr、regexp_substr 和 regexp_replace。

David Rowley 送來了另一個修訂版本的修補程式,用來減少在 Windows 上建置 contrib 模組的特殊案例數量。

Amit Langote 送來了另一個修訂版本的修補程式,用來讓 UPDATE 和 DELETE 在繼承樹上更好地擴展。

John Naylor 送來了一個修補程式,用來審查當前 popcount 實作的一些替代方案。

Mark Rofail 送來了另一個修訂版本的修補程式,用來實作外鍵陣列。

Pavel Stěhule 送來了三個修訂版本的修補程式,用來使 psql 能夠為 \watch 使用分頁器。

Tom Lane 送來了另一個修訂版本的修補程式,用來移除協定版本 2 中對 COPY FROM STDIN 的支援。

Mark Dilger 送來了兩個修訂版本的修補程式,用來新增一個 pg_amcheck contrib 應用程式。

Soumyadeep Chakraborty 和 Kyotaro HORIGUCHI 交換了修補程式,以防止檢查點寫入器寫入較舊的時間軸。

Amit Kapila 送來了另一個修訂版本的修補程式,用來追蹤用於回滾的複製來源進度。

Masahiro Ikeda 和 Fujii Masao 交換了修補程式,用來將 WAL 寫入/fsync 統計資訊新增到 pg_stat_wal。

Justin Pryzby 和 Takayuki Tsunakawa 交換了修補程式,用來加速在外來分割區表上的 COPY FROM。

Álvaro Herrera 和 Justin Pryzby 交換了修補程式,用來新增對 libpq 的批次/管道支援。

Daniel Gustafsson 送來了三個修訂版本的修補程式,用來禁止 SSL 壓縮。

Andrey V. Lepikhov 和 Tom Lane 交換了修補程式,用來移除 64K rangetable 限制。

Robins Tharakan 送來了一個修補程式,用來修復 pg_upgrade,以處理大量的大型物件。

Jacob Champion 送來了一個修補程式,用來重新設計 sslfiles Makefile 目標。

Kyotaro HORIGUCHI 送來了另一個修訂版本的修補程式,用來將回呼呼叫從 ReadPageInternal 移至 XLogReadRecord,將頁面讀取器移出 XLogReadRecord,移除全域變數 readOff、readLen 和 readSegNo,並允許 xlogreader 使用不同的 xlog 區塊大小。

Andy Fan 送來了一個修補程式,用來調整分割區修剪案例的成本模型。

Kyotaro HORIGUCHI 送來了另一個修訂版本的修補程式,用來使恢復結束錯誤不那麼可怕。

Heikki Linnakangas 送來了另一個修訂版本的修補程式,用來強制在 COPY FROM 解析中進行前瞻。

Daniel Gustafsson 送來了另一個修訂版本的修補程式,用來從 libpq 中移除已棄用的參數 authtype 和 pqtty。

Amul Sul 送來了另一個修訂版本的修補程式,用來使用全域屏障實作 wal 禁止狀態,並在 WAL 寫入的 START_CRIT_SECTION 之前觸發錯誤或斷言。

Thomas Munro 送來了一個修補程式,用來使 relfile 墓碑檔案根據 WAL 等級進行條件判斷。

Amit Langote 送來了另一個修訂版本的修補程式,用來對分割區修剪步驟產生程式碼進行一些外觀上的改進。

Thomas Munro 送來了另一個修訂版本的修補程式,用來用條件變數替換緩衝區 I/O 鎖。

Thomas Munro 送來了兩個修訂版本的修補程式,用來新增遺失的 pthread_barrier_t,重構 pgbench 中執行緒可移植性的方式,改進 pgbench 的時間測量程式碼,並同步其用戶端執行緒。

Julien Rouhaud 送來了另一個修訂版本的修補程式,用來修復各種共用記憶體估算。

Laurenz Albe 送來了兩個修訂版本的修補程式,用來改進 \e、\ef 和 \ev,如果在沒有儲存的情況下退出編輯器,則保留目前的查詢緩衝區,而不是執行先前的查詢。

Masahiko Sawada 送來了兩個修訂版本的修補程式,用來確保在 TRUNCATE 時重設 pg_stat_xxx_tables.n_mod_since_analyze。

Tomáš Vondra 送來了兩個修訂版本的修補程式,用來使收集關於表達式的擴展統計資訊成為可能。

Hayato Kuroda 送來了另一個修訂版本的修補程式,用來重構 ECPGconnect 並允許在其中進行 IPv6 連線。

Kyotaro HORIGUCHI 送來了另一個修訂版本的修補程式,用來在截斷成功後延遲檢查點完成。

Kota Miyake 送來了一個修補程式,用來從 pgbench 的 \sleep 元命令中移除一些瑕疵。

Hou Zhijie 送來了一個修補程式,用來在 INSERT FK 關係時避免 RI 觸發器中的 CCI。

Ibrar Ahmed 送來了另一個修訂版本的修補程式,用來修復被先前使 GROUP BY 更有效率工作的修補程式所破壞的測試。

Kirk Jamison 送來了另一個修訂版本的修補程式,用來在 libpq 中實作追蹤。

Kyotaro HORIGUCHI 送來了另一個修訂版本的修補程式,用來將統計資訊收集器從使用檔案作為臨時儲存變更為使用共用記憶體。

Andres Freund 送來了另一個修訂版本的修補程式,用來確保在 Windows 上,只有在 stderr 無效時,PostgreSQL 才被認為作為服務執行。

Thomas Munro 送來了另一個修訂版本的修補程式,用來注入故障時序,並修復平行雜湊聯結批次清除中的競爭情況。

Andrew Dunstan 送來了一個修補程式,用來允許從用戶端憑證比對整個 DN。

KaiGai Kohei 和 Tom Lane 交換了修補程式,用來將二進位輸入/輸出處理常式新增到 contrib/cube。

Bharath Rupireddy 送來了兩個修訂版本的修補程式,用來將重新整理實體化檢視表的程式碼重構為一組函數,並實作 EXPLAIN/EXPLAIN ANALYZE REFRESH MATERIALIZED VIEW。

Justin Pryzby 送來了一個啟動程式修補程式,該程式可以將 Typ 轉換為 List*,並使用它來允許啟動程式中的複合類型。

Kyotaro HORIGUCHI 送來了一個修補程式,通過新增 CHECKPOINT 來修復 011_crash_recovery.pl 中的間歇性失敗。

Joel Jacobson 送來了一個修補程式,用來建立 pg_permissions 檢視表。

Joel Jacobson 送來了一個修補程式,用來建立 pg_ownerships 檢視表。

Justin Pryzby 送來了另一個修訂版本的修補程式,用來使在分割區索引上執行 CLUSTER 成為可能。

Bharath Rupireddy 提交了另一個修訂版本的補丁,以新增另一種 pg_terminate_backend 的變體,允許使用者指定等待時間和逾時時間。

Bharath Rupireddy 提交了另一個修訂版本的補丁,以改進「PID XXXX 不是 PostgreSQL 伺服器程序」的訊息,將不允許傳送訊號的情況分離出來。

Li Japin 提交了另一個修訂版本的補丁,以實作 ALTER SUBSCRIPTION ... ADD/DROP PUBLICATION 功能。

Joe Conway 提交了一個補丁,以修正 "has_column_privilege()" 中的一個錯誤,該錯誤導致 attnums 和不存在的欄位錯誤。

Justin Pryzby 提交了另一個修訂版本的補丁,以實作 ALTER TABLE SET ACCESS METHOD 功能,允許指定分割資料表的表格存取方法可以被分割區繼承,並實作 lsyscache get_rel_relam() 函數,因為表格的 AM (存取方法) 現在起作用。