pg_dbms_job 1.0.1,一個用於建立、管理和使用 Oracle 風格 DBMS_JOB 排程任務的擴充功能,已發布。
dbMigration .NET v14.4,一個資料庫遷移和同步工具,已發布。
WAL-G 1.1,一個用 Go 編寫的 PostgreSQL 和其他資料庫的備份管理系統,已發布。
pglogical 2.4.0,一個基於邏輯 WAL 的 PostgreSQL 複製系統,已發布。
Crunchy PostgreSQL Operator 5.0.0,一個用於在 Kubernetes 上部署和管理開源 PostgreSQL 叢集的系統,已發布。
set_user
2.0.1,一個允許權限提升並增強日誌記錄和控制的擴充功能,已發布。
AGE 0.5.0,一個提供圖形資料庫功能的 PostgreSQL 擴充功能,已發布。
pg_msvc_generator 1.0.0 beta,一個用於製作擴充功能 Windows 版本的工具,已發布。
https://archives.postgresql.org/pgsql-jobs/2021-08/
Planet PostgreSQL: https://planet.postgresql.org/
本週的 PostgreSQL 每週新聞由 David Fetter 為您帶來
請在太平洋標準時間下午 3:00 之前(週日)將新聞和公告發送到 david@fetter.org。
Michaël Paquier 推送了
修復備份資訊清單以在時間軸之間產生正確的 WAL 範圍。 在備份資訊清單中,WAL-Ranges 儲存備份生效所需的 WAL 範圍。 然後 pg_verifybackup 會在內部使用 pg_waldump 基於此資料進行檢查。 當備份開始的時間軸大於 1 且查找歷史檔案以生成資訊清單資料時,第一個要檢查的時間軸的 WAL 範圍的計算是不正確的。 先前的邏輯使用第一個時間軸的起始位置作為起始 LSN,但它需要使用備份的起始 LSN。 這將導致 pg_verifybackup 或任何使用備份資訊清單的工具出現故障。 此提交新增了基於使用自我提升節點的邏輯的測試,使其相當便宜。 作者:Kyotaro Horiguchi 討論:https://postgr.es/m/20210818.143031.1867083699202617521.horikyota.ntt@gmail.com 回溯修正:13 https://git.postgresql.org/pg/commitdiff/a3fcbcda7505e9079cec95e7209cde4f5d5c8bd8
在 psql 中為 EXPLAIN .. EXECUTE 新增 Tab 鍵補全。 作者:Dagfinn Ilmari Mannsåker 討論:https://posgr.es/m/871r75gd0i.fsf@wibble.ilmari.org https://git.postgresql.org/pg/commitdiff/34651131348dfb60be124b3c1dfe92d09a94494f
修正 ECPG 代碼中 DECLARE 的錯誤合併。 在比較現有宣告語句使用的連線與來自新的 DECLARE 語句的連線時,相同的條件重複了兩次。 這沒有造成任何後果,但讓我們保持代碼的整潔。 f576de1 中的疏忽。 作者:Shenhao Wang 討論:https://postgr.es/m/OSBPR01MB42149653BC0AB0A49D23C1B8F2C69@OSBPR01MB4214.jpnprd01.prod.outlook.com 回溯修正:14 https://git.postgresql.org/pg/commitdiff/1387925a488eb002b59f3b7f58855a4b711b6415
Bruce Momjian 推送了
Álvaro Herrera 推送了
避免過早建立封存狀態 ".ready" 檔案。 WAL 記錄可能會跨越多個區段,但在建立封存狀態檔案之前,XLogWrite() 不會等待將整個記錄寫出到磁碟。 相反,一旦寫入區段的最後一個 WAL 頁面,就會建立封存狀態檔案,並且封存程式可能會處理它。 如果 PostgreSQL 在能夠寫入並刷新記錄的其餘部分(在下一個 WAL 區段中)之前崩潰,則錯誤版本的第一個區段檔案會停留在封存中,這會導致諸如時間點還原之類的操作失敗。 為了修正這個問題,請追蹤跨區段的記錄,並確保只有在將這些記錄完全寫入磁碟後,才會將區段標記為準備好封存。 這一直是錯誤的,所以一路回溯。 作者:Nathan Bossart bossartn@amazon.com 審閱人:Kyotaro Horiguchi horikyota.ntt@gmail.com 審閱人:Ryo Matsumura matsumura.ryo@fujitsu.com 審閱人:Andrey Borodin x4mmm@yandex-team.ru 討論:https://postgr.es/m/CBDDFA01-6E40-46BB-9F98-9340F4379505@amazon.com https://git.postgresql.org/pg/commitdiff/515e3d84a0b58b58eb30194209d2bc47ed349f5b
psql \dP:使用 "pg_catalog." 前綴參考 regclass。 嚴格來說,這不是一個錯誤,但由於對目錄物件的所有參考都經過 schema 限定,因此我們不妨保持一致。 此省略首次出現在 commit 1c5d9270e339 中,因此回溯到 12。 作者:Justin Pryzby pryzbyj@telsasoft.com 討論:https://postgr.es/m/20210827193151.GN26465@telsasoft.com https://git.postgresql.org/pg/commitdiff/fc40ba1296a7d4aee7bd975be9925c74c8073dfe
psql \dX:使用 "pg_catalog." 前綴參考 regclass。 commit fc40ba1296a7 的 Déjà vu,適用於另一個反斜線命令。 嚴格來說,這不是一個錯誤,但由於對目錄物件的所有參考都經過 schema 限定,因此我們不妨保持一致。 此省略首次出現在 commit ad600bba0422 中,並在 a4d75c86bf15 中複製;回溯到 14。 作者:Justin Pryzby pryzbyj@telsasoft.com 討論:https://postgr.es/m/20210827193151.GN26465@telsasoft.com https://git.postgresql.org/pg/commitdiff/1f092a309eeecd097938bacc201c779574ced3b6
保持分割區表的統計資料是最新的。 在分割區表上分析的漫長過程中,在還原 0827e8af70f4 時,我遺漏了一件事是維護分割區表的分析計數和上次分析時間。 這是一個非常簡單的變更,使用戶能夠評估在分割區表上調用手動 ANALYZE 的需求。 此修補程式由 Justin 發布,並由我(Álvaro)稍作修改,可以追溯到 Hosoya-san,但使用剪刀引入的任何問題都是我的。 回溯到 14,與 6f8127b73901 一致。 共同作者:Yuzuko Hosoya yuzukohosoya@gmail.com 共同作者:Justin Pryzby pryzby@telsasoft.com 共同作者:Álvaro Herrera alvherre@alvh.no-ip.org 報告者:Justin Pryzby pryzby@telsasoft.com 討論:https://postgr.es/m/20210816222810.GE10479@telsasoft.com https://git.postgresql.org/pg/commitdiff/375aed36ad83f0e021e9bdd3a0034c0c992c66dc
Tom Lane 推送了
防止 regexp 反向引用在不該匹配時有時卻匹配到的問題。 cdissect() 中的遞迴在拒絕部分匹配後,沒有仔細清除捕獲括號的匹配數據。這可能導致後續的反向引用在按理說因為缺少定義的指涉對象而應該失敗時,反而成功。為了修正此問題,需要更嚴謹地思考 cdissect 不同層級遞迴之間的契約應該是什麼。有了正確的規範,我們可以使用更少的重置匹配數據來修正這個問題,關鍵的決定是失敗的子匹配現在明確負責清除它可能設置的任何匹配。程式碼中存在足夠多的交叉檢查和最佳化,因此不容易展示這個問題;通常,匹配會如預期般失敗。此外,即使是可能容易受到攻擊的 regexp 也最可能是使用者錯誤,因為編寫一個並非始終具有指涉對象的反向引用沒有太大意義。這些事實或許解釋了為什麼這個問題一直沒有被檢測到,即使它幾乎可以肯定已經存在幾十年了。討論:https://postgr.es/m/151435.1629733387@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/9bbf6f7341f2b5a8ce41d838154380faa7346101
修正 regexp 在 "{0}" 內使用捕獲括號時的錯誤行為。 像 "(.){0}...\1" 這樣的 regexp 會產生 "invalid backreference number" 的錯誤。 從表面上看,這並非不合理,因為如果捕獲組迭代零次,則永遠不會匹配。 但是,其他引擎(例如 Perl)不會對此提出抱怨,我們也不會對相關情況(例如 "(.)|\1")拋出錯誤,即使該反向引用也永遠無法成功。 此外,如果零迭代的情況發生在執行時期而不是編譯時期,例如,當找不到任何 "x"
時的 "(x)*...\1"
--- 這不是錯誤,我們只是認為反向引用不匹配。 更令人難以辯解的是,對於嵌套的情況(例如 "((.)){0}...\2")沒有拋出任何錯誤;更糟糕的是,這些情況可能會導致斷言失敗。 (似乎在非斷言建置版本中沒有發生特別糟糕的事情。) 我們只需修正它,以便不拋出任何錯誤,而是認為反向引用永遠不會匹配,以便編譯時期的零迭代檢測與執行時期的檢測行為相同。 根據 Mark Dilger 的報告。 這似乎是 Spencer 程式庫中的一個原始錯誤,因此回溯修補到所有支援的版本。 在 v14 之前,事實證明還有必要回溯修補 commit cb76fbd7e/00116dee5 的一個方面,即創建具有其子表達式的 begin/end 狀態的捕獲節點 subRE,而不是外部 parseqatom 調用的當前 lp/rp。 否則 delsub 會抱怨我們試圖將一個狀態與自身斷開連接。 這有點可怕,但程式碼檢查表明它是安全的:在 v14 之前的程式碼中,如果我們想圍繞子表達式進行迭代,我們要做的第一件事就是用新狀態覆蓋 atom 的 begin/end 欄位。 因此,虛假值沒有存活足夠長的時間來用於任何目的,除非不需要迭代,在這種情況下,它並不重要。 討論:https://postgr.es/m/A099E4A8-4377-4C64-A98C-3DEDDC075502@enterprisedb.com https://git.postgresql.org/pg/commitdiff/65dc30ced64cd17f3800ff1b73ab1d358e92efd8
移除多餘的測試。 條件 "context_start < context_end" 嚴格弱於 "context_end - context_start >= 50",因此我們不需要兩者。 ffd3944ab commit 中的疏忽,由 tanghy.fnst 指出。 順便一提,將附近的測試換行,使其更易於閱讀。 討論:https://postgr.es/m/OS0PR01MB61137C4054774F44E3A9DC89FBC69@OS0PR01MB6113.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/373e08a9f771e724efd3bd29f78c39515792dcf3
更誠實地處理 regexp 的 makesearch 和 MATCHALL 的交互作用。 關於 commit 824bf7190 的重新思考:在確定 NFA 是否為 MATCHALL 模式後,我們將 makesearch() 應用於 NFA。 前置 ".*"
不會使其成為非 MATCHALL,但它確實改變了最大可能的匹配長度,並且 makesearch() 未能更新它。 考慮到搜尋 NFA 的典型用法,這沒有不良影響,但保持數據結構一致似乎更好。 特別是,修正此問題允許更誠實地處理 matchuntil() 中的 MATCHALL 檢查:我們現在可以斷言 maxmatchall 是無限的,而不是僅僅假設它應該以這種方式運作。 順便一提,改進 dump[c]nfa 中的程式碼,以便將無限的 maxmatchall 列印為 "inf" 而不是一個幻數。 https://git.postgresql.org/pg/commitdiff/8f72becd6b9484fbb429651d8859faa36532a35a
在 pg_stat 統計資訊中計算 SP-GiST 索引掃描。 不知何故,spgist 忽略了調用 pgstat_count_index_scan() 的需求。 因此,pg_stat_all_indexes.idx_scan 和等效的欄位對於 SP-GiST 索引永遠不會變為非零,儘管相關的 per-tuple 計數器運作正常。 這個修復程式的運作方式與其他索引 AM 有點不同,因為計數器增量發生在 spgrescan 而不是 spggettuple/spggetbitmap 中。 看起來這不會使使用者可見的語義產生明顯的差異,所以我不會費力引入一個 is-this- the-first-call 標誌,只是為了使計數器增量發生在相同的位置。 根據 Christian Quest 提供的 bug #17163。 回溯修補到所有支援的版本。 討論:https://postgr.es/m/17163-b8c5cc88322a5e92@postgresql.org https://git.postgresql.org/pg/commitdiff/3778bcb39a94a3b6a821fd60fcd9919a95725e78
Doc: 在 src/backend/regex/README 中新增一些關於 LACON 執行的內容。 我在考慮可能的最佳化時寫了這個,但無論最佳化是否發生,它都是對現有程式碼的一個有用的描述。 所以單獨推送它。 https://git.postgresql.org/pg/commitdiff/10d58228bb1c824c5124ecd1b6c5e46a3c157a39
Amit Kapila 推送
修正 Alter Subscription 的 Add/Drop Publication 行為。 目前的重新整理行為試圖僅重新整理新增/刪除的發布,但這會導致從訂閱中移除錯誤的表格。 我們無法僅重新整理刪除的發布,因為很可能某些表格在那時已從發布中移除,現在這些表格將保留為訂閱的一部分。 此外,屬於被刪除發布的表格也有可能屬於另一個發布,因此我們無法移除這些表格。 因此,我們決定預設情況下,add/drop 命令也將像 REFRESH PUBLICATION 一樣運作,這意味著它們將重新整理所有發布。 我們可以為 "add publication" 保留舊的行為,但最好與 "drop publication" 保持一致。 作者:Hou Zhijie 審閱者:Masahiko Sawada, Amit Kapila Backpatch-through:14,即它被引入的地方 討論:https://postgr.es/m/OS0PR01MB5716935D4C2CC85A6143073F94EF9@OS0PR01MB5716.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/1046a69b3087a6417e85cae9b6bc76caa22f913b
修正邏輯解碼中的 TOAST 重寫問題。Commit 325f2ec555 引入了 pg_class.relwrite,用於跳過 DDL 期間作為堆重寫一部分建立的表格上的操作。它透過 pg_class 中的這個新欄位將這些暫時性的堆連接到原始關係 OID,但忘記處理 TOAST 表格。因此,邏輯解碼無法跳過內部建立的 TOAST 表格上的操作。這導致一個錯誤,當我們嘗試解碼下一個操作的 WAL 時,錯誤顯示應該有 TOAST 資料,但實際上並沒有。為了修正這個問題,我們也為內部建立的 TOAST 表格設定了 pg_class.relwrite,允許在邏輯解碼期間跳過對它們的操作。作者:Bertrand Drouvot 審閱者:David Zhang, Amit Kapila 回溯修補:11,即引入該問題的版本 討論:https://postgr.es/m/b5146fb1-ad9e-7d6e-f980-98ed68744a7c@amazon.com https://git.postgresql.org/pg/commitdiff/29b5905470285bf730f6fe7cc5ddb3513d0e6945
將邏輯變更的詳細資訊添加到邏輯複製工作程序 errcontext。先前,在訂閱者端,我們為元組資料轉換失敗設定了錯誤上下文回呼。此 commit 使用一個更全面的回呼替換了現有的錯誤上下文回呼,以便它不僅顯示資料轉換失敗的詳細資訊,還顯示由套用工作程序或表格同步工作程序套用的邏輯變更的詳細資訊。顯示的額外資訊將是命令、交易 ID 和時間戳記。僅當套用變更時才會將錯誤上下文添加到錯誤中,而不是在執行接收資料等其他工作時。這將有助於使用者診斷邏輯複製期間發生的問題。它也可用於未來允許跳過訂閱者端特定交易的工作。作者:Masahiko Sawada 審閱者:Hou Zhijie, Greg Nancarrow, Haiying Tang, Amit Kapila 測試者:Haiying Tang 討論:https://postgr.es/m/CAD21AoDeScrsHhLyEPYqN3sydg6PxAPVBboK=30xJfUVihNZDA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/abc0910e2e0adfc5a17e035465ee31242e32c4fc
Fujii Masao 推送
ecpg: 從錯誤訊息中移除尾隨句點。此 commit 改進了 commit f576de1db1 更新的 ecpg 錯誤訊息,以便它消除尾隨句點,並將錯誤訊息中的命令名稱改為大寫。作者:Kyotaro Horiguchi 審閱者:Fujii Masao 討論:https://postgr.es/m/20210819.170315.1413060634876301811.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/71fee6cfaca35208d266c172e63b76d37df88b77
改善關於片語運算子中距離的有效值的錯誤訊息。片語運算子中的距離必須是介於零和 MAXENTRYPOS(含)之間的整數值。但先前關於其有效值的錯誤訊息僅包含關於其上限的資訊,而沒有包含下限(即零)。此 commit 改善了錯誤訊息,以便它也包含關於其下限的資訊。回溯修補到支援全文片語搜尋的 v9.6。作者:Kyotaro Horiguchi 審閱者:Fujii Masao 討論:https://postgr.es/m/20210819.170315.1413060634876301811.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/085400fee9d58d7a97976755ae0627ef072e3776
避免在錯誤訊息中使用含糊不清的詞語「正數」("positive")。在 PostgreSQL 原始碼中有兩個關於雜湊分割模數的有效值的相同錯誤訊息。Commit 0e1275fb07 僅改進了其中一個,以便避免在那裡使用含糊不清的詞語「正數」,而忘記改進另一個。此 commit 改進了另一個。這將減少翻譯人員的負擔。回溯修補到存在該錯誤訊息的 v11。作者:Kyotaro Horiguchi 審閱者:Fujii Masao 討論:https://postgr.es/m/20210819.170315.1413060634876301811.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/170aec63cd7139b453c52ad52bbeb83993faa31d
Etsuro Fujita 推送
Peter Eisentraut 推送
修正錯字。 https://git.postgresql.org/pg/commitdiff/bb9ff46bc4e659a865deaeb1b9aeac8d1ff4d36f
psql: 使取消測試更具時間穩健性。先前的編碼依賴於 PID 檔案的出現和查詢「足夠快」地啟動,這在較慢的機器上可能會失敗。此外,alarm 和 IPC::Run 之間可能存在未記錄的干擾。這個新的編碼不依賴於任何這些並發機制。相反,我們等待 PID 檔案完成後再繼續,然後也等待伺服器註冊 sleep 查詢。討論:https://postgres.tw/message-id/flat/E1mH14Q-0002gh-HS%40gemulon.postgresql.org https://git.postgresql.org/pg/commitdiff/43d4dd87977d5ed66961605649d61973caf80f40
修正 RelationGetNumberOfBlocksInFork() 中對分割索引的處理。由於分割索引沒有儲存空間,因此從它取得區塊數量不會產生合理的結果。現有的呼叫者已經檢查過他們不會以這種方式呼叫它,因此似乎沒有實際問題。但為了正確性,將 RELKIND_PARTITIONED_INDEX 與其他非儲存 relkind 一起處理。審閱者:Michael Paquier michael@paquier.xyz 審閱者:Alvaro Herrera alvherre@alvh.no-ip.org 討論:https://postgres.tw/message-id/1d3a5fbe-f48b-8bea-80da-9a5c4244aef9@enterprisedb.com https://git.postgresql.org/pg/commitdiff/0d906b2c0b1f0d625ff63d9ace906556b1c66a68
將 Texinfo 輸出變更為 UTF-8。由於整個文件工具鏈現在都是 UTF-8,並且文本中越來越多的非 ISO-8859-1 字元,因此將 Texinfo 輸出保持在 ISO 8859-1 中只會造成不必要的複雜性。根據平台的不同,會發生轉換失敗,從而導致建置失敗或奇怪地轉換字元。透過將輸出變更為 UTF-8,可以避免整個編碼轉換過程。 https://git.postgresql.org/pg/commitdiff/e2799528d4f232f8d5fcbddb04629d73f7b342c9
Robert Haas 推送
John Naylor 推送
將 unicode_combining_table 重新命名為 unicode_width_table。沒有功能上的變更。未來的提交將使用此表格用於組合字元以外的其他目的。https://git.postgresql.org/pg/commitdiff/eb0d0d2c7300c9c5c22b35975c11265aa4becc84
變更 mbbisearch 以回傳字元範圍。新增寬度欄位至 mbinterval,並讓 mbbisearch 回傳找到的範圍的指標,而不是僅僅回傳表示成功的布林值。未來的提交將新增零以外的另一個寬度,這將允許其使用相同的搜尋。檢閱者:Jacob Champion 討論:https://postgres.tw/message-id/CAFBsxsGOCpzV7c-f3a8ADsA1n4uZ%3D8puCctQp%2Bx7W0vgkv%3Dw%2Bg%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/78ab944cd4b9977732becd9d0bc83223b88af9a2
還原「變更 mbbisearch 以回傳字元範圍」。此操作還原了提交 78ab944cd4b9977732becd9d0bc83223b88af9a2。在我提交 eb0d0d2c7 和 78ab944cd 之後,我決定新增一個健全性檢查,以防範「不可能發生」的情況,以求謹慎。結果表明,它已經在官方 Unicode 來源資料中發生了,也就是說,一個字元可以既寬又是一個組合字元。這個事實使得前面提到的提交變得不必要,因此還原它們。討論:https://postgres.tw/message-id/CAFBsxsH5ejH4-1xaTLpSK8vWoK1m6fA1JBtTM6jmBsLfmDki1g%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/f8c8a8bccc23f6ca38f7a92c9a614e73fa1fcfb6
還原「將 unicode_combining_table 重新命名為 unicode_width_table」。此操作還原了提交 eb0d0d2c7300c9c5c22b35975c11265aa4becc84。在我提交 eb0d0d2c7 和 78ab944cd 之後,我決定新增一個健全性檢查,以防範「不可能發生」的情況,以求謹慎。結果表明,它已經在官方 Unicode 來源資料中發生了,也就是說,一個字元可以既寬又是一個組合字元。這個事實使得前面提到的提交變得不必要,因此還原它們。討論:https://postgres.tw/message-id/CAFBsxsH5ejH4-1xaTLpSK8vWoK1m6fA1JBtTM6jmBsLfmDki1g%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/1563ecbc1be8b8e5c57651cf5c87f90dea9aea8f
更新 Unicode 時,一併更新顯示寬度。ucs_wcwidth() 中硬編碼的「寬字元」集上次更新大約是在 Unicode 5.0 時代。這導致在列印表情符號和其他已被指定為寬字元或全寬字元的碼位時產生錯位。為了修正並保持最新狀態,擴展 update-unicode 以從官方來源下載寬字元和全寬字元的碼位清單。順便一提,移除一些關於非間隔字元的註解,這些註解自從我們移除先前的硬編碼邏輯以來,就一直不準確。Jacob Champion 報告和檢閱者:Pavel Stehule 討論:https://postgres.tw/message-id/flat/CAFj8pRCeX21O69YHxmykYySYyprZAqrKWWg0KoGKdjgqcGyygg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/bab982161e0590746a2fd2a03043b27108b23ac6
將 Unicode 組合字元的收集範圍擴展到 BMP 之外。先前的限制可能是從較舊的手工編碼表格中繼承下來的。自從提交 bab982161 之後,我們在 mbinterval 中有足夠的空間來儲存更大的碼位,因此收集所有組合字元。討論:https://postgres.tw/message-id/49ad1fa0-174e-c901-b14c-c484b60907f1%40enterprisedb.com https://git.postgresql.org/pg/commitdiff/5bc429aacb3722e55638a776332eebfa88dd60e5
Peter Geoghegan 推送了
contrib/amcheck:新增 heapam CHECK_FOR_INTERRUPTS()。新增一個 CHECK_FOR_INTERRUPTS() 呼叫,使堆積關係驗證能夠回應查詢取消。作者:Mark Dilger mark.dilger@enterprisedb.com 討論:https://postgr.es/m/CAH2-Wzk-9RtQgb2QiuLv8j2O0j9tSFKPmmch5nWSZhguUxvbrw%40mail.gmail.com 向後移植:14-,其中引入了 amcheck 堆積驗證。https://git.postgresql.org/pg/commitdiff/191dce109be3870f5800003bbee1484c8a92c9dd
vacuumlazy.c:移除不必要的括號。這可以說是在提交 b4af70cb 中的一個小疏忽,該提交清理了修改 IndexBulkDeleteResult 變數的函數的函數簽名。https://git.postgresql.org/pg/commitdiff/de5dcb0796e281fae0ee25ea33b915240de319f6
重新排序 log_autovacuum_min_duration 日誌輸出。此順序似乎更自然。它從特定於堆積和索引資料結構的細節開始,並以自動清理工作程序在 VACUUM/ANALYZE 操作期間產生的系統級成本結束。作者:Peter Geoghegan pg@bowt.ie 討論:https://postgr.es/m/CAH2-WzkzxK6ahA9xxsOftRtBX_R0swuHZsvo4QUbak1Bz7hb7Q@mail.gmail.com 向後移植:14-,它以各種方式增強了日誌輸出。https://git.postgresql.org/pg/commitdiff/fdfbfa24fa6ae50d9e78dd70f835146f4b40e2fb
track_io_timing 日誌記錄:不要特殊處理 0 毫秒。調整提交 94d13d474d 新增的 track_io_timing 相關日誌記錄程式碼。透過移除抑制零毫秒輸出的邏輯,使其與附近的其他自動清理和自動分析日誌記錄程式碼保持一致。log_autovacuum_min_duration 日誌輸出現在在其報告中可靠地顯示「read:」和「write:」基於毫秒的值(當啟用 track_io_timing 時)。作者:Peter Geoghegan pg@bowt.ie 檢閱者:Stephen Frost sfrost@snowman.net 討論:https://postgr.es/m/CAH2-WznW0FNxSVQMSRazAMYNfZ6DR_gr5WE78hc6E1CBkkJpzw@mail.gmail.com 向後移植:14-,其中引入了 track_io_timing 日誌記錄。https://git.postgresql.org/pg/commitdiff/bda822554b96c6564911df95fcb898d6c30efe46
Daniel Gustafsson 推送了
避免在迴圈結構中調用 PQfnumber。當循環遍歷 SQL 查詢的結果集時,在迴圈主體之前提取欄位編號以避免重複調用 PQfnumber 是一種已建立的模式。在非常寬的表格上,這可能會對效能產生影響,但在常見情況下不會很明顯。這修正了一些在迴圈主體中提取欄位編號的查詢。作者:Hou Zhijie houzj.fnst@fujitsu.com 檢閱者:Nathan Bossart bossartn@amazon.com 討論:https://postgr.es/m/OS0PR01MB57164C392783F29F6D0ECA0B94139@OS0PR01MB5716.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/d782d5987e1022ba70171bcf3507cd87564ef23c
docs:闡明 bgw_restart_time 文件。作者:Dave Cramer davecramer@gmail.com 檢閱者:Tom Lane tgl@sss.pgh.pa.us 討論:https://postgr.es/m/CADK3HHLZmqAQZ2ByPDQQ9yhGqax36kksq6sDkV0yYzsxw6ipvQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/10d2695b0cbad0ef64367d9c900ca59b9abcc80f
Stephen Frost 推送了
docs:為 SQL 命令新增命令標籤。提交 6c3ffd6 新增了幾個新的預定義角色,但沒有正確地使用命令標籤包裝這些角色描述中提到的 SQL 命令,因此現在新增它們。向後移植:14 報告者:Michael Banck 討論:https://postgr.es/m/606d8b1c.1c69fb81.3df04.1a99@mx.google.com https://git.postgresql.org/pg/commitdiff/f01727290fe0c7fdf7bb5a0c2526a15db8c2c52f
對 ANALYZE 預取使用 maintenance_io_concurrency。當預取 ANALYZE 的頁面時,我們應該使用 maintenance_io_concurrenty(透過呼叫 get_tablespace_maintenance_io_concurrency(),而不是 get_tablespace_io_concurrency())。ANALYZE 預取是在 c6fc50c 中引入的,因此向後移植到 14。向後移植:14 報告者:Egor Rogov 討論:https://postgr.es/m/9beada99-34ce-8c95-fadb-451768d08c64%40postgrespro.ru https://git.postgresql.org/pg/commitdiff/ce42efaa2696fa74dffcbaa7d25c4ef00e93e1c0
Noah Misch 推送了