本週人物:https://postgresql.life/post/dave_page/
pgBackRest 2.33 發布,這是一個適用於 PostgreSQL 的備份和恢復系統。https://pgbackrest.org/release.html#2.33
pg_probackup 2.4.15 發布,這是一個用於管理 PostgreSQL 資料庫叢集備份和恢復的工具。https://github.com/postgrespro/pg_probackup/releases/tag/2.4.15
https://archives.postgresql.org/pgsql-jobs/2021-05/
Planet PostgreSQL: https://planet.postgresql.org/
PostgreSQL 每週新聞由 David Fetter 本週為您帶來
請在太平洋標準時間/太平洋夏令時間 (PST8PDT) 週日下午 3:00 前將新聞和公告提交至 david@fetter.org。
Alexander Korotkov 推送了
使 websearch_to_tsquery() 將引號中的文字解析為單一符記。 websearch_to_tsquery() 將引號中的文字分割成符記,並使用詞組運算子將它們連接起來。然而,當符記不包含任何單字時,這會導致令人驚訝的結果。例如,websearch_to_tsquery('"aaa: bbb"') 為 'aaa <2> bbb',因為它等同於 to_tsquery(E'aaa <-> \':\' <-> bbb')。但 websearch_to_tsquery('"aaa: bbb"') 必須是 'aaa <-> bbb' 才能與 to_tsvector('aaa: bbb') 匹配。自 0c4f355c6a 之後,無論如何我們都會用詞組運算子連接複雜符記的詞素。因此,讓我們讓 websearch_to_tsquery() 將引號中的文字解析為單一符記。因此,websearch_to_tsquery() 應該以與 phraseto_tsquery() 相同的方式處理帶引號的文字。這個解決方案正是我們需要的,而且也簡化了程式碼。此變更為不相容的變更,因此我們不會將其向後移植。報告者:Valentin Gatien-Baron 討論:https://postgr.es/m/CA%2B0DEqiZs7gdOd4ikmg%3D0UWG%2BSwWOLxPsk_JW-sx9WNOyrb0KQ%40mail.gmail.com 作者:Alexander Korotkov 審閱者:Tom Lane, Zhihong Yu https://git.postgresql.org/pg/commitdiff/eb086056fec44516efdd5db71244a079fed65c7f
從 pg_trgm 文件中移除版本號的提及。我們通常不會在類似情況下提及版本號。所以,這裡也不要提及。報告者:Bruce Momjian 討論:https://postgr.es/m/20210503234914.GO6180%40momjian.us https://git.postgresql.org/pg/commitdiff/ae9492a61bbf575e2862cf9323c7f02806382093
Amit Kapila 推送了
修正 'total_bytes' 的插槽統計資料計算。先前,我們使用 ReorderBuffer 中存在的所有變更的大小來計算解碼交易後的 total_bytes,這可能導致多次計算某些交易的變更。透過使用為交易解碼的變更大小來計算 'total_bytes' 來修正此問題。作者:Sawada Masahiko 審閱者:Vignesh C, Amit Kapila 討論:https://postgr.es/m/20210319185247.ldebgpdaxsowiflw@alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/205f466282be11ec97506f73341e47b72e0aee5d
在解碼期間收緊並行中止檢查。在解碼進行中或準備好的交易期間,我們使用錯誤代碼 ERRCODE_TRANSACTION_ROLLBACK 檢測並行中止。這是不夠的,因為回呼也可以決定在其他時間擲出該錯誤代碼。報告者:Tom Lane 作者:Amit Kapila 審閱者:Dilip Kumar 討論:https://postgr.es/m/CAA4eK1KCjPRS4aZHB48QMM4J8XOC1+TD8jo-4Yu84E+MjwqVhA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/2ce353fc19024d62e59ad99850d7592ebc9abecf
在每次串流/溢出後更新複寫統計資料。目前,複寫插槽統計資料會在準備、提交和回滾時更新。現在,如果交易中斷,則統計資料可能不會更新。透過在每次串流/溢出後更新複寫統計資料來修正此問題。同時,更新文件以變更某些插槽統計資料的描述。作者:Vignesh C, Sawada Masahiko 審閱者:Amit Kapila 討論:https://postgr.es/m/20210319185247.ldebgpdaxsowiflw@alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/592f00f8dec68038301467a904ac514eddabf6cd
Peter Eisentraut 推送了
從錯誤訊息中提取系統呼叫名稱。另一個應該是 82c3cd974131d7fa1cfcd07cebfb04fffe26ee35 的一部分。https://git.postgresql.org/pg/commitdiff/853c8c75571558f4b474eeac3ef9e6fcf9be62ba
libpq:重構一些錯誤訊息以便於翻譯。https://git.postgresql.org/pg/commitdiff/ced12b73a9bc76b887cb7137df3d56222e2b5263
移除未使用的函數引數。在 04942bffd0aa9bd0d143d99b473342eb9ecee88b 之後變為未使用https://git.postgresql.org/pg/commitdiff/c285babf8f44d86b7fd1e73e9e4f94456b825bfb
防止 lwlock dtrace 探針進行不必要的工作。如果編譯了 dtrace 但已停用,lwlock dtrace 探針仍會評估其引數。自 PostgreSQL 13 以來,T_NAME(lock) 會執行非平凡的工作,因此如果不需要,應避免使用它。為了修正此問題,請使這些呼叫取決於與每個探針對應的 *_ENABLED()
巨集。審閱者:Craig Ringer craig.ringer@enterprisedb.com 討論:https://postgres.tw/message-id/CAGRY4nwxKUS_RvXFW-ugrZBYxPFFM5kjwKT5O+0+Stuga5b4+Q@mail.gmail.com https://git.postgresql.org/pg/commitdiff/b94409a02f6122d77b5154e481c0819fed6b4c95
doc:新增 "multirange type" 的索引項目。在之前,在索引中查詢 "multirange" 只會導向 multirange() 函數。為了讓它更有用,也新增一個指向範圍類型區段的項目。https://git.postgresql.org/pg/commitdiff/5df6aeab42279eaea8e9ff92744645b155c85b03
修正具有產生欄位的 ALTER TABLE / INHERIT。執行 ALTER TABLE t2 INHERIT t1 時,我們必須檢查 t2 中對應於 t1 中產生欄位的欄位是否也是產生的,並且具有相同的產生表示式。否則,這將允許建立正常的 CREATE TABLE 序列不允許的設定。討論:https://postgres.tw/message-id/22de27f6-7096-8d96-4619-7b882932ca25@2ndquadrant.com https://git.postgresql.org/pg/commitdiff/a970edbed306354b0079bdcdc2fc74312122ad89
pg_dump:修正分割區中產生欄位的傾印。先前用於傾印繼承的產生欄位的修復 (0bf83648a52df96f7c8677edbbdf141bfa0cf32b) 不得應用於分割區,因為與正常的繼承表格不同,它們總是單獨傾印並重新附加。報告者:Santosh Udupi email@hitha.net 討論:https://postgres.tw/message-id/flat/CACLRvHZ4a-%2BSM_159%2BtcrHdEqxFrG%3DW4gwTRnwf7Oj0UNj5R2A%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/feb270d1005f3d7b3705dec9e04c9a205750ea97
doc: 修正錯字。 https://git.postgresql.org/pg/commitdiff/c98a6d7887ea6588b4e9797903182312a2b46f67
GUC 說明文件更清晰的改進。 https://git.postgresql.org/pg/commitdiff/38f36aad8c55c8f91e3fb8720fae1847c8fa0552
修正錯字。 https://git.postgresql.org/pg/commitdiff/9f989a8581cc37879d493a5a78b0f01ec0e3245a
Tom Lane 推送了
修正在新的 regex 比對所有 (match-all) 偵測程式碼中的效能問題。Commit 824bf7190 引入了對 regex 編譯產生的 NFA 的新搜尋。我沒有仔細考慮該搜尋的效能特性,結果可想而知:奇怪的 regex 可能會觸發指數級的搜尋時間。更糟的是,該程式碼中沒有中斷檢查 (check-for-interrupt),因此如果發生這種情況,您甚至無法取消查詢。透過引入搜尋結果的記憶化 (memo-ization) 來解決此問題,以便每個 NFA 狀態只需詳細檢查一次。這可能會使用大量記憶體,但是我們可以透過限制我們嘗試證明全部比對 (match-all-ness) 的狀態數量來限制記憶體使用量。這是合理的,因為我們已經對 matchall regex 可以比對的最大有限字串長度設定了限制 (DUPINF);並且涉及遠多於 DUPINF 狀態的模式也可能超出該限制。另外,重新排列邏輯,以便我們在開始遞迴搜尋以確定路徑長度之前,先檢查基本的 graph- all-RAINBOW-arcs 屬性。這將確保只要 NFA 不可能全部比對 (matchall),我們就能快速脫離。並且加入中斷檢查 (check-for-interrupt),以防萬一這些措施不能完全消除速度慢的風險。討論:https://postgr.es/m/3483895.1619898362@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/f68970e33f4dc48094c24c78c452ad730ae9ae12
停用快取覆蓋 (clobber) 以避免破壞 postgres_fdw 終止測試。Commit 93f414614 改進了先前存在的測試案例,使其能夠顯示是否發生了「遠端」工作行程的終止。這很快就暴露了,當 debug_invalidate_system_caches_always (先前稱為 CLOBBER_CACHE_ALWAYS) 啟用時,不會發生這種終止。這是因為快取失效 (cache invalidation) 會強制在交易結束時丟棄 postgres_fdw 連線,因此沒有工作行程可以終止。在我們查看之前,工作行程是否能夠退出 BackendStatusArray 存在競爭條件,但至少在 buildfarm 成員 hyrax 上,它已經在兩次嘗試中失敗了兩次。與其重新「腦白質切除」這個測試,不如透過暫時停用 debug_invalidate_system_caches_always 來修復它。(可喜的是,現在它只是一個 GUC,而不是編譯時選項。)如果這證明不足以使測試穩定,我們可以改為做另一件事。討論:https://postgr.es/m/3854538.1620081771@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/1273a15bf91fa322915e32d3b6dc6ec916397268
Doc: 改進並集中 OID 別名類型的文件。以前,關於 type regclass 的大量資訊僅存在於 sequence 函式的討論中。也許一開始這是有道理的,因為我認為最初那些是唯一採用 regclass 的函式。但是現在沒有意義了。將該資料移至 datatype.sgml 中的「物件識別碼類型」章節,將其推廣到其他 reg*
類型,並添加更多範例。根據 Federico Caselli 的 bug #16991。討論:https://postgr.es/m/16991-bcaeaafa17e0a723@postgresql.org https://git.postgresql.org/pg/commitdiff/f33a178a34809a2bae7a5f4c00984d87771f4204
Doc: 更新 RELEASE_CHANGES 檢查清單。更新檢查清單以反映當前實踐:特定於平台的 FAQ 檔案早已消失。我們也從未例行更新我們借用的 libbind 程式碼,並且現在似乎沒有理由開始更新。說明每個週期運行 pgindent 兩次的當前實踐。討論:https://postgr.es/m/4038398.1620238684@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/e8ce68b0b9ae2757c6153a88bf869904d2d5ac0b
Doc: 微小的措辭調整。改進自引用外鍵範例,根據 David Johnston 的建議。討論:https://postgr.es/m/CAKFQuwZTke7+HUn4YUGqu2+gAPi4Cy18TXMrg_Z5nADkxfPNMw@mail.gmail.com https://git.postgresql.org/pg/commitdiff/c38cadc0907a8d071b043b2b32b83efa09db38ea
Doc: debug_invalidate_system_caches_always 描述的文字編輯。我來修復 "useful only useful",但當我越看文字時,我發現有更多可以改進的地方。 https://git.postgresql.org/pg/commitdiff/f9b809e7fbe36cd3fe1ce33edb277288a31da386
將 guc.c 和 postgresql.conf.sample 與 SGML 文件同步。似乎有人在 config.sgml 清單中四處移動 GUC,而沒有費心讓程式碼一致。確保分配給 GUC 的 config_group 代碼與它們在 config.sgml 中列出的位置匹配。同樣,確保 postgresql.conf.sample 以與它們在 config.sgml 中顯示的相同的子章節和相同的順序列出 GUC。(我對其中一些選擇有些懷疑,但就此補丁而言,我們將 config.sgml 視為真理。)值得注意的是,這需要添加 WAL_RECOVERY config_group 值,因為 1d257577e 沒有添加。只要我們無論如何都要重新編號該枚舉,讓我們刪除與分為子群組的主要群組相對應的值。不應將任何 GUC 分配給主要群組本身,因此這些值只會誘使您做錯事,同時增加翻譯人員的工作。順便一提,調整 PRESET_OPTIONS GUC 的 short_desc 字串,以統一使用措辭 "Shows XYZ.",消除了其中一些字串留下的您可以設定該值的印象。儘管其中一些錯誤是舊的,但沒有回溯修補 (back-patch),因為在穩定分支中更改 pg_settings 視圖的內容似乎更有可能被視為相容性中斷,而不是任何有幫助的事情。Bharath Rupireddy、Justin Pryzby、Tom Lane 討論:https://postgr.es/m/16997-ff16127f6e0d1390@postgresql.org 討論:https://postgr.es/m/20210413123139.GE6091@telsasoft.com https://git.postgresql.org/pg/commitdiff/a55a98477b690dedb9b4368d7e5710c8e7fa534e
Robert Haas 推送了
amcheck: 改進一些關於 TOAST 問題的令人困惑的報告。不要根據索引掃描到目前為止傳回的元組數量來表達報告,而是根據在元組內部找到的 chunk_seq 值來表達報告。由我修補,由 Mark Dilger 審閱。討論:http://postgr.es/m/CA+TgmoZUONCkdcdR778EKuE+f1r5Obieu63db2OgMPHaEvEPTQ@mail.gmail.com https://git.postgresql.org/pg/commitdiff/50529e5b4e39ad80a637ba0905277f9691eb4a15
docs: 闡明 ALTER TABLE .. SET COMPRESSION 的工作方式。Justin Pryzby,根據 Michael Paquier 的抱怨。由 Dilip Kumar 和我審閱。討論:http://postgr.es/m/20210429040132.GF27406@telsasoft.com https://git.postgresql.org/pg/commitdiff/2d0f662402635d591cac9f1daae5e81e7c4374fc
可配置 TOAST 壓縮的其他文件修正。commit bbe0a81db69bd10bd166907c3701492a29aca294 中的語法更改允許 SET COMPRESSION 與 ALTER MATERIALIZED VIEW 以及 ALTER TABLE 一起使用,因此更新這些文件以說明其工作原理。另外,更新 pg_column_compression() 的文件,以說明當沒有相關值時它將傳回 NULL。由我修補,根據 Michael Paquier 的疑慮。討論:http://postgr.es/m/CA+Tgmob9h5u4iNL9KM0drZgkY-JL4oCVW0dWrMqtLPQ1zHkquA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/448b02c00515ba9d6683a8a97fe4305604d80028
Bruce Momjian 推送了
Álvaro Herrera 推送了
修正 ALTER CONSTRAINT 期間傳遞給 object-alter hook 的 OID。 使用的是 constraint 的 OID,而不是 trigger 的 OID -- 這是很容易犯的錯誤。顯然 object-alter hook 沒有經過很好的測試 :-( 回溯到 12,這個錯誤是由 578b229718e8 引入的。 討論: https://postgr.es/m/20210503231633.GA6994@alvherre.pgsql https://git.postgresql.org/pg/commitdiff/e798d095da3a4a4bb5c50bb3dff886f07ef52f55
讓 ALTER CONSTRAINT 在分割表格上遞迴執行。 當 ALTER TABLE .. ALTER CONSTRAINT 變更了分割表格中的 deferrability 屬性時,我們未能正確地將這些變更傳播到分割區和觸發器。 透過新增遞迴機制來影響所有衍生的 constraint 和所有衍生的 trigger 來修復此問題。 (特別是,即使分割區的各自父物件已經處於所需的狀態,也遞迴到分割區:有可能分割區已被個別修改。) 因為 foreign key 涉及表格的兩個部分,我們不能使用標準的 ALTER TABLE 遞迴機制,因此我們透過追蹤 pg_constraint.conparentid 來發明我們自己的機制。 當 ALTER TABLE .. ALTER CONSTRAINT 在分割區中自動建立的衍生 pg_constraint 物件上被呼叫時 (這是由於添加到其父物件的 constraint 所導致的),則引發錯誤,而不是假裝可以工作,然後無法修改所有受影響的 trigger。 在此提交之前,這樣的命令是被允許的,但無法影響所有 trigger,因此它會默默地表現異常。 (恢復現有資料庫的 dump 不受影響,因為 pg_dump 不會為這樣的衍生 constraint 產生任何東西。) 為這種情況新增一些測試。 回溯到 11,其中 foreign key 支援已由 commit 3de241dba86f 新增到分割表格。 (相關的變更是 pg12 中的 commit f56f8f8da6af,它新增了對 *referencing*
分割表格的 FK 支援;這正是迫使我們為此使用 ad-hoc 遞迴機制的原因。) 由 Tom Lane 從 Ron L Johnson 的錯誤報告中診斷出來。 截至撰寫本文時,尚未收到任何評論。 討論: https://postgr.es/m/75fe0761-a291-86a9-c8d8-4906da077469@gmail.com 討論: https://postgr.es/m/3144850.1607369633@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/6f70d7ca1d1937a9f7b79eff6fb18ed1bb2a4c47
移除 ATAddForeignConstraint 中未使用的引數。 Commit 0325d7a5957b 使其未使用,但忘記將其移除。 現在這樣做。 作者:Amit Langote amitlangote09@gmail.com 討論: https://postgr.es/m/209c99fe-b9a2-94f4-cd68-a8304186a09e@lab.ntt.co.jp https://git.postgresql.org/pg/commitdiff/c250062df42ffd3e252471f6205bfb6cbef67b7b
在 partdescs 中更準確地追蹤已分離的分割區。 在 d6b8d29419df 中,我 (Álvaro) 在記錄分割區描述元是否包含已分離的分割區時,處理得很草率,當 snapshot 檢查沒有看到標記為已分離的 pg_inherits 列時。 在這種情況下,沒有省略任何分割區,但是,在 relcache 條目中,我們將 partdesc 儲存為省略分割區。 翻轉它 (因此我們將其儲存為不省略分割區的 partdesc,確實如此),這有望使程式碼更容易理解。 作者:Amit Langote amitlangote09@gmail.com 討論: https://postgr.es/m/CA+HiwqE7GxGU4VdzwZzfiz+Ont5SsopoFkgtrZGEdPqWRL+biA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/3fe773b149755977d2ffde2afd89557b39d0afd9
改進 DETACH PARTITION 鎖定層級的文件。 這在 71f4c8c6f74b 中被遺忘了。 回報者:Pavel Luzanov p.luzanov@postgrespro.ru 作者:Amit Langote amitlangote09@gmail.com 討論: https://postgr.es/m/0688e7c3-8bc8-a3e4-9d8e-3bcbbf3e1f4d@postgrespro.ru https://git.postgresql.org/pg/commitdiff/db6e1aeb952e9aed26ba2a56b4145293c72b8068
記錄 ALTER TABLE VALIDATE CONSTRAINT 使用的鎖定層級。 回溯到 9.6。 作者:Simon Riggs simon.riggs@enterprisedb.com 討論: https://postgr.es/m/CANbhV-EwxvdhHuOLdfG2ciYrHOHXV=mm6=fD5aMhqcH09Li3Tg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/469116389e18dbf6be0bd555bc2055a26be91a48
移除多餘的變數。 作者:Amul Sul sulamul@gmail.com 審閱者:Jeevan Ladhe jeevan.ladhe@enterprisedb.com 審閱者:Bharath Rupireddy bharath.rupireddyforpostgres@gmail.com 審閱者:Justin Pryzby pryzby@telsasoft.com 討論: https://postgr.es/m/CAAJ_b94HaNcrPVREUuB9-qUn2uB+gfcoX3FG_Vx0S6aFse+yhw@mail.gmail.com https://git.postgresql.org/pg/commitdiff/a288d94c91e345ebeb10ac30f247270c8c8e380a
AlterSubscription_refresh: 避免踩踏全域變數。 此修補程式將 AlterSubscription_refresh 中全域 "wrconn" 變數的使用替換為具有相同名稱的區域變數,使其與 subscriptioncmds.c 中的其他函式 (例如 DropSubscription) 一致。 全域 wrconn 僅用於邏輯套用/tablesync worker。 濫用它的方式已知會導致問題,如果套用 worker 設法進行 subscription refresh,例如 Jeremy Finzel 回報並由 Andres Freund 在 2020 年 11 月診斷的,網址為 https://postgres.tw/message-id/20201111215820.qihhrz7fayu6myfi@alap3.anarazel.de 回溯到 10。 在 master 分支中,也將連線建立移至 PG_TRY 區塊之外; 這樣我們就可以移除 PG_FINALLY 中的 NULL 測試,並且還可以使程式碼與同一檔案中的類似程式碼更加一致。 作者:Peter Smith peter.b.smith@fujitsu.com 審閱者:Bharath Rupireddy bharath.rupireddyforpostgres@gmail.com 審閱者:Japin Li japinli@hotmail.com 討論: https://postgr.es/m/CAHut+Pu7Jv9L2BOEx_Z0UtJxfDevQSAUW2mJqWU+CtmDrEZVAg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/4e8c0f1a0d0d095a749a329a216c88a340a455b6
Andres Freund 推送了
Peter Geoghegan 推送了
Thomas Munro 推送了
還原依索引校對版本追蹤功能。在處理複合類型和記錄類型時發現了設計問題,導致某些相關版本沒有被記錄。對於將 pg_depend 目錄用於此目的也表達了疑慮。由於本次發布的時間不足,因此我們將還原並重試。已還原的提交:1bf946bd: Doc: Document known problem with Windows collation versions. cf002008: Remove no-longer-relevant test case. ef387bed: Fix bogus collation-version-recording logic. 0fb0a050: Hide internal error for pg_collation_actual_version(<bad OID>). ff942057: Suppress "warning: variable 'collcollate' set but not used". d50e3b1f: Fix assertion in collation version lookup. f24b1569: Rethink extraction of collation dependencies. 257836a7: Track collation versions for indexes. cd6f479e: Add pg_depend.refobjversion. 7d1297df: Remove pg_collation.collversion. 討論:https://postgr.es/m/CA%2BhUKGLhj5t1fcjqAu8iD9B3ixJtsTNqyCCD4V0aTO9kAKAjjA%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/ec48314708262d8ea6cdcb83f803fc83dd89e721
Doc: 更新關於 libc 校對版本的說明。依索引校對版本追蹤功能已還原,但我們仍然可以向 Windows (352f6f2d) 和 FreeBSD (ca051d8b) 請求校對版本,並將其儲存在 pg_collation.collversion 中。因此,從已還原的修補程式中,提取一些關於所有三個支援的作業系統上的 libc 的文件,以取代僅提到 glibc 的先前說明。討論:https://postgr.es/m/CA%2BhUKGLhj5t1fcjqAu8iD9B3ixJtsTNqyCCD4V0aTO9kAKAjjA%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/b65431ca5e12a475ba7cf68afb63edb070c2ce08
Tomáš Vondra 推送了
使 pg_get_statisticsobjdef_expressions 返回 NULL。ruleutils.c 中函數的通常行為是在物件不存在時返回 NULL。pg_get_statisticsobjdef_expressions 卻引發錯誤,因此更正了這一點。回報者:Justin Pryzby 討論:https://postgr.es/m/20210505210947.GA27406%40telsasoft.com https://git.postgresql.org/pg/commitdiff/8d4b311d2494ca592e30aed03b29854d864eb846
修復關於擴展統計信息的註釋中的拼寫錯誤。回報者:Justin Pryzby 討論:https://postgr.es/m/20210505210947.GA27406%40telsasoft.com https://git.postgresql.org/pg/commitdiff/93f9af138795a7d12366187de95f4961fb07ed98
在 maintenance.sgml 中提及統計信息物件。文件提到了表達式索引作為提高函數選擇性估計的一種方法,但我們還有第二種選擇,即建立擴展統計信息來改進這一點。所以也提一下它。回報者:Justin Pryzby 討論:https://postgr.es/m/20210505210947.GA27406%40telsasoft.com https://git.postgresql.org/pg/commitdiff/44f90ad092f95fe19bebb51465193bc63849c15f
複製 postgres_fdw 中的 INSERT 查詢。當使用批次處理執行 INSERT 時,我們可能需要在批次大小更改時重建查詢,在這種情況下,我們會 pfree 當前字串。我們不能釋放儲存在 fdw_private 中的原始字串,因為在 EXPLAIN ANALYZE 中可能需要它。所以複製 SQL,但僅針對 INSERT 查詢。回報者:Pavel Stehule 討論:https://postgr.es/m/CAFj8pRCL_Rjw-MCR6J7VX9OF7MR6PA5K8qUbrMvprW_e-aHkfQ%40mail.gmail.com https://git.postgresql.org/pg/commitdiff/c6a01d924939306e95c8deafd09352be6a955648
Andrew Dunstan 推送了
向缺少版權聲明的 perl 文件添加版權聲明。 https://git.postgresql.org/pg/commitdiff/8fa6e6919c1aaa6f74c74e16452aaf0b5f3b4cd5
移除 perl 版權修補程式添加的額外換行符。 https://git.postgresql.org/pg/commitdiff/8b82de0164c13eb3b113a525dc7eda7887f5238b
為 Gen_dummy_probes.pl 添加 README 和 Makefile 配方。 討論:https://postgr.es/m/20210506035602.3akutfvvojngj3nb@alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/8292c0675a793a5afd0a8eedbeb0db7abfb844f3
Michaël Paquier 推送了
David Rowley 推送了
Aleksander Alekseev 送出了另一個修訂版的修補程式,以允許 CustomScan 節點發出投影支援的訊號。
Melanie Plageman 送出了另一個修訂版的修補程式,以避免對剛建置的索引立即進行 fsync。
Dilip Kumar 送出了兩個修訂版的修補程式,以添加 TOAST 壓縮方法選項。
Vigneshwaran C 送出了另外四個修訂版的修補程式,以在 CREATE/ALTER SUBSCRIPTION 期間識別來自發布者的遺漏發布。
Bertrand Drouvot 送出了一個修補程式,旨在透過完全複製來源資料庫中最舊的Xid限制,來修復一個錯誤,該錯誤表現為 pg_upgrade 可能導致具有高交易負載的資料庫提前環繞。
Bertrand Drouvot 提交了一個補丁,旨在修正一個因孤立依賴關係而產生的錯誤。該補丁透過新增一個名為 DirtyCatalogSnapshot 的目錄快照,並由一個名為 UseDirtyCatalogSnapshot 的新變數控制,來檢查正在進行中的依賴關係,並取得物件的描述以產生錯誤訊息。
Thomas Munro 提交了另一個補丁修訂版,旨在 src/test/recovery 下新增一個新的 TAP 測試,以使用串流複本重播 WAL 的方式來執行標準迴歸測試。這為 WAL 解碼和重做程式碼提供了一個基本的測試。
Mark Dilger 提交了兩個補丁修訂版,旨在擴展 amcheck 以檢查 TOAST 大小和壓縮。
Jeff Davis 提交了一個補丁,以系統預期的方式限制表格 AM 中的 ItemPointer。
Dilip Kumar 和 Kyotaro HORIGUCHI 交換了補丁,旨在修正一個在恢復過程中出現的競爭條件錯誤。
Craig Ringer 提交了另一個補丁修訂版,使 Valgrind 的執行更簡單,只需使用 make USE_VALGRIND=1。
David Fetter 提交了一個補丁,以闡明 pg_constraint 中的一些欄位描述。
Vigneshwaran C 又提交了兩個補丁修訂版,旨在列印指定 postgres 程序的堆疊追蹤。
Craig Ringer 提交了一個補丁,用於在 probes.d 探針被停用時發出虛擬陳述式。
Jeff Davis 提交了另一個補丁修訂版,旨在實作 ALTER TABLE ... SET ACCESS METHOD。
Amit Langote 提交了一個補丁,以闡明 ALTER TABLE ... DETACH PARTITION CONCURRENTLY 的文件。
Etsuro Fujita 提交了一個補丁,用於修正 EXPLAIN ANALYZE 對於非同步節點的錯誤。
Etsuro Fujita 提交了一個補丁,用於描述非同步執行在 FDW 中的運作方式。
Nitin Jadhav 提交了一個補丁,用於實作多欄位的列表分割。
Yugo Nagata 提交了另一個補丁修訂版,旨在實作增量視窗維護。
Konstantin Knizhnik 提交了另一個補丁修訂版,用於移除不必要的自我聯結。
Andrey Borodin 提交了另一個補丁修訂版,以加速 GiST 索引的建立。
Etsuro Fujita 提交了一個補丁,透過修改 postgresPlanDirectModify() 使其清除 async-capable 標誌(如果已設定),來修正繼承的 UPDATE/DELETE 和非同步執行之間的不協調之處。
James Coleman 提交了一個補丁,用於並行化在每個 worker 中執行的相關子查詢。
Jeff Janes 提交了一個補丁,用於在嚴重檢查之前新增配置快取檢查點。
Hou Zhijie 提交了另一個補丁修訂版,用於修正 EXPLAIN 關於 FDW 批次插入的資訊。
Erik Rijkers 和 Alexander Korotkov 交換了補丁,以改進 JSON 路徑查詢中的範例,以強調實際發生的事情。
Bruce Momjian 提交了另一個補丁修訂版,用於修正區間算術中的錯誤行為。
Hou Zhijie 提交了一個補丁,用於修正當 fdw batch_size 設置為 0 時,出現不準確錯誤訊息的錯誤。
David Rowley 提交了另一個補丁修訂版,用於加速具有一組常數的 NOT IN()。
Andrew Dunstan 提交了另一個補丁修訂版,用於實作 SQL/JSON 的 JSON_TABLE 部分。
Andrew Dunstan 提交了另一個補丁修訂版,用於實作 SQL/JSON 中的函數。
Tom Lane 提交了一個補丁,用於建立一個二進位可強制轉換的 C 函數,以便減少 CLOBBER_CACHE_ALWAYS 下 opr_sanity 測試的執行時間。
David Rowley 提交了一個補丁,僅在計劃關閉時驗證 resultcache 記憶體。
Vigneshwaran C 提交了一個補丁,用於修正邏輯複製訊息格式的資料類型。