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 提供。
请在太平洋标准时间(PST8PDT)周日晚上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 添加製表符補全。作者: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。嚴格來說這不是一個 bug,但由於所有對目錄對象的引用都帶有模式限定,我們最好保持一致。此遺漏首次出現在 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 的 Deja vu,適用於另一個反斜槓命令。嚴格來說這不是一個 bug,但由於所有對目錄對象的引用都帶有模式限定,我們最好保持一致。此遺漏首次出現在 commit ad600bba0422 中,並在 a4d75c86bf15 中複製;向後移植到 14。作者:Justin Pryzby pryzbyj@telsasoft.com 討論:https://postgr.es/m/20210827193151.GN26465@telsasoft.com https://git.postgresql.org/pg/commitdiff/1f092a309eeecd097938bacc201c779574ced3b6
保持分區表的統計信息最新。在關於分區表上的 analyze 的長期討論中,我在恢復 0827e8af70f4 時漏掉了一件事,那就是維護分區表的 analyze 計數和最後 analyze 時間。這是一個相對微小的改動,它使用戶能夠評估在分區表上調用手動 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 提交
防止 regex 反向引用有時在不應該匹配時進行匹配。cdissect() 中的遞歸在拒絕部分匹配後,對清除捕獲括號的匹配數據時不夠謹慎。這可能導致後續的反向引用成功,儘管它實際上應該因為沒有定義的引用而失敗。為了解決這個問題,需要更嚴格地考慮 cdissect 遞歸的各個級別之間的合同。有了正確的規範,我們可以通過更少的重置匹配數據來修復這個問題;關鍵決定是,一個失敗的子匹配現在應負責清除它可能設置的任何匹配。代碼中有足夠多的交叉檢查和優化,使得展示這個問題並不那麼容易;通常,匹配會按預期失敗。此外,即使可能容易受到攻擊的正規表達式,大多數情況下也是用戶錯誤,因為編寫一個沒有始終有引用的反向引用的正規表達式沒有多大意義。這些事實可能解釋了為什麼這個問題沒有被發現,儘管它幾乎肯定是幾十年前就存在的。討論:https://postgr.es/m/151435.1629733387@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/9bbf6f7341f2b5a8ce41d838154380faa7346101
修復正規表達式中包含 "{0}" 的捕獲括號的誤行為。類似 "(.){0}...\1" 的正規表達式會出現 "無效的反向引用號"。從表面上看,這並不奇怪,因為如果捕獲組被迭代零次,它將永遠不會被匹配。然而,像 Perl 的引擎等其他引擎不會對此抱怨,我們也不會為相關情況(如 "(.)|\1",儘管該反向引用永遠不會成功)拋出錯誤。此外,如果零次迭代的情況發生在運行時而不是編譯時——例如,當找不到 "x" 時為 "(x)*...\1"——這也不是錯誤,我們只會認為反向引用不匹配。更糟糕的是,對於嵌套情況,如 "((.)){0}...\2",沒有拋出錯誤;而且,更糟糕的是,這些情況可能導致斷言失敗。(儘管在非斷言構建中似乎沒有發生特別糟糕的事情。)讓我們修復它,使其不再拋出錯誤,而是認為反向引用永遠不匹配,以便零次迭代的編譯時檢測與運行時檢測相同。根據 Mark Dilger 的報告。這似乎是 Spencer 庫中的一個原始錯誤,因此向後移植到所有支持的版本。在 v14 之前,我們還需要向後移植 commit cb76fbd7e/00116dee5 的一個方面,即創建捕獲節點 subRE,使其具有子表達式的 begin/end 狀態,而不是外部 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",所以我們不需要兩者。Commit ffd3944ab 中的疏忽,由 tanghy.fnst 發現。順便,換行附近的一個測試使其更具可讀性。討論:https://postgr.es/m/OS0PR01MB61137C4054774F44E3A9DC89FBC69@OS0PR01MB6113.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/373e08a9f771e724efd3bd29f78c39515792dcf3
更誠實地處理正規表達式 makesearch 和 MATCHALL 的交互。對 commit 824bf7190 的二次思考:我們在確定一個 NFA 是否為 MATCHALL 模式後,對其應用 makesearch()。在前面加上 ".*" 並不會使其變為非 MATCHALL,但它確實改變了最大可能匹配長度,而 makesearch() 並未更新該值。考慮到 search NFAs 的風格化用法,這沒有產生任何不良影響,但保持數據結構的一致性似乎更好。特別是,修復此問題使得 matchuntil() 中對 MATCHALL 的檢查能更誠實地處理:我們現在可以斷言 maxmatchall 是無窮大,而不是愚蠢地假設它應該這樣工作。順便,改進 dump[c]nfa 中的代碼,以便將無限的 maxmatchall 打印為 "inf" 而不是一個魔術數字。 https://git.postgresql.org/pg/commitdiff/8f72becd6b9484fbb429651d8859faa36532a35a
在 pg_stat 統計信息中計算 SP-GiST 索引掃描。不知何故,spgist 忽略了調用 pgstat_count_index_scan() 的需要。因此,對於 SP-GiST 索引,pg_stat_all_indexes.idx_scan 和等價列從未變成非零,儘管相關的每元組計數器工作正常。此修復與其他索引 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
文檔:在 src/backend/regex/README 中添加有關 LACON 執行的簡要說明。我在考慮一個可能的優化時寫了這個,但無論優化是否發生,它都是對現有代碼的有用的描述。因此,單獨推送。 https://git.postgresql.org/pg/commitdiff/10d58228bb1c824c5124ecd1b6c5e46a3c157a39
Amit Kapila 提交
修復 Alter Subscription 的 Add/Drop Publication 行為。當前的刷新行為試圖只刷新添加/刪除的 publication,但這會導致從 subscription 中刪除錯誤的表。我們不能只刷新刪除的 publication,因為它很有可能一些表已經在那時被從 publication 中移除了,現在這些表將作為 subscription 的一部分保留。此外,被刪除的 publication 的表也可能屬於另一個 publication,所以我們不能刪除它們。因此,我們決定默認情況下,add/drop 命令也將像 REFRESH PUBLICATION 一樣工作,這意味著它們將刷新所有 publication。我們可以為 "add publication" 保留舊行為,但與 "drop publication" 保持一致更好。作者:Hou Zhijie 審閱者:Masahiko Sawada, Amit Kapila 向後移植至: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 數據。為了解決這個問題,我們也為內部創建的 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 添加邏輯更改詳細信息。先前,在訂閱者端,我們為元組數據轉換失敗設置了錯誤上下文回調。此提交用一個全面的回調替換了現有的錯誤上下文回調,以便它不僅顯示數據轉換失敗的詳細信息,還顯示 apply worker 或 table sync worker 正在應用的邏輯更改的詳細信息。額外顯示的信息將是命令、事務 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:從錯誤消息中移除尾隨句點。此提交改進了 ecpg 的錯誤消息,該消息由 commit f576de1db1 更新,以便刪除尾隨句點並將命令名稱大寫。作者:Kyotaro Horiguchi 審閱者:Fujii Masao 討論:https://postgr.es/m/20210819.170315.1413060634876301811.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/71fee6cfaca35208d266c172e63b76d37df88b77
改進短語運算符距離有效值錯誤消息。短語運算符中的距離必須是介於零和 MAXENTRYPOS(含)之間的整數值。但先前關於其有效值的錯誤消息包含了其上限信息,但沒有下限(即零)。此提交改進了錯誤消息,以便它也包含下限信息。向後移植到支持全文本短語搜索的 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 只改進了其中一個,避免了其中的含糊詞語 "positive",而忘記改進另一個。此提交改進了另一個。這將減輕翻譯者的負擔。向後移植到存在錯誤消息的 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://postgresql.ac.cn/message-id/flat/E1mH14Q-0002gh-HS%40gemulon.postgresql.org https://git.postgresql.org/pg/commitdiff/43d4dd87977d5ed66961605649d61973caf80f40
修復 RelationGetNumberOfBlocksInFork() 中分區索引的處理。由於分區索引沒有存儲,因此從中獲取塊數不會產生有意義的結果。現有的調用者已經檢查過他們不會這樣調用它,所以似乎沒有實時問題。但為了正確性,請與其他非存儲 relkinds 一起處理 RELKIND_PARTITIONED_INDEX。審閱者:Michael Paquier michael@paquier.xyz 審閱者:Alvaro Herrera alvherre@alvh.no-ip.org 討論:https://postgresql.ac.cn/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 添加 width 字段,並讓 mbbisearch 返回指向找到的範圍的指針,而不是僅僅布爾值表示成功。未來的提交將添加另一個 width(除了零),這將允許它使用相同的搜索。審閱者 Jacob Champion 討論:https://postgresql.ac.cn/message-id/CAFBsxsGOCpzV7c-f3a8ADsA1n4uZ%3D8puCctQp%2Bx7W0vgkv%3Dw%2Bg%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/78ab944cd4b9977732becd9d0bc83223b88af9a2
恢復 "將 mbbisearch 更改為返回字符範圍"。這將恢復 commit 78ab944cd4b9977732becd9d0bc83223b88af9a2。在提交 eb0d0d2c7 和 78ab944cd 後,我決定添加一個 "不可能發生" 情況的健全性檢查,只是為了謹慎。結果發現,在官方 Unicode 源數據中已經發生了這種情況,即一個字符同時可以是寬字符和組合字符。這一事實使得上述提交變得不必要,因此將兩者都恢復。討論:https://postgresql.ac.cn/message-id/CAFBsxsH5ejH4-1xaTLpSK8vWoK1m6fA1JBtTM6jmBsLfmDki1g%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/f8c8a8bccc23f6ca38f7a92c9a614e73fa1fcfb6
恢復 "將 unicode_combining_table 重命名為 unicode_width_table"。這將恢復 commit eb0d0d2c7300c9c5c22b35975c11265aa4becc84。在提交 eb0d0d2c7 和 78ab944cd 後,我決定添加一個 "不可能發生" 情況的健全性檢查,只是為了謹慎。結果發現,在官方 Unicode 源數據中已經發生了這種情況,即一個字符同時可以是寬字符和組合字符。這一事實使得上述提交變得不必要,因此將兩者都恢復。討論:https://postgresql.ac.cn/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://postgresql.ac.cn/message-id/flat/CAFj8pRCeX21O69YHxmykYySYyprZAqrKWWg0KoGKdjgqcGyygg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/bab982161e0590746a2fd2a03043b27108b23ac6
將 Unicode 組合字符的收集範圍擴展到 BMP 之外。以前的限制可能是從一個舊的手編表格繼承而來的。自 commit bab982161 起,mbinterval 中有足夠的空間存儲更大的代碼點,因此我們收集所有組合字符。討論:https://postgresql.ac.cn/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() 調用,使 heap 關係驗證能夠響應查詢取消。作者:Mark Dilger mark.dilger@enterprisedb.com 討論:https://postgr.es/m/CAH2-Wzk-9RtQgb2QiuLv8j2O0j9tSFKPmmch5nWSZhguUxvbrw%40mail.gmail.com 向後移植:14-(amcheck heap verification 引入處)。 https://git.postgresql.org/pg/commitdiff/191dce109be3870f5800003bbee1484c8a92c9dd
vacuumlazy.c:移除不必要的括號。這是 commit b4af70cb 中一個可以說是很小的疏忽,該 commit 清理了修改 IndexBulkDeleteResult 變量的函數的函數簽名。 https://git.postgresql.org/pg/commitdiff/de5dcb0796e281fae0ee25ea33b915240de319f6
重新排序 log_autovacuum_min_duration 的日誌輸出。此順序似乎更自然。它從特定於堆和索引數據結構的詳細信息開始,並以 autovacuum 工作進程的 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 毫秒。調整 commit 94d13d474d 添加的 track_io_timing 相關日誌代碼。通過刪除抑制零毫秒輸出的邏輯,使其與其他附近的 autovacuum 和 autoanalyze 日誌代碼保持一致。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
文檔:澄清 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 已推送
文檔:為 SQL 命令添加命令標籤。Commit 6c3ffd6 添加了兩個新的預定義角色,但沒有正確地將那些角色描述中提到的 SQL 命令用命令標籤包圍,現在將它們添加。向後移植至:14 報告者:Michael Banck 討論:https://postgr.es/m/606d8b1c.1c69fb81.3df04.1a99@mx.google.com https://git.postgresql.org/pg/commitdiff/f01727290fe0c7fdf7bb5a0c2526a15db8c2c52f
使用 maintenance_io_concurrency 進行 ANALYZE 預讀。在預讀 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 推送