pg_dumpbinary 2.5,用於以二進制格式轉儲 PostgreSQL 數據庫的程序,已發布。
pgBadger v11.6,一個用 Perl 編寫的 PostgreSQL 日誌分析器和圖形工具,已發布。
[pgagroal 1.3.0,一個用於 PostgreSQL 的高性能協議原生連線池,已發布
https://archives.postgresql.org/pgsql-jobs/2021-09/
Planet PostgreSQL:https://planet.postgresql.org/
本週的 PostgreSQL 每週新聞由 David Fetter 帶給您
請在太平洋標準時間/太平洋夏令時間週日下午 3:00 前將新聞和公告提交至 david@fetter.org。
Michaël Paquier 推送
移除 TAP 測試中一些未使用的變數。作者:Amul Sul 討論:https://postgr.es/m/CAAJ_b96xuFh4JZE6p-zhLyDu7q=NbxJfb1z_yeAu6t-MqaBC+Q@mail.gmail.com https://git.postgresql.org/pg/commitdiff/5fcb23c18fe408bfc6669aa5bca2d21896f9fe90
將共享記憶體大小計算移動到它自己的函數中。此變更將 CreateSharedMemoryAndSemaphores() 中的共享記憶體大小計算重構到它自己的函數中。 這是為了用於未來與使用一些 GUC 設定巨型頁面和共享記憶體相關的變更,同時對於擴充功能本身也很有用。 作者:Nathan Bossart 討論:https://postgr.es/m/F2772387-CE0F-46BF-B5F1-CC55516EB885@amazon.com https://git.postgresql.org/pg/commitdiff/0bd305ee1d427ef29f5fa4fa20567e3b3f5ff792
使用 "(expr) ? true : false" 清理一些程式碼。 此處簡化的所有程式碼路徑都已經使用布林值或使用導致零或一的表達式,從而使額外的位變得不必要。 作者:Justin Pryzby 審閱人:Tom Lane、Michael Paquier、Peter Smith 討論:https://postgr.es/m/20210428182936.GE27406@telsasoft.com https://git.postgresql.org/pg/commitdiff/fd0625c7a9c679c0c1e896014b8f49a489c3a245
引入 GUC shared_memory_size。 這個執行時計算的 GUC 顯示伺服器主共享記憶體區域的大小,同時考慮到擴充功能分配的共享記憶體量,因為這是經過處理 shared_preload_libraries 後計算的。 作者:Nathan Bossart 討論:https://postgr.es/m/F2772387-CE0F-46BF-B5F1-CC55516EB885@amazon.com https://git.postgresql.org/pg/commitdiff/bd1788051b02cfddcd9ef0e2fd094972f372b8fd
修復 ipci.c 中的編譯警告。 在列印時,Size 最好使用 %zu。 bd17880 中的疏忽,根據 buildfarm 成員 lapwing。 https://git.postgresql.org/pg/commitdiff/aa37a439db6bd328d68ce815ab9e12467f42493b
使 shared_memory_size 成為預設選項。 bd17880 將其設定為記憶體參數,但文件另有說明。 此處採用預設參數,因為此選項是在啟動時編譯的。 報告人:Fujii Masao 討論:https://postgr.es/m/4cc5b434-b174-9aae-197b-737db6cac4e3@oss.nttdata.com https://git.postgresql.org/pg/commitdiff/3b231596ccfc6bb6564c63a574e429765c0f775e
Peter Eisentraut 推送
改進用於靜態連結的修正 pkg-config 檔案。 修改 4c2eab3a0dec2eae40892fb525830a5947a398c7 以連結到不帶 "_shlib"
後綴的函式庫,因為這是用於靜態連結。 https://git.postgresql.org/pg/commitdiff/55392bc5b0e0c1a8045627bbc41b4ec7143c4cc7
修正不正確的格式佔位符。 https://git.postgresql.org/pg/commitdiff/bb1412baa5b57652ef69f7e995657d085fd308e4
禁用匿名紀錄雜湊支援,除非在特殊情況下。 Commit 01e658fa74 添加了對行類型的雜湊支援。 這也增加了對雜湊匿名紀錄類型的支援,使用與類型快取用於比較紀錄類型的支援相同的方法:它只是報告說它有效,但如果元件類型實際上不支持該操作,則可能在執行時失敗。 我們可以通過比較來做到這一點,因為大多數類型都支持比較。 但是某些類型不支持雜湊,因此當規劃器選擇雜湊而不是排序時,當前狀態可能導致執行時失敗,而如果只有排序選項,則之前是可以正常工作的。 但是,我們確實希望在遞歸聯合中進行路徑跟踪的紀錄雜湊支援,以及建立在該基礎上的 SEARCH 和 CYCLE 子句。 在這種情況下,雜湊是唯一的計劃選項。 因此,啟用它,此 commit 實作以下方法:類型快取不會報告雜湊可用於紀錄類型。 這撤消了 01e658fa74 的那一部分。 相反,無論如何都需要雜湊的呼叫者可以自己覆蓋該結果。 此修補程式僅觸及呼叫者,以使上述遞歸查詢案例有效,即聯合的語法分析,以及 hash_array() 函數。 報告人:Sait Talha Nisanci sait.nisanci@microsoft.com 錯誤:#17158 討論:https://postgres.tw/message-id/flat/17158-8a2ba823982537a4%40postgresql.org https://git.postgresql.org/pg/commitdiff/a3d2b1bbe904b0ca8d9fdde20f25295ff3e21f79
修正錯字。 https://git.postgresql.org/pg/commitdiff/7390b6421a98b70554b6b5edea5d6e012dfdbbba
移除無用的轉換。 將 strVal() 的參數轉換為 (Value *
) 是無用的,因為 strVal() 已經這樣做了。 大多數程式碼都沒有這樣做;這顯然只是一種潛入某些檔案的風格。 審閱人:Dagfinn Ilmari Mannsåker ilmari@ilmari.org 審閱人:Kyotaro Horiguchi horikyota.ntt@gmail.com 討論:https://postgres.tw/message-id/flat/5ba6bc5b-3f95-04f2-2419-f8ddb4c046fb@enterprisedb.com https://git.postgresql.org/pg/commitdiff/cbdf75bf8053f88bbae6b307f34ab057424a370f
移除 Value 節點結構。Value 節點結構是一種奇怪的構造。它本身是一種節點類型,但大多數時候,它實際上具有 Integer、Float、String 或 BitString 的節點類型。因此,結構名稱和節點類型在大多數時候不匹配,因此必須特別處理它。這種特殊構造似乎沒有任何價值。很少有程式碼想要接受所有 Value 變體,但沒有其他東西(即使這樣做,也沒有提供任何方便的方法來檢查它),而且大多數程式碼要么只想要一種特定的節點類型(通常是 String),要么它接受比 Value 更廣泛的節點類型集合。此變更會移除 Value 結構和節點類型,並將它們替換為單獨的 Integer、Float、String 和 BitString 節點類型,它們是它們自己的節點類型和結構,並且行為方式與正常的節點類型基本相同。此外,這也移除了 T_Null 節點標記,該標記以前也是 Value 的一種可能變體,但實際上並未在 A_Const 中包含的 Value 之外使用。將其替換為 A_Const 中的 isnull 欄位。Reviewed-by: Dagfinn Ilmari Mannsåker ilmari@ilmari.org Reviewed-by: Kyotaro Horiguchi horikyota.ntt@gmail.com Discussion: https://postgres.tw/message-id/flat/5ba6bc5b-3f95-04f2-2419-f8ddb4c046fb@enterprisedb.com https://git.postgresql.org/pg/commitdiff/639a86e36aaecb84faaf941dcd0b183ba0aba9e9
修正 _equalA_Const
。639a86e36aaecb84faaf941dcd0b183ba0aba9e9 忽略了對 _equalA_Const
進行必要的調整。僅透過 COPY_PARSE_PLAN_TREES
發現。 https://git.postgresql.org/pg/commitdiff/0ffbe900ce599d204536b9623291e05e965da23e
Fujii Masao 推送了
修正註解中的錯字。Author: Hou Zhijie Discussion: https://postgr.es/m/OS0PR01MB5716E6A6535FDFDC5A1B004194CE9@OS0PR01MB5716.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/78aa616be74a13156f4fc8db3a131f1fdc2cce47
postgres_fdw:允許透過 GUC 設定遠端連線的 application_name。此提交新增了 postgres_fdw.application_name GUC,該 GUC 指定一個 application_name 設定參數的值,該參數在 postgres_fdw 建立與外部伺服器的連線時使用。此 GUC 設定始終會覆寫外部伺服器物件的 application_name 選項。當我們想要為每個遠端連線指定我們自己的 application_name 時,此 GUC 非常有用。先前,遠端連線的 application_name 基本上只能透過伺服器物件的選項進行設定。但這意味著連線到同一個外部伺服器的每個會話基本上都應該使用相同的 application_name。此外,如果我們想要變更設定,我們必須執行 "ALTER SERVER ... OPTIONS ..." 命令。這很不方便。Author: Hayato Kuroda Reviewed-by: Masahiro Ikeda, Fujii Masao Discussion: https://postgr.es/m/TYCPR01MB5870D1E8B949DAF6D3B84E02F5F29@TYCPR01MB5870.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/449ab6350526e99d33363706b759951ebad7928e
postgres_fdw:還原 postgres_fdw.application_name 的不穩定測試。提交 449ab63505 新增了用於檢查 postgres_fdw.application_name GUC 是否按預期工作的測試。但它們不穩定,並導致一些 buildfarm 成員報告失敗。此提交會還原這些不穩定的測試。Reported-by: Tom Lane as per buildfarm Discussion: https://postgr.es/m/3220909.1631054766@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/98dbef90eb29b13079ba3bd260b3c5818904ee86
修正待機模式下 WAL 封存的問題。先前,在 walreceiver 完成當前區段的寫入並收到應寫入下一個區段的任何 WAL 資料後,它總是會關閉目前開啟的 WAL 區段並建立其封存通知檔案。如果 walreceiver 在下一個區段中的任何 WAL 資料到達待機伺服器之前退出,即使已知該區段已完成,它也不會建立當前區段的封存通知檔案。這種行為可能會導致該區段的 WAL 封存延遲到後續的 restartpoint 或檢查點建立其通知檔案為止。為了修正此問題,此提交變更了 walreceiver,以便它會在收到下一個 WAL 資料之前立即建立已知已完成的當前 WAL 區段的封存通知檔案。反向移植到所有受支援的分支。Reported-by: Kyotaro Horiguchi Author: Fujii Masao Reviewed-by: Kyotaro Horiguchi Discussion: https://postgr.es/m/20200630.165503.1465894182551545886.horikyota.ntt@gmail.com https://git.postgresql.org/pg/commitdiff/596ba75cb11173a528c6b6ec0142a282e42b69ec
pgbench:一旦超出計時器,就停止將跳過的交易計數。使用節流時,延遲超過延遲限制的交易將被計數並報告為跳過。先前,存在這樣一種情況:即使超過了 -T 選項中指定的計時器,pgbench 仍會計算所有跳過的交易。這樣做可能需要很長時間,尤其是在 -R 選項中不切實際的高速率設定導致大量交易落後於排程時。這可能會阻止 pgbench 立即結束,因此 pgbench 看起來像是卡住了。為了修正此問題,此提交變更了 pgbench,以便它會在計時器超出後立即停止計算跳過的交易。即使存在大量尚未計算的跳過的交易,計時器也可以使 pgbench 很快結束。請注意,不能保證在 -T 下計算所有跳過的交易,儘管在 -t 下可以。這在實務中是可以接受的,因為在實際設定下,這種情況不太可能發生。此外,這不是此提交新引入的問題。在之前,pgbench 曾經在沒有計算所有跳過的交易的情況下結束。反向移植到 v14。經過討論,我們決定不麻煩地反向移植到穩定分支,因為很難想像這種情況會在實務中發生(使用實際設定)。Author: Yugo Nagata, Fabien COELHO Reviewed-by: Greg Sabino Mullane, Fujii Masao Discussion: https://postgr.es/m/20210613040151.265ff59d832f835bbcf8b3ba@sraoss.co.jp https://git.postgresql.org/pg/commitdiff/9bcbd7c581a5de3b915ef8fe0262e4abd9cb6e59
Tom Lane 推送了
使 timetz_zone() 穩定,並修正 DYNTZ 縮寫的錯誤。 歷史上,timetz_zone() 使用 time(NULL) 作為決定 DST 是否啟用的參考點。這表示它的結果可能會在語句中變更,因此需要將其標記為 VOLATILE(參見 35979e6c3)。但這種定義與我們在其他地方處理時間戳記的方式非常不一致。 讓我們改為使用事務開始時間 ("now()") 作為參考點。 這使其可以標記為 STABLE,並且還可以節省每次調用時的核心呼叫。 同時,移除該函數對 pg_time_t 和 pg_localtime 的使用。 這些與該區域中的其他程式碼不一致,這確實產生了一個錯誤:如果區域由動態 TZ 縮寫指定,timetz_zone() 會傳回完全錯誤的答案。 (我們需要在後續分支中解決此問題,但修復方式會與此不同。) Aleksander Alekseev 和 Tom Lane 討論: https://postgr.es/m/CAJ7c6TOMG8zSNEZtCn5SPe+cCk3Lfxb71ZaQwT2F4T7PJ_t=KA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/388e71af880d579212c2489686903c2cfdea9032
修正關於 struct pg_tm 內容的錯誤引導性註解。 pgtime.h 在 tm_year 的 POSIX 解釋旁邊記錄了 PG 對 tm_mon 的解釋,沒有任何提示表明這兩個註解在我們的程式碼中都是不正確的。 或許有一天我們應該切換到使用兩個單獨的 struct 定義,以更清楚地表明在何處使用哪種語義。 但我擔心繁瑣與安全增益之間的權衡不會很好。 討論: https://postgr.es/m/CAJ7c6TOMG8zSNEZtCn5SPe+cCk3Lfxb71ZaQwT2F4T7PJ_t=KA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/89dba59590fdd03799a47daf8019890d4324fbcf
進一步修正 psql 查詢取消測試。 等待 pg_sleep 執行的查詢實際上並沒有做到這一點,因為它使用的正則表達式模式可以匹配它自身。 報告: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=conchuela&dt=2021-09-06%2018%3A00%3A20 https://git.postgresql.org/pg/commitdiff/bd5846e4a9c1338ded5efcef53511f0d71f53f0e
修正重寫器以在重寫的查詢上正確設定 hasModifyingCTE。 如果我們將資料修改 CTE 從原始查詢複製到替換查詢(來自 DO INSTEAD 規則),我們必須在替換查詢中正確設定 hasModifyingCTE。 如果不這樣做,可能會導致各種不愉快的事情,例如不安全地使用平行計畫。 該程式碼也忽略了傳播 hasRecursive,儘管目前這只是表面功夫。 如果規則動作是 INSERT...SELECT,則會出現困難。 我們將原始查詢的 RTE 和 CTE 附加到子 SELECT Query,但資料修改 CTE 只能出現在最頂層的 Query 中。 目前,在這種情況下拋出錯誤。 也許可以通過將 CTE 附加到頂層 INSERT Query 來避免此錯誤; 但這需要大量新程式碼來調整 ctelevelsup 參考。 考慮到用例的狹窄性以及向後移植此修復的需要,目前似乎不值得付出這些努力。 如果我們收到現場投訴,我們可以重新審視這一點。 根據 Greg Nancarrow 的報告。 向後移植到所有支援的分支。 (此處新增的測試案例在 v10 之前不會失敗,但是在 9.6 中有很多地方檢查頂層 hasModifyingCTE,因此我毫不懷疑此程式碼變更也是必要的。) Greg Nancarrow 和 Tom Lane 討論: https://postgr.es/m/CAJcOf-f68DT=26YAMz_i0+Au3TcLO5oiHY5=fL6Sfuits6r+_w@mail.gmail.com
討論: https://postgr.es/m/CAJcOf-fAdj=nDKMsRhQzndm-O13NY4dL6xGcEvdX5Xvbbi0V7g@mail.gmail.com https://git.postgresql.org/pg/commitdiff/362e2dcc46195faadd3fa0ba011dd9a8e3829e7a
在 psql tab 補全中,提供拼寫完整的命令,而不是縮寫。 各種 psql 反斜線命令都有單字母和長形式,例如 \e 和 \edit。 以前,tab 補全通常提供單字母形式,但不提供長形式。 提供長形式似乎更合理,因為 (a) 當您已經輸入單個字母時,不會發生有用的補全,並且 (b) 如果您不熟悉該命令集,長形式可能不太容易混淆。 Haiying Tang,由 Dagfinn Ilmari Mannsåker 和我自己審閱 討論: https://postgr.es/m/OS0PR01MB61136018064660F095CB57A8FB129@OS0PR01MB6113.jpnprd01.prod.outlook.com https://git.postgresql.org/pg/commitdiff/7cffa2ed0c9f7f4d96bac7af5284c47e82af5ffa
修正關於 TOAST 存取巨集的錯誤引導性註解。 似乎是我的錯誤在 commit aeb1631ed 中。 Christoph Berg 指出。 討論: https://postgr.es/m/YTeLipdnSOg4NNcI@msg.df7cb.de https://git.postgresql.org/pg/commitdiff/490798451a3adc32b71b30e285bd99875d67fa2b
避免 getFormattedTypeName() 周圍無用的 malloc/free 流量。 Coverity 抱怨 getFormattedTypeName() 的一個呼叫者未能釋放傳回的字串。 這是真的,但與其修正這一個,不如擺脫這個繁瑣且容易出錯的要求。 既然 getFormattedTypeName() 緩存了它的結果,strdup'ing 該結果並期望呼叫者釋放它除了浪費週期外幾乎沒有任何作用。 如果 getTypes 沒有為該類型建立 TypeInfo,我們確實會建立一個洩漏,但這基本上永遠不應該發生。 向後移植,如同 commit 6c450a861 一樣。 這不是一個特別有趣的錯誤修復,但是如果我們不向後移植它,API 變更對於未來的向後移植活動來說似乎是一個危險。 https://git.postgresql.org/pg/commitdiff/072e2f8a62002cb01ed6c4e161442e133509349e
儘早檢查關係長度溢出。 我們不允許關係超過 2^32-1 個塊,因為塊號是 32 位,並且最後一個可能的塊號保留為表示 InvalidBlockNumber。 在 mdextend 中有一個檢查,但這確實太晚了,因為 smgr API 要求我們為要新增的塊建立一個緩衝區,並且我們不希望有任何 blocknum 為 InvalidBlockNumber 的緩衝區。 (這種情況可能會觸發 bufmgr.c 中的斷言,而且我認為它可能會混淆 ReadBuffer 稍後對資料超出 EOF 的邏輯。) 因此,將檢查放入 ReadBuffer 中。 根據 Christoph Berg 的報告。 一直以來都是這樣,因此向後移植到所有支援的分支。 討論: https://postgr.es/m/YTn1iTkUYBZfcODk@msg.credativ.de https://git.postgresql.org/pg/commitdiff/8481f99896a192e9fd57f5e1a99e255e27680a10
避免從已經終止的計畫中獲取。 某些計畫節點類型在返回 NULL 後再次呼叫時反應不佳。 如果 PortalRunSelect() 看到我們已經將 portal 執行到最後,長期以來一直通過使用 NoMovementScanDirection 呼叫執行器來處理這個問題。 然而,commit ba2c6d6ce 忽略了這一點,因此如果持久化一個已經完全獲取的游標具有這樣的計畫,它將會失敗。 根據 Tomas Barton 的報告。 向後移植到 v11,因為錯誤的 commit 是這樣。 (我省略了一個測試案例,因為導致問題的計畫類型並不是很穩定。) 討論: https://postgr.es/m/CAPV2KRjd=ErgVGbvO2Ty20tKTEZZr6cYsYLxgN_W3eAo9pf5sw@mail.gmail.com https://git.postgresql.org/pg/commitdiff/cba79a163267a44205e391137deb543f4f89bc8b
修正 NO SCROLL 游標的一些異常行為。我們長期以來禁止從 NO SCROLL 游標向後提取資料,但該禁令並未擴展到完全重繞查詢然後重新向前提取資料的情況。我認為原因是這個邏輯主要是為了保護無法反向執行的計畫節點。然而,如果查詢是易變的(包括 SELECT FOR UPDATE,而不僅僅是具有易變函數的查詢),則重新讀取查詢輸出是有問題的:重新讀取可能會產生不同的結果,這會完全混淆游標導航邏輯。另一個不喜歡這種方法的原因是,某些程式碼路徑會根據到目標列的距離來向後提取或重繞後向前提取;因此,看似相同的用例可能會或可能不會產生「游標只能向前掃描」的錯誤。因此,讓我們清理一下,禁止 NO SCROLL 游標中的重繞和向後提取。通常,我們只會在 HEAD 中進行這樣的定義更改,但現在有第三個理由考慮此更改。提交 ba2c6d6ce 為具有 WITH HOLD 的不可滾動游標建立了一些新的使用者可見的異常,如果游標在提交之前已被部分讀取,則游標結果中的導航會變得混亂。解決這些異常的唯一好方法是禁止重繞這樣的游標,這允許移除 ba2c6d6ce 添加到 PersistHoldablePortal 的不正確的游標狀態操作。為了盡量減少後續分支(包括 v14)的行為變更,僅當 NO SCROLL 游標具有 holdStore 時(即由於 WITH HOLD 從先前的事務中保留下來)才拒絕重繞。這應該可以避免破壞大多數對於是否將游標宣告為可滾動不夠嚴謹的應用程式。我們將從 v15 開始全面強制執行該禁令。回溯修補到 v11,就像 ba2c6d6ce 一樣。討論:https://postgr.es/m/3712911.1631207435@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/c1b7a6c2731241cf5af4c08de54a64fc8999d727
使 pg_regexec() 對超出範圍的 search_start 具有穩健性。如果 search_start 大於字串的長度,我們應該立即返回 REG_NOMATCH。(請注意,不應拒絕相等的情況,因為模式可能能夠匹配零個字元。)這保護了各種內部假設,即字串位置範圍的最小值不大於最大值。違反這些假設可能會導致嘗試獲取 string[search_start-1],可能導致崩潰。Jaime Casanova 指出,使用接受使用者指定起始位置的新 regexp_xxx 函數可以達到這種情況。我不認為在 v14 及更低版本中的任何核心呼叫點都可以達到這種情況。但是,擴充套件可能會使用超出範圍的 search_start 呼叫 pg_regexec,所以讓我們無論如何都回溯修補該修復。討論:https://postgr.es/m/20210911180357.GA6870@ahch-to https://git.postgresql.org/pg/commitdiff/e757080e041214cf6983e3e77ef01e83f1371d72
Álvaro Herrera 推送
https://postgr.es/m/CAH2L28vddB_NFdRVpuyRBJEBWjz4BSyTB=_ektNRH8NJ1jf95g@mail.gmail.com
https://git.postgresql.org/pg/commitdiff/0c6828fa987b791744b9c8685aadf1baa21f8977Noah Misch 推送
AIX:透過尊重 SHLIB_EXPORTS 來修復遺失的 libpq 符號。我們使每個 AIX 共享庫匯出在該庫中的 .o 檔案中找到的所有全域變數。這不包括透過 -lpgcommon_shlib 獲得的符號。這在平均情況下是好的,但當提交 e6afa8918c461c1dd80c5063a950518fa4e950cd 將五個官方 libpq API 符號移動到 src/common 時,它就成了一個問題。透過為 AIX 實現 SHLIB_EXPORTS 機制來修復此問題,以便受影響的庫匯出與它們在 Linux 上匯出的相同符號。這重新引入了符號 pg_encoding_to_char、pg_utf_mblen、pg_char_to_encoding、pg_valid_server_encoding 和 pg_valid_server_encoding_id。回溯修補到 v13,其中首次出現上述提交。雖然小版本通常不是在 libpq 或 libecpg 中新增或移除符號匯出的正確時機,但我們應該期望使用者想要每個有文檔記錄的符號。Tony Reix 討論:https://postgr.es/m/PR3PR02MB6396742E2FC3E77D37A920BC86C79@PR3PR02MB6396.eurprd02.prod.outlook.com https://git.postgresql.org/pg/commitdiff/8670b9b999adb66e2e063225496962763c4c28de
撤銷 public schema 的 PUBLIC CREATE 權限,現在由 pg_database_owner 擁有。這將預設 ACL 切換為自 CVE-2018-1058 以來文檔推薦的 ACL。升級將延續任何舊的所有權和 ACL。拒絕 2018 年建議的網站應重新審視。從頭開始調試新資料庫叢集的配方可能需要建立 schema、授予更多權限等。樹狀結構外的測試套件可能需要此類更新。Peter Eisentraut 審閱。討論:https://postgr.es/m/20201031163518.GB4039133@rfd.leadboat.com https://git.postgresql.org/pg/commitdiff/b073c3ccd06e4cb845e121387a43faa8c68a7b62
更新 src/test/kerberos 以說明先前的提交。https://git.postgresql.org/pg/commitdiff/2d689f2ee4615629867c4319a35533696cd16589
Amit Kapila 推送
在 LogicalIncreaseXminForSlot() 中記錄新的目錄 xmin 候選者。類似於 LogicalIncreaseRestartDecodingForSlot(),新增一個偵錯訊息到 LogicalIncreaseXminForSlot(),報告新的 catalog_xmin 候選者。這僅在邏輯解碼期間新增額外的診斷資訊,可以幫助除錯。作者:Ashutosh Bapat 審閱人:Masahiko Sawada, Amit Kapila 討論:https://postgr.es/m/CAExHW5usQWbiUz0hHOCu5twS1O9DvpcPojf6sor=8q--VUuMbA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/4c3478859b7359912d7e99fea702c56b1f53000c
使針對所有表格定義的發布 (publications) 的 relcache 失效。在我們定義針對所有表格的發布後,即使沒有副本身分 (replica identity),也允許對關係 (relation) 進行更新/刪除。這稍後會在訂閱者 (subscriber) 端導致錯誤。原因是對於這類發布,我們沒有使 relcache 失效,並且關係的發布資訊沒有被重建。同樣地,在移除這類發布後,我們也沒有使 relcache 失效,這將禁止在沒有任何發布的情況下進行沒有副本身分的更新/刪除。作者:Vignesh C 和 Hou Zhijie 審閱者:Hou Zhijie、Kyotaro Horiguchi、Amit Kapila 向後移植:10,這是引入此問題的版本。討論:https://postgr.es/m/CALDaNm0pF6zeWqCA8TCe2sDuwFAy8fCqba=nHampCKag-qLixg@mail.gmail.com https://git.postgresql.org/pg/commitdiff/8bd534274099aabf721ca4baef2e8a3a379d7b02
Heikki Linnakangas 推送了
Andres Freund 推送了
Magnus Hagander 推送了
Daniel Gustafsson 推送了