萬聖節快樂!
pg_statement_rollback v1.3 釋出,這是一個添加了伺服器端事務並支援語句級回滾的擴充套件。釋出。
https://archives.postgresql.org/pgsql-jobs/2021-10/
Planet PostgreSQL:https://planet.postgresql.org/
本週 PostgreSQL 週報由 David Fetter 提供。
請在太平洋標準時間(PST8PDT)週日晚上3:00之前將新聞和公告發送至 david@fetter.org。
Michaël Paquier 提交
添加了複製命令 READ_REPLICATION_SLOT。目前該命令僅支援物理槽,並返回槽的型別、restart_lsn 和 restart_tli。這對於即將到來的與 pg_receivewal 相關的補丁將非常有用,它允許工具能夠從槽的位置流式傳輸,而不是從後端報告的最後一個 WAL 位置(由 IDENTIFY_SYSTEM 返回)進行流式傳輸(如果發現歸檔目錄為空),這在切換到使用相同槽的不同歸檔位置以避免 WAL 段歸檔中的空洞時將是一個優勢。作者:Ronan Dunklau 審閱者:Kyotaro Horiguchi, Michael Paquier, Bharath Rupireddy 討論:https://postgr.es/m/18708360.4lzOvYHigE@aivenronan https://git.postgresql.org/pg/commitdiff/b4ada4e19fd7bedb433e46516ccd0ca4213d2719
允許 pg_receivewal 從槽的 restart LSN 流式傳輸。在此補丁之前,執行時,pg_receivewal 的流式傳輸起始點將是歸檔的當前位置(如果本地 WAL 寫入目錄中有內容),如果沒有歸檔,pg_receivewal 將回退到由 IDENTIFY_SYSTEM 命令報告的當前 WAL flush 位置。如果出於某種原因移動了 pg_receivewal 的 WAL 檔案,最好嘗試從上次停止的地方(即複製槽的 restart_lsn)重新開始,而不是直接跳到當前的 flush 位置,以避免備份的 WAL 出現空洞。此提交更改了 pg_receivewal 以使用以下方法序列來確定起始流式傳輸 LSN: - 掃描本地歸檔。 - 如果後端支援並且定義了槽,則使用槽的 restart_lsn。 - 回退到 IDENTIFY_SYSTEM 報告的當前 flush LSN。為了與舊版伺服器相容,我們僅在後端版本至少為 15 時嘗試使用 READ_REPLICATION_SLOT,並且如果命令不受支援,則回退到從當前 flush LSN 流式傳輸的舊行為。添加了一些 TAP 測試來覆蓋此功能。作者:Ronan Dunklau 審閱者:Kyotaro Horiguchi, Michael Paquier, Bharath Rupireddy 討論:https://postgr.es/m/18708360.4lzOvYHigE@aivenronan https://git.postgresql.org/pg/commitdiff/f61e1dd2cee6b1a1da75c2bb0ca3bc72f18748c1
修復 READ_REPLICATION_SLOT 的 TAP 測試中過於寬鬆的正則表示式模式。當槽不存在時,檢查 NULL 輸出的 case 過於寬鬆,因為它會透過查詢生成的任何輸出。這修復了匹配模式,使其成為應有的樣子,僅匹配“||”。b4ada4e 中的疏忽。https://git.postgresql.org/pg/commitdiff/0db343dc13bc8657976c39ddbf7e0c7db8b2efff
文件:修復 pg_receivewal 頁面的語法。由 f61e1dd 引入。作者:Kyotaro Horiguchi 討論:https://postgr.es/m/20211026.112304.1962954080884317968.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/8af09daf5629e9b85f37cc23983819b8ccd11b43
新增從模板資料庫複製共享依賴項的測試。正如 98ec35b 所示,此程式碼區域從未被覆蓋。此提交添加了一個新的 TAP 測試,其中包含一個包含一組少量共享依賴項的模板資料庫,這些依賴項將被複制到一個新資料庫中。測試是在 createdb 中新增的,我們從未在此處測試過 -T 是否生成帶有 TEMPLATE 的查詢。審閱者:Tom Lane 討論:https://postgr.es/m/YXDTl+PfSnqmbbkE@paquier.xyz https://git.postgresql.org/pg/commitdiff/70bfc5ae537c8bfeed4849b7d9f814de89a155fe
文件:修復 sepgsql 頁面中到 SELinux 使用者指南的連結。報告者:Anton Voloshin 討論:https://postgr.es/m/15a86d4e-a237-1acd-18a2-fd69730f1ab9@postgrespro.ru 向後移植到:10 https://git.postgresql.org/pg/commitdiff/cc1853b30048307d93f8aa30f4d64f88b527f04d
為 archive_cleanup_command 和 recovery_end_command 新增 TAP 測試。這添加了檢查兩個命令執行的測試。recovery test 002_archiving.pl 被很好地適應了,因為那裡已經觸發了兩次 promotion,即使其中任何一個命令失敗也不會影響恢復或 promotion。命令成功是透過“echo”命令生成的檔案來檢查的,該檔案應該可以在所有 buildfarm 環境中工作,即使是 Msys(但我們很快就會知道)。命令失敗是透過一個指向不存在路徑的“echo”命令來測試的,透過掃描後端日誌來確保失敗發生。兩者都依賴於後端從資料資料夾的根目錄觸發命令,從而使其邏輯更加健壯。感謝 Neha Sharma 在 Windows 上進行的額外測試。作者:Amul Sul, Michael Paquier 審閱者:Andres Freund, Euler Taveira 討論:https://postgr.es/m/CAAJ_b95R_c4T5moq30qsybSU=eDzDHm=4SPiAWaiMWc2OW7=1Q@mail.gmail.com https://git.postgresql.org/pg/commitdiff/46dea2419ee7895a4eb3d048317682e6f18a17e1
加速 pg_receivewal 的 TAP 測試。此提交透過一些簡單的想法將這些測試的速度提高了 25-30%,這些想法可以減少 pg_receivewal 寫入的資料量:- 使用 1MB 的段大小。在減少 pg_receivewal 為新段零化的資料量的同時,這提高了非預設段大小的程式碼覆蓋率。- 在涉及槽 restart_lsn 的最後一個測試中,生成一個檢查點來推進 redo LSN 和由建立的槽保留的 WAL,從而減少需要歸檔的段數。這佔了大部分的收益。- 最小化插入到 dummy 表中的資料量。審閱者:Ronan Dunklau 討論:https://postgr.es/m/YXqYKAdVEqmyTltK@paquier.xyz https://git.postgresql.org/pg/commitdiff/d680992af5406245f769b697fbb4e130e6220664
Heikki Linnakangas 提交
Robert Haas 提交
StartupXLOG:在 XLogReportParameters 之後呼叫 CleanupAfterArchiveRecovery。這可以更好地將相關操作分組在一起,因為在一般允許 WAL 寫入之前,所有需要的 WAL 記錄都由一段不間斷的程式碼寫入。由於 CleanupAfterArchiveRecovery() 只是(1)執行 recovery_end_command,(2)刪除非父 xlog 檔案,以及(3)歸檔任何最終的區域性段,因此應該是安全的,因為所有這些事情幾乎都與 XLogReportParameters() 寫入的 WAL 記錄無關。Amul Sul,根據我的建議。討論:http://postgr.es/m/CAAJ_b97fysj6sRSQEfOHj-y8Jfd5uPqOgO74qast89B4WfD+TA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/a75dbf7f9ee6ff0c0e2ab4b224b04fc50c4e6577
StartupXLOG:不要重複停用/啟用本地 xlog 插入。在啟動過程中寫入 WAL 記錄的所有程式碼(在允許寫入之前)現在是連續的,因此沒有理由連續三次關閉該功能以本地寫入 WAL,然後再重新開啟它。不幸的是,這需要在 checkpointer 中進行一些小小的技巧,它需要單獨啟用寫入 WAL 以便寫入檢查點記錄。因為如果我們在單使用者模式下,該程式碼可能與 StartupXLOG() 在同一個程序中執行,我們必須儲存/恢復 LocalXLogInsertAllowed 標誌的狀態。希望我們能在未來的重構中消除這個瑕疵,但它也不是太糟糕。Amul Sul,經過我的修改。討論:http://postgr.es/m/CAAJ_b97fysj6sRSQEfOHj-y8Jfd5uPqOgO74qast89B4WfD+TA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/18e0913a420349d373cfd8e45b91b4777501fb74
從 CreateReplicationSlot 中刪除無用的程式碼。根據註釋,我們在此處初始化 sendTimeLineIsHistoric 和 sendTimeLine 以便 WalSndSegmentOpen 使用。然而,唯一可能發生這種情況的方式是 logical_read_xlog_page 呼叫 WALRead。由於 logical_read_xlog_page 內部初始化相同的全域性變數,因此我們不必在此處也這樣做。這些初始化自複製槽在提交 858ec11858a914d4c380971985709b6d6b7dd6fc 中引入以來就一直存在。它們當時肯定也是無用的,因為邏輯解碼那時還不存在,並且物理複製在建立槽時不會檢查任何 WAL。我沒有檢查所有中間版本,但我懷疑這段程式碼在任何時候都沒有做過任何有用的事情。為了減少未來的混淆,刪除這段程式碼。由於沒有功能缺陷,因此不進行回溯。討論:http://postgr.es/m/CA+TgmobSWzacEs+r6C-7DrOPDHoDar4i9gzxB3SCBr5qjnLmVQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/902a2c280012557b85c7e0fce3f6f0e355cb2d69
新增 enable_timeout_every() 以重複觸發相同的超時。當您希望只觸發一次超時時,仍然可以使用 enable_timeout_at() 和 enable_timeout_after()。補丁作者:我,根據 Tom Lane 的建議。討論:http://postgr.es/m/2992585.1632938816@sss.pgh.pa.us 討論:http://postgr.es/m/CA+TgmoYqSF5sCNrgTom9r3Nh=at4WmYFD=gsV-omStZ60S0ZUQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/732e6677a667c03b1551a855e3216644b0f125ec
報告耗時較長的啟動操作的進度。使用者有時會在伺服器啟動時發出少量訊息然後長時間沒有訊息時感到擔憂。通常,發生這種情況的原因是系統花費很長時間來應用 WAL,或者花費很長時間來重置未記錄的關聯,或者花費很長時間來 fsync 資料目錄,但很難說出是哪種情況。為了解決這個問題,添加了一個新的 'log_startup_progress_interval' 設定,預設為 10 秒。當一個已知可能耗時較長的操作花費的時間超過此時間時,我們將在此間隔每次過去時記錄一個狀態更新。為了避免不必要的日誌干擾,在待機模式下不要記錄任何關於 WAL 回放的資訊。Nitin Jadhav 和 Robert Haas,審閱者 Amul Sul, Bharath Rupireddy, Justin Pryzby, Michael Paquier, 和 Álvaro Herrera。討論:https://postgr.es/m/CA+TgmoaHQrgDFOBwgY16XCoMtXxsrVGFB2jNCvb7-ubuEe1MGg@mail.gmail.com 討論:https://postgr.es/m/CAMm1aWaHF7VE69572_OLQ+MgpT5RUiUDgF1x5RrtkJBLdpRj3Q@mail.gmail.com https://git.postgresql.org/pg/commitdiff/9ce346eabf350a130bba46be3f8c50ba28506969
初始化變數以安撫編譯器。根據 Nathan Bossart。討論:http://postgr.es/m/FECEE7FC-CB74-45A9-BB24-89FEE52A9585@amazon.com https://git.postgresql.org/pg/commitdiff/a030a0c5ccb113ccd09d0f0b82f1edb5e49ed607
在獲取 basebackup 的 WAL 時,使用有意義的 TLI 報告錯誤。以前的程式碼使用了 ThisTimeLineID,它在這裡甚至可能沒有被初始化,儘管在實踐中它通常已經被初始化了,因為 pg_basebackup 在呼叫 BASE_BACKUP 之前會發出 IDENTIFY_SYSTEM,而這會作為副作用初始化 ThisTimeLineID。但這並不算真正足夠好,不僅因為我們不應該依賴於這樣的副作用,而且因為 TLI 可能會在此期間發生變化。幸運的是,我們可以方便地訪問更有意義的 TLI 值,所以改用它們。由於此邏輯的編碼方式,在此處使用可能不正確的 TLI 的後果不會比一個稍微令人困惑的錯誤訊息更糟,我不想在這裡冒任何風險,所以至少目前不進行回溯。補丁作者:我,審閱者:Kyotaro Horiguchi 和 Michael Paquier 討論:http://postgr.es/m/CA+TgmoZRNWGWYDX9RgTXMG6_nwSdB=PB-PPRUbvMUTGfmL2sHQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/2f5c4397c39dea49c5608ba583868e26d767fc32
修復啟動進度報告中的競爭條件。提交 9ce346eabf350a130bba46be3f8c50ba28506969 添加了啟動進度報告,但 begin_startup_progress_phase 存在競爭條件:前一個階段的超時可能在我們重新排程下一個階段的中斷之前觸發。為了避免競爭,停用超時,清除標誌,然後重新啟用超時。補丁作者:我,審閱者:Nitin Jadhav。討論:https://postgr.es/m/CA+TgmoYq38i6iAzfRLVxA6Cm+wMCf4WM8wC3o_a+X_JvWC8bJg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/5ccceb2946d4104804f8dca67515b602f5e78cdd
Thomas Munro 推送
Daniel Gustafsson 提交
確保槽在使用前被清零。以前的程式碼依賴於槽的記憶體被其他地方清零,雖然在這種情況下確實如此,但並非保證成立的合同。顯式清除 tts_isnull 陣列以確保槽從已知狀態填充。回溯到 v14,其中引入了目錄多重插入。審閱者:Michael Paquier michael@paquier.xyz 討論:https://postgr.es/m/CAJ7c6TP0AowkUgNL6zcAK-s5HYsVHVBRWfu69FRubPpfwZGM9A@mail.gmail.com 向後移植到:14 https://git.postgresql.org/pg/commitdiff/e63ce9e8d6ac8dced20592c4134004640f9f5644
修復 src/test/ssl 目標的 VPATH 構建。提交 b4c4a00ea 將 sslfiles 目標的核心重構到一個單獨的 makefile 中,以便覆蓋 Makefile.global 中的設定。然而,這個檔案的呼叫沒有包含 VPATH 構建的絕對路徑,導致“make clean”失敗。透過提供新 makefile 的路徑來修復。報告者:Andres Freund andres@anarazel.de 討論:https://postgr.es/m/20211026174152.jjcagswnbhxu7uqz@alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/349cd8c582a1e666c9c804850cf5b532b86cd1b4
修復註釋中的拼寫錯誤。作者:Peter Smith smithpb2250@gmail.com 討論:https://postgr.es/m/CAHut+PsN_gmKu-KfeEb9NDARoTPbs4AN4PPu=6LZXFZRJ13SEw@mail.gmail.com https://git.postgresql.org/pg/commitdiff/8af57ad81578f825ac8c46840c841833db205106
Fujii Masao 提交
Jeff Davis 推送
允許對 pg_log_backend_memory_contexts() 執行 GRANT。刪除超級使用者檢查,允許任何已授予 pg_log_backend_memory_contexts() 許可權的使用者記錄任何後端的記憶體上下文。請注意,這可能允許特權非超級使用者記錄超級使用者後端的記憶體上下文,但正如討論的,這似乎不是問題。審閱者:Nathan Bossart, Bharath Rupireddy, Michael Paquier, Kyotaro Horiguchi, Andres Freund 討論:https://postgr.es/m/e5cf6684d17c8d1ef4904ae248605ccd6da03e72.camel@j-davis.com https://git.postgresql.org/pg/commitdiff/f0b051e322d530a340e62f2ae16d99acdbcb3d05
授予 pg_read_all_stats 記憶體檢視。將檢視 pg_backend_memory_contexts 和 pg_shmem_allocations 的許可權授予角色 pg_read_all_stats。還授予這些檢視所依賴的底層函式的許可權。作者:Bharath Rupireddy bharath.rupireddyforpostgres@gmail.com 審閱者:Nathan Bossart bossartn@amazon.com 討論:https://postgr.es/m/CALj2ACWAZo3Ar_EVsn2Zf9irG+hYK3cmh1KWhZS_Od45nd01RA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/77ea4f94393eb4a16df32b573bf053bedaef2e09
Amit Kapila 提交
允許釋出模式下的表。Create/Alter Publication 中的新選項“FOR ALL TABLES IN SCHEMA”允許指定一個或多個模式,釋出者從中選擇表將資料傳送給訂閱者。新語法允許指定表和模式。例如:CREATE PUBLICATION pub1 FOR TABLE t1,t2,t3, ALL TABLES IN SCHEMA s1,s2; 或 ALTER PUBLICATION pub1 ADD TABLE t1,t2,t3, ALL TABLES IN SCHEMA s1,s2; 已新增新的系統表“pg_publication_namespace”,以維護使用者希望透過釋出來發布的模式。修改了輸出外掛(pgoutput),以便在關係屬於模式釋出的一部分時釋出更改。更新了 pg_dump 以識別和轉儲模式釋出。更新了 \d 系列命令以顯示模式釋出,並且 \dRp+ 變體現在將顯示關聯的模式(如果存在)。作者:Vignesh C, Hou Zhijie, Amit Kapila 語法建議者:Tom Lane, Alvaro Herrera 審閱者:Greg Nancarrow, Masahiko Sawada, Hou Zhijie, Amit Kapila, Haiying Tang, Ajin Cherian, Rahila Syed, Bharath Rupireddy, Mark Dilger 測試者:Haiying Tang 討論:https://postgres.tw/message-id/CALDaNm0OANxuJ6RXqwZsM1MSY4s19nuH3734j4a72etDwvBETQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/5a2832465fd8984d089e8c44c094e6900d987fcd
為模式釋出新增 tap 測試。這為提交 5a2832465f(“允許釋出模式下的表。”)添加了附加測試。這允許測試透過模式釋出釋出的表中資料的流式傳輸。作者:Vignesh C, Haiying Tang 審閱者:Greg Nancarrow, Hou Zhijie, Amit Kapila 討論:https://postgres.tw/message-id/CALDaNm0OANxuJ6RXqwZsM1MSY4s19nuH3734j4a72etDwvBETQ%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/6b0f6f79eef2168ce38a8ee99c3ed76e3df5d7ad
Magnus Hagander 已推送
Peter Geoghegan 提交
進一步加固 nbtree posting split 程式碼。在 posting list split 程式碼周圍新增更多防禦性檢查。這些應該比現有的任何檢查都能更早、更可靠地檢測到涉及重複表 TID 的損壞。作為提交 8f72bbac 的後續。討論:https://postgr.es/m/CAH2-WzkrSY_kjyd1_M5xJK1uM0govJXMxPn8JUSvwcUOiHuWVw@mail.gmail.com 回溯:13-,其中引入了 nbtree 去重。https://git.postgresql.org/pg/commitdiff/a5213adf3d351a31c5f5eae1a756a9d3555dc31c
修復 nbtree 錯誤訊息中專案的排序。提交 a5213adf 中的疏忽。回溯:13-,與提交 a5213adf 相同。https://git.postgresql.org/pg/commitdiff/c2381b51049bad5dd1863ab1116b315bd7693b7c
刪除過時的 nbtree LP_DEAD 專案註釋。_bt_findinsertloc() 上方的關於 LP_DEAD 專案的註釋現在已經過時。我們已經在同一註釋塊的更早部分討論了索引元組的刪除。提交 d168b666 中的疏忽。https://git.postgresql.org/pg/commitdiff/4c6afd805b8db3492c8f409ecdba192d853fd571
在 heapam 中將 pg_unreachable() 降級為斷言。提交 d168b66682,它對索引刪除進行了大修,在對從索引頁排序的堆 TID 時使用的排序比較器的末尾添加了一個 pg_unreachable()。這允許編譯器應用假設索引 AM 的堆 TID 始終唯一的最佳化。考慮到最近關於 Postgres 上索引中重複 TID 引起損壞的報告,現在這似乎不是一個好主意。
Tom Lane 提交
改進 contrib/amcheck's CREATE INDEX CONCURRENTLY 的測試。提交 fdd965d07 和 3cd9c3b92 透過併發啟動兩個獨立的 pgbench 執行來測試 CREATE INDEX CONCURRENTLY。這是必需的,以便只有一個客戶端執行緒執行 CREATE INDEX CONCURRENTLY,從而避免兩個 CIC 之間的死鎖。然而,有一種更好的方法,就是使用一個廣告鎖來防止併發的 CIC。這更好,部分原因在於測試程式碼更短、更易讀,但主要是因為它會自動擴充套件以啟動適量的 CIC 相對於 INSERT 事務的數量。如提交的,通常一半到四分之三的 CIC 事務是無用的,因為 INSERT 事務已經停止。順便,刪除了 background_pgbench,它被新增以支援這些測試,現在不再需要了。如果我們以後發現它的用途,我們可以隨時重新新增它。回溯到 v12;舊版本的 pgbench 缺少此方法所需的條件執行功能。Tom Lane 和 Andrey Borodin 討論:https://postgr.es/m/139687.1635277318@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/7f580aa5d88a9b03d66fcb9a1d7c4fcd69d9e126
加速 snprintf.c 中整數的列印。由於唯一可能的除數是 8、10 和 16,因此使用三個複製品並使用常量除數替換除法迴圈不會增加太多程式碼空間。在大多數機器上,除以常量比除以任意值便宜得多。一個測試僅 snprintf("foo %d") 的微基準測試,使用一個 9 位數字,對我來說(tgl)顯示速度提高了約 2 倍。Postgres 的大部分程式碼並不那麼依賴於 snprintf 的速度,因此在實際情況中的效果幾乎無法衡量。儘管如此,節省一個週期就是贏得一個週期。Arjan van de Ven 討論:https://postgr.es/m/40a4b32a-b841-4667-11b2-a0baedb12714@linux.intel.com 討論:https://postgr.es/m/6e51c644-1b6d-956e-ac24-2d1b0541d532@linux.intel.com https://git.postgresql.org/pg/commitdiff/3c17926eedd51c4094db7c62f59950918044ab1c
更新時區資料檔案至 tzdata release 2021e。斐濟、約旦、巴勒斯坦和薩摩亞的 DST 法規變更。巴貝多、庫克群島、蓋亞那、紐埃、葡萄牙和湯加的歷史修正。此外,Pacific/Enderbury 時區已重新命名為 Pacific/Kanton。以下時區已合併到附近人口更多、時鐘自 1970 年以來一致的時區:Africa/Accra、America/Atikokan、America/Blanc-Sablon、America/Creston、America/Curacao、America/Nassau、America/Port_of_Spain、Antarctica/DumontDUrville 和 Antarctica/Syowa。https://git.postgresql.org/pg/commitdiff/937aafd6d5580b81134c7f303d04cf7561ad0309
測試和記錄 plpgsql 中初始化交叉引用的行為。我們有一個測試表明一個變數在其自身的初始化表示式中,以及在同一塊中的先前表示式中是不可引用的。它**可以**在同一塊中的後續表示式中引用,但據我所知,沒有測試用例能覆蓋到這一點。新增一個,並新增一些錯誤案例。此外,記錄這是可能的,因為文件未能涵蓋這一點。根據 tomas at tuxteam 的提問。我個人認為沒有必要回溯此更改,但我們應該確保將來不會破壞它。討論:https://postgr.es/m/20211029121435.GA5414@tuxteam.de https://git.postgresql.org/pg/commitdiff/a2a731d6c9db0ba650aa6f7c4fe349ccf712f74d
Peter Eisentraut 提交
刪除 standalone-profile.xsl 中未使用的塊。自 1707a0d2aa6b2bcfe78f63836c769943a1a6b9e0 起未使用。https://git.postgresql.org/pg/commitdiff/b8b62b4be28b8acd36d32d5db65162bbbcd3a754
uuid-ossp:刪除與 pgcrypto 過時的構建連線。自 a8ed6bb8f4cf259b95c1bff5da09a8f4c79dca46 起未使用。https://git.postgresql.org/pg/commitdiff/237c12aabe39a58f3f5364fd94e0ca8ae8824957
文件:刪除一些過時的 pgcrypto 文件。pgcrypto 文件包含對使用的外部程式碼的確認,但其中一些程式碼已移至 src/common/,因此不再有意義地將其與 pgcrypto 提及,因此將其刪除。https://git.postgresql.org/pg/commitdiff/e6c60719e6c6ee9bd396f430879e1de9079bf74c
pg_dump:重構訊息。這減少了需要翻譯的獨立訊息數量。https://git.postgresql.org/pg/commitdiff/fd2706589a7da4be6f6998befdf8e5fdea1565b8