PG Build 2021은 2021 년 11 월 30 일과 12 월 1 일에 온라인으로 개최됩니다. 09 : 00-17 : 00 Gmt.세부 사항.
PostgresDac 3.11, 범퍼카 토토의 직접 액세스 구성 요소 제품군이 출시되었습니다. http://microolap.com/products/connectivity/postgresdac/download/
JDBC 42.3.1릴리스.
ODB C ++ ORM 버전 2.5.0-B.21릴리스.
DynamoDB FDW 1.0.0릴리스.
Babelfish, 범퍼카 토토의 MS SQL Server 호환성 레이어,릴리스.
https : //archives.범퍼카 토토.org/pgsql-jobs/2021-11/
Planet 범퍼카 토토 :https : //planet.범퍼카 토토.org/
범퍼카 토토 주간 뉴스는 이번 주 David Fetter에 의해 당신에게 가져옵니다
일요일 오후 3시에 PST8pdt로 David@fetter.org.
Tom Lane 추진 :
PLPGSQL : 가변 초기화의 오류에 대한 적절한 줄 번호를보고합니다. 이전에는 주변 블록의 시작 키워드를 가리 켰습니다. 있다면 선언 섹션에서 초기화되는 여러 변수가 좋지 않습니다. 충분히 : 그것은 매우 혼란스럽고 도움이되지 않을 수 있습니다. 우리는 어디에 있는지 알고 있습니다 변수의 선언이 시작되었으므로 조금 더 걸립니다. 이를 사용하기위한 오류보고 인프라. 논의:범퍼카 토토 : //postgr.es/m/713975.1635530414@sss.pgh.pa.us https : //git.범퍼카 토토.org/pg/commitdiff/acb2d7d5d2301f07d5857ee252995e62ce9e7055
대기 프로세스가 많은 잠금을 방출 할 때 o (n^2) 동작을 피하십시오. 언제 1 차에 대한 많은 독점적 인 잠금 장치를 보유한 거래를 재생하는 대기 서버의 시작 프로세스는 조작에 대한 O (n^2) 노력을 소비합니다. 자물쇠 목록. 이 코드는 작성되었을 때 괜찮 았지만 1CFF1B95A를 만들었습니다. Repetitive List_delete_first ()는 커밋에 설명 된대로 비효율적입니다 메시지. 목록을 정상적으로 반복하여 수정하고 스토리지 만 공개합니다. 완료되면. (오류에서 복구해야한다면 부적절합니다. 파트 웨이가 발생하는 경우; 그러나 우리는 그렇지 않습니다.) 1cff1b95a에서 v13에 백 패치 들어 왔습니다. Nathan Bossart 토론 :범퍼카 토토 : //postgr.es/m/cd2f0e7f-9822-45ec-a411-ae56f14dea9f@amazon.com https : //git.범퍼카 토토.org/pg/commitdiff/6301c3adabd947394682e37c933b0f3f8353b28
DOC : TAP 테스트와 관련된 readme 파일을 향상시킵니다. 재 배열 첫 번째 섹션이 더 명확하게 "실행 방법 이 테스트 "및 나머지"새로운 테스트 작성 방법 ". 기본 정보 추가 테스트 실패 디버깅에 대한 것이 있습니다. 그런 다음 그 Readne에 크로스 리프를 추가하십시오 탭 테스트를 실행하는 방법을 설명하는 다른 readmes. Kevin의 제안 당 버크, 이것은 그의 원래 패치는 아니지만. 논의:범퍼카 토토 : //postgr.es/m/cakcy5eisbwiqnmcfnondcvcvcvc7b8fyyev3e=6pvvecp9ple-fcuw@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/b21415595cace7f3a45cfeb3023359b4b4d56b85
한 번의 통화로 멀티 -GB PG_STAT_STATEMENTS 파일을 읽으려고하지 마십시오. 창 int_max 바이트 이상을 read ()에게 요청하는 데 실패합니다. 플랫폼은 비슷한 문제를 가질 수 있습니다. 이 코드를 최대로 읽도록 조정합시다 통화 당 1GB. (파일이 그렇게 커질 수 있다고 생각하지 않았지만 이제 우리는 문제에 대한 현장 보고서를 가지고 있으므로 가능합니다. 우리는 아마 일부를 추가해야 할 것입니다 크기와 별도로 query-texts 파일의 크기를 제한하는 메커니즘 해시 테이블의. 그래도이 패치는 아닙니다.) 버그 #17254에서 유스케에 가시 라. 잠시 동안 이와 같았으므로 지원 된 지점. 논의:https : //postgr.es/m/17254-a926c89dc03375c2@범퍼카 토토.org https : //git.범퍼카 토토.org/pg/commitdiff/a667b066837849c5e5e5e0d626f1f7c93e267b8b7
목록 조작의 다른 o (n^2) 위험을 피하십시오. 같은 정신으로 6301c3ada, 우리가 List_delete_first ()를 사용하는 곳을 더 수정하십시오. 루프 및 따라서 O (n^2) 행동 위험이 있습니다. 목록이 확실하지 않습니다 이 지점에서 조작 된 것은 정말로 문제가 될 정도로 오래 걸릴 수 있습니다 ... 그러나 그들이 할 수 없다는 것은 분명하지 않으며 수정 사항은 충분히 간단합니다. 이전과 마찬가지로, v13에 대한 역-패치. 논의:범퍼카 토토 : //postgr.es/m/cd2f0e7f-9822-45ec-a411-ae56f14dea9f@amazon.com https : //git.범퍼카 토토.org/pg/commitdiff/e9d9ba2a4ddc39e331ddddddddd8461b511aa59ec0dc8af
syncpostcheckpoint ()에서 o (n^2) 동작을 피하십시오. Commits 6301c3ada 및 e9d9ba2a4, 그 이후로 반복적 인 list_delete_first () 작업을 피하십시오 링크되지 않기를 기다리는 파일이 많으면 비싸다. 이것은 그 경우보다 약간 큰 변화. 목록 상태를 유지해야합니다 accubsybsyrequests ()에 대한 호출에 유효하므로 A를 발명해야합니다. 보드 링크 린트리 항목을 즉시 삭제하는 대신 "취소 된"필드. 또한 모든 항목을 처리하지 못할 수도 있으므로 새로운 것이 필요합니다. list primitive list_delete_first_n (). list_delete_first_n ()은 거의입니다 list_copy_tail ()이지만 새 사본을 만드는 대신 입력 목록을 수정합니다. 나는 후자의 기존의 몇 가지 용도를 발견했다. 새로운 기능. (더 많은 것이있을 수 있지만 다른 발신자는 그들처럼 보입니다. 아마도 입력 목록을 덮어 쓰지 않아야 할 것입니다.) 이전과 마찬가지로 v13으로 백 패치. 논의:범퍼카 토토 : //postgr.es/m/cd2f0e7f-9822-45ec-a411-ae56f14dea9f@amazon.com https : //git.범퍼카 토토.org/pg/commitdiff/65c6cab1365ac33b11a49a2a193f6b3f9c53e487
Doc : 관계 이름 간의 충돌에 대해 더 정확하십시오. Visciage Like를 사용하십시오 "테이블의 이름은 다른 관계의 이름과 구별되어야합니다. (테이블, 시퀀스, 인덱스, 뷰, 구체화 된보기 또는 외국 표) 동일한 스키마. "모든 객체 유형에 대한 참조 페이지에서 메인 여기에서 변경 사항은 명시 적으로 구체화 된 견해를 언급해야합니다. 비록 몇 가지 이 페이지는 이름 충돌에 대해 전혀 말하지 못했습니다. 당 Daniel Westermann의 제안. 논의:범퍼카 토토 : //postgr.es/m/zr0p278mb0920d0946509233459af0defd2889@zr0p278mb0920.chep278.prod.outlook.com v. https : //git.범퍼카 토토.org/pg/commitdiff/af8c580e5cf32bb85dde70083a260c93a1f783eb
DOC : Template1이지만 Template0이 아닌 일부 장소를 정리하십시오. 개선하다 표준 데이터베이스에 템플릿을 추가했을 때 업데이트되지 않은 오래된 텍스트 세트. P. Luzanov의 제안 당. 논의:https : //postgr.es/m/163583775122.675.3700595100340939507@wrigleys.범퍼카 토토.org https : //git.범퍼카 토토.org/pg/commitdiff/7d9ec0754afeb9f336c5220ef415c37a0b6
execinitcoercetodomain ()에서 가변 수명 수명 수정. 이것은 실수를 취소합니다 1EC7679F1 : DomainVal 및 DomainNull은 루프 반복을 가로 질러 살기위한 것입니다. 그러나 그들은 루프 내부에서 잘못 이동했습니다. 그 효과는 방출하는 것이 었습니다 쓸모없는 추가 EEOP_MAKE_REDONLY 단계이므로 큰 문제는 아닙니다. 그래도 여전히, 실수가 소개 된 v13으로 백 패치. Ranier Vilela 논의:범퍼카 토토 : //postgr.es/m/caeudqaqxuhbkaap-sgh6dr6nsq7v28_0tpexhom6fidyqwqd-w@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/01fc6527034a6f70ed44a078af8f636b1ab64947
DateTime 및 Float8 값의 일관된 논리적 복제를 보장합니다. ~ 안에 Walreceiver, 게시자의 관련 GUCS (데이터 스타일, IntervalStyle, extra_float_digits) pg_dump가 사용하는 것과 동일한 값과 동일한 값에 대해 이유 : 우리는 출력을 수신기의 설정. 이것 없이는 가입자가 가능합니다 전송 된 값을 잘못 해석합니다. 이것은 분명히 버그 수정이지만 그렇지 않습니다 단점없이 : 값을 다른 사람에게 저장하는 가입자 텍스트와 같은 데이터 유형은 이전과 다른 결과를 얻을 수 있으며 아마도 그것에 대해 불행하십시오. 이전의 불만이 부족하다는 점을 감안할 때 가장 좋은 것 같습니다 이것을 머리 속에서만 바꾸고 그것을 호환되지 않는 변화로 부릅니다. v15. Japin Li, Sadhuprasad Patro의 보고서 당 토론 :범퍼카 토토 : //postgr.es/m/caff0-cf=d7pc6st-3a9f1jnot0qmc+bcbpvzd6flyiskyajkga@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/f3d4019da5d026f2c3fe5bd258becf6fbb6b4673
Hamerkop에서 SSL 컴파일 장애를 침묵시키려는 맹인 시도. BuildFarm 멤버 Hamerkop은 지난 며칠 동안 오류가 발생하여 실패했습니다. OpenSSL의 X509 관련 기호가 가져 오지 않았습니다 Secure-Openssl.c. 이것이 왜 그렇게되어야하는지 불분명하지만 추가해 보자. 오랫동안 있었던 것처럼 <spenssl/x509v3.h의 명시 적 #include Fe-Secure-Openssl.c. 논의:범퍼카 토토 : //postgr.es/m/1051867.1635720347@sss.pgh.pa.us https : //git.범퍼카 토토.org/pg/commitdiff/24f9e49e430b4173d73d75a570e06e3fd12c5e
UN-BREAK PG_BASEBACKUP의 MSVC 빌드. Commit 23A1C6578은 귀엽다고 생각했습니다 Refactor PG_BASEBACKUP/MAKEFILE 새로운 변수 BBOBJS를 사용하지만 MSVC 빌드 시스템은 그것에 대해 아무것도 모릅니다. buildfarm 당.https : //git.범퍼카 토토.org/pg/commitdiff/d8bf0a1c1c1d3429cafb3019f2773e2f3aa68f3b65
Hamerkop에서 SSL 컴파일 실패를 침묵시키기위한 두 번째 시도. 더 후 조사, 문제의 원인은 최근에 우리의 최근 결정입니다. Win32_Lean_and_mean 정의를 시작하십시오. 이로 인해 <windows.h가 더 이상 없어집니다 <wincrypt.h를 포함 시키면 OpenSSL 헤더가 충돌하는 매크로를 #undef'ing으로 인해 해당 헤더와의 충돌을 방지하십시오. 분명히, 다른 시스템 헤더는 보안-OPENSSL.C가 뒤 따르는 후에 포함됩니다 OpenSSL 헤더가 <wincrypt.h를 당기고 있습니다. 그것은 어디에 있는지 모호합니다 다른 Windows BuildFarm 동물에서는 그것을 보지 못하는 이유와 왜 우리가 그것을 보지 못하는지. 그러나 OpenSSL #inincluds를 목록의 끝으로 이동하는 것이 작동해야합니다. 미래 방지를 위해 Fe-Secure-Openssl.c에서도 마찬가지입니다. ~ 안에 통과, <openssl/ssl.h의 쓸모없는 이중 포함을 제거하십시오. 감사합니다 관련 정보를 실행 한 Thomas Munro. 논의:범퍼카 토토 : //postgr.es/m/1051867.1635720347@sss.pgh.pa.us https : //git.범퍼카 토토.org/pg/commitdiff/1241fcbd7e649414f09f9858ba73e63975dcff64
array_to_tsvector ()를 통해 빈 lexeme을 만들지 못하게합니다. tsvector 데이터 유형은 항상 비어있는 lexemes를 금지했습니다. 그러나 Array_to_tsvector () 그 메모를 얻지 못했고 빈 스트링 어레이 요소가 빈 lexeme. 이로 인해 덤프/복원이 나중에 실패하지 않을 수 있습니다 의미 론적 문제가 원래 금지의 뒤에있을 수있는 모든 것을 언급하십시오. 그러나 Lexeme으로 직접 일반 텍스트 입력을 취하는 다른 기능 값은 문자열과 일치하기 때문에 비슷한 제한이 필요하지 않습니다. 기존 TSVECTOR 항목에 대해. 특히, 그것은 나쁜 생각 일 것입니다 TS_DELETE () 빈 줄을 거부합니다. 이것을 통해 TSVECTOR 열로 들어갈 수있는 잘못된 데이터 정리 벌레. 이를 반영하여 NULL 배열에 대한 금지를 제거하겠습니다. tsvector_delete_arr 및 tsvector_setweight_by_filter의 요소. 그것은 것 같습니다 빈 스트링 요소가 무시할 때, 그것들을 무시하는 것이 더 일관됩니다. 버그 수정이기 때문에 이것을 배치하는 사례가 있습니다. ~에 그러나 균형은 사소한 릴리스에서 변화하는 것 같지 않습니다. Jean-Christophe Arnu 토론 :범퍼카 토토 : //postgr.es/m/cahzmtm1yvndpguvroag2wl0w900xcoiivddj-gttybsg25c65a@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/cbe25dcff73a297adbada9dc1d6cad3df18014e9
MSVC PGCRYPTO 빌드를 수정하려는 맹인 시도. DB7D1A7B0을 뽑아 냈습니다 MKVCBUILD.PM의 Contrib/Pgcrypto 구축에 대한 맞춤형 지원이지만 무시되었습니다 해당 모듈은 이제 정상적으로 구축 될 수 있음을 알려주십시오. 아니면 적어도 나는 그것을 생각합니다 이제 정상적으로 구축 할 수 있습니다. 그러나 이것은 분명히 Bowerbird가 실패하게 만들고 있습니다. 모듈을 테스트하려고했기 때문에 구축되지 않았습니다.https : //git.범퍼카 토토.org/pg/commitdiff/3c2c391dc9f82fae181508ebcc2f7621ffefd024
DOC : 목록 기능의 성능에 대한 메모를 추가하십시오. 제안 당 Andres Freund에서. 논의:범퍼카 토토 : //postgr.es/m/20211104221248.pgo4h6wvnjl6uvkb@alap3.anarazel.de https : //git.범퍼카 토토.org/pg/commitdiff/27ef132a805c8633ed8bb94ed70be995c681ab1f
Contrib/Sslinfo는 Hamerkop을 행복하게 만들기 위해 수정이 필요합니다. 다시 주문 #Include는 libpq/libpq-be.h를 포함해야하기 때문에 여기에서 약간 문제가 있습니다. <openssl/ssl.h. 대신, 모든 후에는 원치 않는 매크로를 #undef로합시다 #includes. 이것은 다른 방법보다 확실히 추악하지만 작동해야합니다. 미래의 헤더 재 배열에도 불구하고. (OpenSSL 헤더를 살펴 봅니다 x509_name은 우리가 사용하는 유일한 충돌 기호임을 나타냅니다.) PG_BACKUP_ARCHIVER.H에서 관련이 있지만 장기적으로 고소한 주석을 제거하십시오. 논의:범퍼카 토토 : //postgr.es/m/1051867.1635720347@sss.pgh.pa.us https : //git.범퍼카 토토.org/pg/commitdiff/568620dfd6912351b4127435eca5309f823abde8
침묵되지 않은 변수 경고. 꽤 많은 빌드 필이 치는 동물입니다 이에 대한 경고와 Lapwing은 실제로 실패합니다 (-werror 때문에). 그것은 a입니다 거짓 긍정적 afaics이므로 시작하기 위해 변수를 0 이상 할 필요가 없습니다. 와 함께. 논의:범퍼카 토토 : //postgr.es/m/yyxjnuxgw9dzkxlx@paquier.xyz https : //git.범퍼카 토토.org/pg/commitdiff/c3ec4f8fe867807613c08fe16789434AB1A74A15
Michaël Paquier 추진 :
Reindex를 가로 질러 OPClass 매개 변수를 동시에 보존하십시오. opclass 매개 변수 이전 지수의 데이텀은 Predicates와 같은 방식으로 가져옵니다. 표현식, 시스템 카탈로그에서 직접 잡아. 그들은입니다 그런 다음 새로운 indexinfo로 복사하여 새 사본. 이로 인해 새로운 인덱스가 기본 매개 변수로 재건되었습니다. 사용자가 사전 정의한 것보다는. 새로운 것을 되 찾는 유일한 방법 올바른 opclass 매개 변수가있는 색인은 새 인덱스를 재현하는 것입니다. 할퀴다. 이 문제는 911E702에 의해 소개되었습니다. 저자 : Michael Paquier 검토 : Zhihong Yu 토론 :범퍼카 토토 : //postgr.es/m/yx0cg/qplxcpr8hj@paquier.xyzBackpatch-Strough : 13https : //git.범퍼카 토토.org/pg/commitdiff/add5cf28d4814945946b9aff378aebf17482
타임 라인 스위치를 사용하여 pg_receivewal에 대한 탭 테스트 추가. pg_receivewal은 할 수 있습니다 타임 라인 스위치를 따르지만 테스트되지 않았습니다. 이 테스트는 빈 공간을 사용합니다 슬롯에서 다시 시작하여 아카이브 위치를 구현합니다. 기존 아카이브 디렉토리를 재사용하는 것보다 더 간단합니다. 작가: Ronan Dunklau Reviewed-By : Kyotaro Horiguchi, Michael Paquier 토론 :범퍼카 토토 : //postgr.es/m/18708360.4lzovyhige@aivenronan https : //git.범퍼카 토토.org/pg/commitdiff/0f9b9b9b938a0367313fcfcf6a32fcb7fb5be9e281198
PG_RECEIVEWAL의 압축 옵션 재 작업 옵션. PG_RECEIVEWAL은 그 이후로 포함됩니다 CADA1AF 옵션 -코압, WAL 세그먼트의 압축을 사용하여 값이 0 (기본값) 인 gzip을 사용하여 압축을 사용할 수 없음을 의미합니다. 이 커밋 "None", 기본값 및 "gzip"값은 물건을보다 확장 할 수 있도록합니다. -코프 프레스 = 0의 경우이 옵션 레이어로 퍼지가되므로 PG_RECEIVEWAL을 "없음"및 A를 사용할 때 오류를 반환하는 선택 0이 아닌 압축 수준, 즉-코 프레스의 승인 된 값 이제 [0,9] 대신 [1,9]입니다. "gzip"으로 -코프트를 지정하지 않음 압축 방법은 pg_receivewal을 대신 Zlib의 기본값을 사용하게합니다. (z_default_compression). 스트리밍 시작을 책임지는 코드 LSN 기존 아카이브를 스캔 할 때 리팩토링되어 더 많은 확장 가능. 그것에있는 동안 "compression"을 "compression_level"으로 바꾸십시오 walmethods.c, 압축 도입과의 혼란을 줄이기 위해 방법, pg_basebackup이 사용하는 TAR 방법이 압축 방법 (적어도, 적어도)이지만 압축 수준 (이것은 실제로 면적이 더 개선 될 수 있습니다). 이것은 준비 중입니다 PG_RECEIVEWAL에 LZ4 지원을 추가하는 다가오는 패치. 저자 : Georgios Kokolatos 검토 : Michael Paquier, Jian Guo, Magnus Hagander, Dilip Kumar, Robert Haas 토론 :범퍼카 토토 : //postgr.es/m/zcm1j5vfyq2e6dyvxz8si39hq2gwxsz3ipyavgya3 luwy88slapx9eenof5uewrddhx2twg7zykjveup5mwzxcnpybtsgoudsad1o2l_i5e=@pm.me https : //git.범퍼카 토토.org/pg/commitdiff/d62bcc8b07f921bad105c7a826702c117ea7be58
pg_receivewal -compression-method로 일부 Thinkos를 수정하십시오. 옵션 이름은 다음과 같습니다 오류 메시지 중 하나에서 잘못되었고 짧은 옵션 'I'가 사용되었습니다. 코드이지만 우리는 이런 식으로 의도하지 않았습니다. 그것에있는 동안, 그것을 고치십시오 "방법"이 아닌 "메소드"를 참조하는 문서는 "레벨. 커밋의 감독 D62BCC8, LZ4 패치를 더 검토 한 후에 감지 한 것입니다. pg_receivewal.https : //git.범퍼카 토토.org/pg/commitdiff/958862945754305836555273a3be814db315c
PG_RECEIVEWAL에서 LZ4 압축에 대한 지원 추가. pg_receivewal은 새로운 것을 얻습니다 옵션,-코포 프레스트 -method = lz4, 코드가 컴파일 될 때 사용 가능합니다 -with-lz4. GZIP와 마찬가지로 이것은 압축 가능성을 제공합니다 LZ4와 함께 보관 된 WAL 세그먼트. 이 옵션은 호환되지 않습니다 --압박 붕대. 구현은 LZ4 프레임을 사용하며 Simple과 호환됩니다. lz4 명령. gzip과 마찬가지로 -synchronous를 사용하면 모든 데이터가 현재. 당면 세그먼트 내에서 디스크로 플러시되어 있으므로 가능합니다. 완료되지 않은 세그먼트에서도 가능한 한 많은 WAL 데이터를 검색합니다 (이것은 WAL 세그먼트 크기까지 0을 사용하여 부분 파일을 완료해야합니다. 감압 후 백엔드에 의해 지원되지만 이는 GZIP와 동일합니다). 스트리밍 시작의 계산 LSN은 투명하게 찾을 수 있고 LZ4- 압축 세그먼트를 점검하십시오. 압축되지 않은 크기가있는 gzip과 반대로 객체 읽기에 직접 저장되며 LZ4 청크 프로토콜은 저장하지 않습니다. 기본적으로 압축되지 않은 데이터. 함께 사용할 수있는 내용이 있습니다 LZ4 프레임은 세그먼트가 포함 된 아카이브를 사용하는 경우 도움이되지 않습니다. "lz4"명령의 기본값으로 압축되어 저장되지 않습니다. 따라서이 커밋은 공백을 통해 압축되지 않은 크기를 확인하려면 이미 구한 세그먼트 64KB 덩어리의 출력 버퍼 (실제 성능 차이는 8KB, 16KB 또는 32KB, 작동 자체는 실제로 빠릅니다). 테스트는 있습니다 생성 된 LZ4 파일의 생성 및 정확성을 확인하기 위해 추가되었습니다. 후자는 "lz4"명령을 사용하여 달성됩니다. 환경. Walmethods.c의 TAR 기반 WAL 방법은 지금 만 사용됩니다. PG_BASEBACKUP은 아직 LZ4에 대해 알지 못합니다. 코드가 확장 될 수 있습니다 이 목적. 저자 : Georgios Kokolatos 검토 : Michael Paquier, Jian Guo, Magnus Hagander, Dilip Kumar 토론 :범퍼카 토토 : //postgr.es/m/zcm1j5vfyq2e6dyvxz8si39hq2gwxsz3ipyavgya3 luwy88slapx9eenof5uewrddhx2twg7zykjveup5mwzxcnpybtsgoudsad1o2l_i5e=@pm.me https : //git.범퍼카 토토.org/pg/commitdiff/babbbbbb595d2322da095a1e6703171b3f1f2815cb
주석에 대한 PSQL 탭 완료 개선. 더 많은 객체를 위해 완료가 추가됩니다 도메인 제약, 텍스트 검색 객체 또는 정책과 같은 유형. 또한이 지역은 재구성되어 향후 추가를 완화하기 위해 문서와 동일한 순서로 주석. 저자 : Ken Kato Reviewed-By : Fujii Masao, Shinya Kato, Suraj Khamkar, Michael Paquier 토론 :범퍼카 토토 : //postgr.es/m/6e0c2f3f657b29bea32d098d118f307@oss.nttdata.com https : //git.범퍼카 토토.org/pg/commitdiff/a5b336b8b9e04a93e7c8526302504d2e5201eb80
Álvaro Herrera 추진 :
DecodexLogop에서 XLOG_OVERWRITE_CONTRECORD를 처리합니다. 그렇게하지 않으면 결과가 발생합니다 WAL 스트림을 처리 할 논리 디코딩이 불가능합니다. 수행하여 처리하십시오 아무것도 아님. 뒤로 뒤로 백파치. 보고서 : Petr Jelínekpetr.jelinek@enterprisedb.com https : //git.범퍼카 토토.org/pg/commitdiff/40c516bba864395c77bcfb1bae65ba9562ba8f71
Vacuumdb에 대한 의사 Blurb-Analyze-in-Stages. 사용자가이를 사용하여 알리도록합니다 기존 통계가있는 데이터베이스에서 일시적인 문제가 발생할 수 있습니다. 작가: Nikolai Berkoffnikolai.berkoff@pm.me토론 :범퍼카 토토 : //postgr.es/m/s-ksljtwxmwgmfgtztptpcs80r8fhdorbxdtnrqi6 gmzbt7au1a4b0fzasftkwci8nwnwn0mhgplfvotvj7dwtjkip4p3d0o4vgrmjs4oln-o=@pm.me https : //git.범퍼카 토토.org/pg/commitdiff/00a354a13560dc529ac34a303c85c265aaf033b7
log_startup_progress_interval의 기본값 및 변경 가능성. 검토 9CE346EABF35 용. 저자 : Álvaro HerreraAlvherre@alvh.no-ip.org검토 바이 : Robert Haasrobertmhaas@gmail.com토론 :범퍼카 토토 : //postgr.es/m/202110292123.bnf6axcp27vx@alvherre.pgsql https : //git.범퍼카 토토.org/pg/commitdiff/e543906e217509ad95c1e341de4e874f027f871b
파이프 라인 모드는 멀티 맨드 문자열을 분해합니다. ... 그러니 언급하십시오 libpq 문서의 적절한 장소. 백파치 대 14. 보고서 : Rekgrpthrekgrpth@gmail.com토론 :https : //postgr.es/m/17235-53bb38fc5be593dc@범퍼카 토토.org https : //git.범퍼카 토토.org/pg/commitdiff/105c1de0197473dac8ada55dc8cf773d78224cb
변경 테이블을 문서화하십시오. 유형은 통계를 제거합니다. 공동 저술 : Nikolai Berkoffnikolai.berkoff@pm.me토론 :범퍼카 토토 : //postgr.es/m/vcc8xnwdmlp4znhbqlivxzd405biyhvc9qzlhif7i SFXK0GC9MZ4PUUOH0-3Y6KV5P-87-3_LJQT1KVQVANB8OOWHPU3KCQWN2ZPMXRBCQG=@PM.ME https : //git.범퍼카 토토.org/pg/commitdiff/df80f9da5c6541e744eeb20eaca919c7fc189999
동시 낙하가 드문 경우 충돌을 피하십시오. 역할이 떨어질 때 포함 된 카탈로그 개체는 동시에 삭제하면 충돌이 발생하는 동안 발생할 수 있습니다. 객체를 설명합니다. 설명이있는 객체를 무시함으로써이를 억제하십시오 널로 반환됩니다. 관련 코드 사이트의 대부분은 이미였습니다 이미 이것에 대해 신중합니다. 우리는 방금 부부를 놓쳤다. 이것은 오래된 버그입니다. 배가 뒤로 뒤로 물러납니다. 보고서 : Alexander Lakhinexclusion@gmail.com토론 :https : //postgr.es/m/17126-21887f04508cb5c8@범퍼카 토토.org https : //git.범퍼카 토토.org/pg/commitdiff/d74b54b3ddf710926a44bf3f3f9c00e6f82d825
Daniel Gustafsson이 추진했습니다 :
Amit Kapila 추진 :
XLOG_INCLUDE_XID 플래그를보다 현지화 된 플래그로 교체하십시오. Commit 0Bead9af484C WAL 레코드에 포함되어 있음을 나타내는 Xlog_include_xid 플래그 서브 덱스-토 픽시드 협회. 나중에 그 깃발을 사용하여 표시합니다 currentTransactionState 상단 XID가 로그인하여 우리가 시도하지 않아야합니다. 현재 하위 트랜잭션에서 다음 WAL 레코드로 다시 로그인하십시오. 하지만, 현지화 된 변수를 사용하여 해당 정보를 전달할 수 있습니다. 지나가고, 변화 관련 기능과 변수 이름은 코드가 실제로 수행 중입니다. 저자 : Dilip Kumar 검토 : Alvaro Herrera, Amit 카필라 토론 :https : //postgr.es/m/e1msoyz-0007fh-d9@gemulon.범퍼카 토토.org https : //git.범퍼카 토토.org/pg/commitdiff/71db6459e6e4ef623e98f3b1e3e9fed1bfb0ae3b
중요 섹션에서 MarkCurrentTransactionIdLoggedifany ()를 이동하십시오. 우리 이 기능에서 공유 상태를 수정하지 않아 문제가 발생할 수 있습니다. 동시 세션. 이것은 다른 업데이트와 비슷하게 보이게합니다. 미래에 대한 혼란을 피하는 동일한 구조 (TransactionState)의 경우 코드 독자. 저자 : Dilip Kumar Reviewed-by : Amit Kapila 토론 :https : //postgr.es/m/e1msoyz-00077fh-d9@gemulon.범퍼카 토토.org https : //git.범퍼카 토토.org/pg/commitdiff/335397456b7e3f9f619038cb322fbfc9dd649d4f
Fujii Masao 추진 :
PGBENCH : PGBENCH에서 오류 처리를 향상시킵니다. 이전에 초기 실패 연결 및 로그 파일이 열린 Pgbench가 벤치마킹을 진행했습니다. 불완전한 결과와 상태 2로 종료합니다. 진행하는 것은 의미가 없었습니다. PGBench가 규정 된대로 시작할 수없는 경우에도 벤치마킹. 이 커밋 벤치 마크를 시작할 때 발생하는 초기 오류가 발생하여 PGBench를 향상시킵니다. 이러한 실패로 인해 PGBench가 상태 1과 함께 즉시 종료해야합니다. 저자 : Yugo Nagata 검토 : Fabien Coelho, Kyotaro Horiguchi, Fujii Masao 논의:범퍼카 토토 : //postgr.es/m/tycpr01mb5870057375aca8a73099c649f5349@tycpr01mb5870.jpnprd01.prod.outlook.com https : //git.범퍼카 토토.org/pg/commitdiff/cd29be5459f0e138c0f19d49ee588feeda78e3c9
pgbench : 주석으로 오타 수정. 논의:범퍼카 토토 : //postgr.es/m/f9041ec2-46b6-1b41-0e84-9c8a1e2d6bda@oss.nttdata.com https : //git.범퍼카 토토.org/pg/commitdiff/d8dba4d03068eeeeeee1eee1eee1eee1ffc8e7c7b4fa35a7f4
Peter Geoghegan 추진 :
병렬 진공 동안 인덱스를 간과하지 마십시오. b4af70cb를 커밋하십시오 진공에 의해 관리되는 단순화 된 상태, 병렬 진공의 리팩토링을 수행 지나가는 동안. 리더가하는 과제의 정확한 세부 사항에 대한 혼란 프로세스는 병렬로이를 가능하게하는 코드를 제공합니다. 진공 진공 테이블 인덱스의 하위 집합을 놓치는 진공. 구체적으로, min_parallel_index_scan_size 크기 컷오프에 해당하는 인덱스는있었습니다 놓쳤다. 이 지수는 리더가 진공 청소기를 청구해야합니다 ( 평행 불안한 색인)이지만 전혀 진공 청소되지 않았습니다. 영향을받는 인덱스 일단 힙 덩어리가 재활용되면 중복 힙으로 쉽게 끝날 수 있습니다. 새로운 힙 튜플. 이것은 거의 모든 것으로 볼 수있는 일반적인 증상이있었습니다. 인덱스와 그 사이의 구조적 불일치와 관련된 색인 손상 테이블. 수정하려면 병렬 진공 리더 프로세스가 크기 컷오프보다 낮은 인덱스에 필요한 색인 진공 청소기. 또한 이하 크기 절단으로 평행 진공의 설계를 문서화하십시오. 인덱스. 이 버그의 얼마나 많은 사용자가 영향을 받는지 확실하지 않습니다. 거기 버그에 부딪 치기 위해 테이블에서 최소 3 개의 색인이어야했습니다 : 더 작은 색인, 또한 크기 컷오프를 초과하는 최소 2 개의 추가 인덱스. 하나의 추가 색인 만있는 사례는 병렬 진공 비용 모델은 병렬 처리를 적용하는 테이블. 또한 Autovacuum은 그렇지 않았습니다 병렬 처리를 사용하지 않기 때문에 영향을받습니다. 테스트를 기반으로 테스트 사례 더 큰 패치에서 Masahiko Sawada의 평행 진공을 테스트하기 위해. 많은 감사합니다 Kamigishi Rei 에게이 문제를 추적하는 데 귀중한 도움을 받으십시오. 저자 : Peter Geogheganpg@bowt.ie저자 : Masahiko Sawadasawada.mshk@gmail.com보고서 : Kamigishi Reiiijima.yun@koumakan.jp보고서 : Andrew Gierthandrew@tao11.riddles.org.uk진단 : Andres Freundandres@anarazel.de버그 : #17245 토론 :https : //postgr.es/m/17245-ddf06aaf85735f36@범퍼카 토토.org토론 :범퍼카 토토 : //postgr.es/m/20211030023740.qbnsl2xaoh2grq3d@alap3.anarazel.deBackpatch : 14-, 리팩토링 커밋이 나타나는 곳.https : //git.범퍼카 토토.org/pg/commitdiff/9bacec15b67d1a643915858f054790f36b2b7871
병렬 AMVACUUMCLEANUP 안전 버그 수정. Commit B4AF70CB는 반환을 뒤집습니다 함수의 값 parallel_processing_is_safe ()이지만 누락되었습니다 amvacuumcleanup 테스트. 병렬 정리를 전혀 지원하지 않는 인덱스 AM 영향을 받았습니다. 이 버그의 실질적인 결과는 그다지 심각하지 않았습니다. 해시 인덱스는 영향을 받지만 블록 수를 반환하기 때문에 어쨌든 hashvacuumcleanup 동안 많은 영향을 미치지 않았습니다. 작가: Masahiko Sawadasawada.mshk@gmail.com토론 :범퍼카 토토 : //postgr.es/m/cad21aoa-em+aevpmbbl_s1v-ghsjqsxyl-i3jp8ntfpid1wjkw@mail.gmail.comBackpatch : 14- 커밋 B4AF70CB가 나타납니다.https : //git.범퍼카 토토.org/pg/commitdiff/c59278a1aa5ef2ee8a6d5d83bd987a7ce5c89e84
git-brame-ingore-Revs에 또 다른 오래된 커밋을 추가합니다. 또 다른 역사적인 Pgindent를 추가하십시오 Commit 8E638845에서 수행 한 초기 작업에서 놓친 커밋.https : //git.범퍼카 토토.org/pg/commitdiff/581055c32fbb518431265877754cbd8019bc012
힙 가지 치기 코드에 다양한 주장을 추가합니다. 이 주장은 문서 (및 검증) 가지 치기가 어떻게 영향을 줄 수 있고 영향을 줄 수 없는지에 대한 높은 수준의 가정 대상 힙 페이지의 기존 항목. 예를 들어, 새로운 주장 중 하나입니다 가지 치기가 힙 전용 튜플을 LP_DEAD로 설정하지 않는지 확인합니다. 작가: Peter Geogheganpg@bowt.ie검토 : Andres Freundandres@anarazel.de토론 :범퍼카 토토 : //postgr.es/m/cah2-wz=vhvbx1gjf+ouehhh8yqchoqyrmi0f0zfmher8yc4scoa@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/5cd7eb1f1c32e1b95894f28b277b4e4b89add772
인덱스에서 유효하지 않은 TID를 잡기 위해 경화를 추가하십시오. heapam에 경화를 추가하십시오 힙을 가리키는 색인 페이지에서 TID를 잡을 수있는 색인 튜플 삭제 경로 색인 튜플이 가리키지 않아야하는 항목. 우리가 노력하고있는 부패 여기서 잡기는 일반적으로 포함되기 때문에 감지하기가 특히 까다 롭습니다. 필요한 색인이없는 것과는 달리 "추가"(부패) 색인 튜플 색인에 튜플. 예를 들어, 인덱스 페이지의 힙 정리 힙 페이지의 lp_unused 항목을 가리려면 새로운 수표 중 하나에 사로 잡혔습니다. 최근에 가능성이 높습니다 고정 병렬 진공 버그 (Commit 9bacec15 참조)가 잡혔을 것입니다. Postgres 14에 대한 특별한 수표가 제자리에있었습니다. 그래도 지금은 더 강화됩니다. 저자 : Peter Geogheganpg@bowt.ie검토 : Andres Freundandres@anarazel.de토론 :범퍼카 토토 : //postgr.es/m/cah2-wzk-4_ratzawwgaiqnvkpwdxxv3y1aqhqyuehfku=tfcea@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/e7428a9a9a13f973549aab30c57ec8380dda1869
쓸모없는 힙 가지 치기 의견을 업데이트하십시오. 무엇을 설명하는 새로운 의견을 추가하십시오 진공 청소기 힙 가지 치기로부터의 진공 예상 : 가지 치기는 죽은 튜플 뒤에 남겨 두지 않아야합니다. 여전히 튜플 스토리지가 있습니다. 이것은 커밋 이후 적어도 그랬습니다 8523492d. 아마도 튜플 스토리지가있는 죽은 튜플을 직접 처리합니다. 단순히 가지 치기를 다시 시도함으로써 (동시와 관련된 희귀 한 코너 케이스를 처리하기 위해 거래 중단). 통과 할 때 이전 기호 이름에 대한 일부 참조를 업데이트하십시오 스냅 샷 확장 성 작업 (특히 커밋 DC7420C2C9).https : //git.범퍼카 토토.org/pg/commitdiff/f214960adde6028a39ba3014b14b1ab2b224faeefed
Vacuumlazy.c에서 쓸모없는 참조 업데이트. Commit 7AB96CF6에서 감독.https : //git.범퍼카 토토.org/pg/commitdiff/02f9fd129432cab565b2a3cb9f3b3a5000dfe540
Peter Eisentraut 추진 :
잘못된 형식 자리 표시 자 수정.https : //git.범퍼카 토토.org/pg/commitdiff/ef6f047d2c87b91318364341c058dd6b715951B2
PGCRYPTO : 비 OpensSL 지원을 제거하십시오. pgcrypto는 내부 구현을 가졌다 OpenSSL을 호출하는 대안으로 일부 암호화 알고리즘. 대부분의 생산 설치가 구축되었으므로 거의 사용되지 않았습니다. OpenSSL. 또한 병렬 코드 경로를 유지하면 코드가 더욱 높아집니다 복잡하고 유지하기가 어렵습니다. 이 패치는 이러한 내부를 제거합니다 구현. 이제 Pgcrypto는 OpenSSL 지원이있는 경우에만 제작되었습니다 구성되었습니다. 검토 : Daniel Gustafssondaniel@yesql.se토론 :/message-id/flat/0b42f1df-8cba-6a30-77d7-acc241cc88c1%40enterprisedb.com https : //git.범퍼카 토토.org/pg/commitdiff/db7d1a7b0530e8cbd045744e1c75b0e63fb6916f
Heikki Linnakangas 추진 :
lo_export가 실패하면 스냅 샷 참조 누출 수정. lo_export ()가 열리지 않으면
대상 파일 또는 쓰기 위해 생성 된 큰 도구를 누출하고
최상위 변환 컨텍스트 및 리소스 소유자의 스냅 샷. 예쁘다
무해, 그것은 결국 작은 누출이지만, 사용자에게 "스냅 샷을 제공합니다.
참조 누출 "경고. 단기간 메모리 컨텍스트를 사용하여 수정하십시오.
개방 및 폐쇄 된 과도 대도시의 리소스 소유자
하나의 기능 호출 내에서. 누출은 lo_export ()를 사용하여 재생산하기가 가장 쉽습니다
존재하지 않는 디렉토리, 원칙적으로 다른 디렉토리lo_*
함수
실패 할 수도 있습니다. 모든 지원되는 버전에 대한 배낭을. 보고서 : Andrew b
검토 : Alvaro Herrera 토론 :/message-id/32bf767a-2d65-71c4-f170-122f416bab7e@iki.fi
https : //git.범퍼카 토토.org/pg/commitdiff/6b1b405ebfdce9da47f59d4144b1168709fbce
대체 예상 출력 파일을 업데이트합니다. 이전 커밋은 테스트를 추가했습니다 'BARGEOBJECT', 그러나 대체 예상 출력 파일을 무시했습니다 'BARGEOBJECT_1.SOURCE'. Buildfarm Animal 'Hamerkop'의 실패 당. 논의:/message-id/dba08346-9962-4706-92d1-230ee5201c10@yesql.se https : //git.범퍼카 토토.org/pg/commitdiff/d5ab0681bf1bbf6c0c2cba9a2d5fe8e080597b6
Robert Haas 추진 :
Amcheck : 추가 토스트 포인터 점검을 추가하십시오. 구운 점검을 확장하십시오 Rawsize가 오스러스 인 경우 불만을 제기 할 속성. 압축 속성, 압축이 확장 된 것으로 보이는 경우 불평 속성 또는 압축 메소드가 유효하지 않은 경우. Mark Dilger, 검토 Justin Pryzby, Alexander Alekseev, Heikki Linnakangas, Greg Stark 및 Me. 논의:http : //postgr.es/m/8e42250d-586a-4a27-b317-8b062c3816a8@enterprisedb.com https : //git.범퍼카 토토.org/pg/commitdiff/bd807be6935929bdefe74d1258048f0aafa3
기본 백업 코드를 모듈화하기 위해 'bbsink'추상화를 소개합니다. 베이스 백업 코드는 수년에 걸쳐 건전한 수많은 새로운 기능을 축적했지만 유지하기가 점점 어려워지고 해당 코드를 더욱 향상시킵니다. 실질적인 우려가 없기 때문입니다. 예를 들어, 코드입니다 이해하는 것은 우리가 고객에게 데이터를 보내는 방법에 대한 세부 사항을 LIBPQ 프로토콜은 BASEBACKUP.C 전체에 흩어져 있습니다 한 곳에서 중앙 집중식. 이 상황을 개선하려고 시도하려면 새로운 것을 소개하십시오 'bbsink'객체는 기본 백업 진행 및 백업 매니페스트. 이 커밋이 소개됩니다 BBSINK의 세 가지 유형 : A 'COPPYTBLSPC'BBSINK 백업을 클라이언트에게 전달합니다. 테이블 스페이스 당 하나의 복사 작업 및 매니페스트를 위해 다른 복사 작업을 사용하여 'Progress'bbsink는 명령 진행 보고서 및 '스로틀'bbsink를 수행합니다. 속도 제한을 수행합니다. '진행'및 '스로틀'BBSink 유형도 있습니다 데이터를 후임자 BBSINK로 전달하십시오. 현재, 마지막 bbsink 체인은 항상 'CopyTblSpc'유형입니다. 더 많은 유형을 추가 할 계획이 있습니다 향후 커밋에 'bbsink'의. 이 추상화는 진보보고, 그러나 이것은 여전히 우리가 이전보다 더 깨끗해 보입니다. 나에 의한 패치, Andres Freund, Sumanta Mukherjee, Dilip의 검토 및 테스트 Kumar, Suraj Kharage, Dipesh Pandit, Tushar Ahuja, Mark Dilger 및 Jeevan Ladhe. 논의:범퍼카 토토 : //postgr.es/m/ca+tgmozgwr=zvwfeecncubeypdwghnvfkkdbe9blcclsiqdf9q@mail.gmail.com토론 :범퍼카 토토 : //postgr.es/m/ca+tgmozvqkk7uuzxsxsx1xjjjrmmgkugytzldch8smu1xtpr1xig@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/bef47ff85df18bf4a3a9b13bd2a54820e27f3614
PG_BASEBACKUP을 모듈화하기 위해 'BBStreamer'추상화를 소개합니다. pg_basebackup 서버에서 얻은 백업으로 몇 가지 작업을 수행하는 방법을 알고 있습니다. 파일을 작성하거나 먼저 압축하거나 타르를 구문 분석하는 것처럼 수정 된 범퍼카 토토.auto.conf 파일을 아카이브에 형식화하고 인젝트 서버에 의해 생성됩니다. 비정상적으로, 이것은 pg_basebackup.c를 매우 크게 만듭니다 소스 파일, 예를 들어 서버가 우리에게 다른 것보다 '타르'파일을 보내고 있다는 지식 일종의 아카이브는 중앙 집중식이 아닌 모든 곳에 퍼집니다. 에서 이 상황을 개선하기위한 노력 으로이 커밋은 새로운 'bbstreamer'를 발명합니다. 추출. 서버에서받은 각 아카이브는 BBStreamer에 공급됩니다. 이를 처리하거나 다른 BBStreamer에게 전달할 수 있습니다. 청크는 또한 그들이의 일부인지에 따라 "라벨링"될 수 있습니다 아카이브 또는 아카이브 메타 데이터의 일부에있는 파일의 페이로드 데이터. 그래서, 예를 들어 TAR 파일을 사용하려면 범퍼카 토토.auto.conf를 수정하십시오. 포함 된 파일 및 결과를 gzip으로 작성하고 쓸 수 있습니다. BBStreamer_TAR_PARSER 서버에서받은 TAR 파일을 구문 분석하려면 A bbstreamer_recovery_injector 범퍼카 토토.auto.conf의 내용을 수정하려면 a bbstreamer_tar_archiver 수정 된 파일의 타르 헤더를 교체하려면 수정 된 것에 맞는 새로 만들어진 새 단계를 가진 이전 단계 파일 및 bbstreamer_gzip_writer를 gzip으로 작성하고 결과 데이터를 작성하십시오. 오직 이름에 "타르"가있는 개체는 타르 아카이브 형식에 대해 알고 있습니다. 그리고 이론적으로 우리는 "타르"보다는 다른 형식을 사용하여 다시 살 수 있습니다. 누군가 코드를 작성하고 싶었습니다. 이러한 기회는 상당한 양을 추가합니다 코드이지만 결과는 훨씬 더 유지 가능하고 확장 가능하다고 생각합니다. pg_basebackup.c 자체는 대략 3 분의 1, 많은 이전에 포함 된 복잡성은 새로 수용된 파일로 이동했습니다. 나에 의한 패치. 이것이 부분 인 더 큰 패치 시리즈가 검토되었습니다. Andres Freund, Sumanta Mukherjee, Dilip Kumar, 다양한 시간에 테스트했습니다. Suraj Kharage, Dipesh Pandit, Tushar Ahuja, Mark Dilger, Sergei Kornilov 및 Jeevan Ladhe. 논의:범퍼카 토토 : //postgr.es/m/ca+tgmozgwr=zvwfeecncubeypdwghnvfkkdbe9blcclsiqdf9q@mail.gmail.com토론 :범퍼카 토토 : //postgr.es/m/ca+tgmozvqkk7uuzxsxsxsx1xjjrmmgkugytzldch8smu1xtpr1xig@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/23a1c6578c87fca0e361c4f5f9a07df5ae1f9858
그렇게 할 이유가 없을 때이 thistimelineid를 설정하지 마십시오. slotfuncs.c에서 pg_replication_slot_advance ()는 슬롯의 LSN을 결정해야합니다. 고급이어야하지만 이티시 라인드를 업데이트 할 필요는 없습니다. 여기에서 불리는 코드 중 어느 것도 그것에 의존하지 않기 때문입니다. 복제 인 경우 슬롯은 논리적이며 pg_logical_replication_slot_advance는 호출합니다 read_local_xlog_page는 thistimelineid를 사용하지만 처리합니다. 최신 상태인지 확인하십시오. 복제 슬롯이 물리적 인 경우 타임 라인입니다 전혀 사용되지 않습니다. logicalfuncs.c에서 PG_LOGICAL_SLOT_GET_CHANGES_GUTS ()는 동일한 문제가 있습니다. 유일한 코드입니다 타임 라인에 관심이있는 달리기는 read_local_xlog_page, 이미 올바른 값이 세트. 그러므로 여기서하지 마십시오. Michael이 검토하고 테스트 한 내 패치 Paquier, Amul Sul 및 Álvaro Herrera. 논의:범퍼카 토토 : //postgr.es/m/ca +tgmobfaaqhfwa1kafbbbvfvx+5jm=7te=n4r4q1o2bjbgpa@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/caf1f675b88d1aa67ea3fb642e8f38b470cc911e
xlog.c 이외 의이 TimeLineID 글로벌 변수의 모든 사용을 제거하십시오. 그런 모든 것 코드는이 글로벌 변수를 세 가지 방법 중 하나로 처리합니다. 때로는 동일합니다 기능은 이러한 방식 중 하나 이상으로 동시에 사용합니다. 첫 번째, 때로는 하나 이상의 기능에 대한 암시 적 주장입니다. xlog.c 또는 다른 곳에서 전화하기 전에 적절한 값으로 설정해야합니다. 그 기능은 잘못 행동하지 않도록합니다. 그러한 경우, 그것은 이제 an으로 전달됩니다 대신 명백한 주장. 둘째, 때로는 전류를 얻는 데 사용됩니다 복구 종료 후 타임 라인, 즉 WAL이되는 타임 라인 작성 및 플러시. 이러한 코드는 이제 getwalinsertiontimeline ()을 호출하거나 의존합니다 getflushrecptr ()에 추가 된 새로운 아웃 매개 변수에서. 셋째, 때때로 그것은입니다 회복 중에 현재 재생 타임 라인을 저장하는 데 사용됩니다. 그것은 변할 수 있습니다 이러한 코드는 일반적으로 각 사용 전에 값을 업데이트해야합니다. 여전히 할 수 있습니다 그러나 대신 로컬 변수를 사용해야합니다. 이것들의 순 효과 변경 사항은 직접적으로 코드의 양을 공정한 금액으로 줄이는 것입니다. 이 글로벌 변수에 액세스합니다. 역사가 우리를 보여 주었기 때문에 좋습니다 어떤 타임 라인 ID에 포함되어야하는지 항상 명확하게 생각하지 마십시오. 주어진 시점 또는 실제로, 그것이 있었는지 또는 필요한지 여부에 관계없이 코드의 특정 지점에서 초기화되었습니다. 나에 의한 패치, 검토 및 테스트 Michael Paquier, Amul Sul 및 Álvaro Herrera. 논의:범퍼카 토토 : //postgr.es/m/ca +tgmobfaaqhfwa1kafbbbbfvx+5cjm=7te=n4r4q1o2bjbgybpa@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/e997a0c642860a96df0151cbeccbdf0450d08
이 티티 라인드를 글로벌 변수에서 로컬 변수로 변경하십시오. startupxlog ()는 여전히이 thistimelineID를 로컬 변수로하지만 나머지는 xlog.c의 코드는 이제 다른 수단으로 관련 타임 라인이 필요합니다. 이것은 대부분 기능 매개 변수로 전달한다는 것을 의미합니다. 우리가 이전에하지 않은 기능. 그러나 몇 가지 경우에는 특별한 경우가 필요합니다 취급 : - 외부 발신자가 호출 할 수있는 기능에서 지정할 타임 라인을 반드시 알 필요는 없으며 타임 라인 ID를 얻습니다. 공유 메모리에서. xlogctl-이 티티 라인 드는 대부분의 경우에 사용할 수 있습니다 회복은 해당 기능을 호출 할 때까지 완료된 것으로 알려져 있습니다. xlog_redo ()에서는 xlogctl- Replayendtli를 사용할 수 있습니다. -xlogfileclose () 요구 사항 열린 로그 파일의 TLI를 알고 있습니다. 새로운 글로벌 변수로 그렇게하십시오 OpenLogtli. 누군가는 이것이 단지 하나의 글로벌 거래라고 주장 할 수 있지만 다른 사람의 경우, 새로운 것은 훨씬 더 좁은 목적을 가지고 있으며 몇 곳에서 언급되었습니다. -Read_backup_label ()은 이제 tli를 반환합니다 Backup_Label 파일을 구문 분석하여 얻습니다. 이전에는 readRecord () 이 thistimelineid가 초기화되었습니다. 이제 타임 라인이 전달되었는데 원하지 않았습니다. 초기화되지 않은 변수를 전달합니다. 이 변화를 통해 우리는 그것을 피할 수 있습니다. 오래된 코딩은 우리가 필요로하는 실질적인 결과가없는 것 같습니다. 걱정하지만 이것은 깨끗합니다. -BootstrapxLog ()에서는 일정합니다. Michael Paquier, Amul Sul 및 Álvaro가 검토하고 테스트 한 패치 헤레라. 논의:범퍼카 토토 : //postgr.es/m/ca +tgmobfaaqhfwa1kafbbbbfvx+5cjm=7te=n4r4q1o2bjbgpa@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/4a92a1c3d1c361ffb031ed05bf65b801241d7cdd
BD807BE6935929BDEFE74D1258CA08048F0AAFA3에 의해 추가 된 테스트를 제거합니다. buildfarm 불행합니다. 왜이 테스트가 마음에 들지 않는지 분명하지 않지만 제거합시다 우리가 그것을 알아낼 때까지. 논의:http : //postgr.es/m/462618.1636171009@sss.pgh.pa.us https : //git.범퍼카 토토.org/pg/commitdiff/ccf289745d3e50360653181dce6a277a1fc79730
Tomáš Vondra 추진 :
Brin Minmax Multi에서 NAN 값의 처리 수정. 거리를 계산할 때 float4/float8 값 사이에서 NAN에 대해 좀 더 조심해야합니다. assert를 트리거하지 않기 위해 가치. 우리는 NAN 값이 동일하다고 생각합니다 (0.0) 및 다른 모든 값으로부터 무한 거리. 빌드에 주장이 없으면이 문제는 대부분 무해합니다. 범위는 병합 될 수 있습니다. 덜 효율적인 순서이지만 색인은 여전히 정확합니다. Andreas의 보고서 당 셀텐레이. 이 새로운 브린 옵 클래스가 소개 된 백파치. 보고서 : Andreas Seltenreich 토론 :범퍼카 토토 : //postgr.es/m/87r1bw9ukm.fsf@credativ.de https : //git.범퍼카 토토.org/pg/commitdiff/d91353f4b21f10417d142e6ac17a0490adae867c
mystreamer 변수를 pg_used_for_asserts_only로 표시하십시오. 경고에 대한 침묵 사용하지 않은 변수, 주장없이 구축 될 때.https : //git.범퍼카 토토.org/pg/commitdiff/dafcf887daa472b0a49bee7e07042372bc37cee4
btree_gist에 bool gist opclass를 추가하십시오. btree_gist에 bool opclass를 추가합니다 확장자, bool 열에서 GIST 인덱스를 생성 할 수 있습니다. a 단일 bool 열은 특히 유용하지는 않지만 정의 할 수 있습니다. 예를 들어 Bool 열과 관련된 제외 제약. 저자 : Emre Hasegeli 검토 : Andrey Borodin 토론 :범퍼카 토토 : //postgr.es/m/cae2gyzydkjbzngssr84vgzen=ux=v9fv23qfgo7-yynkg4g@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/57e3c5160b24e61758f817feb7aac152cd695c6f
GIST_BOOL_OPS를 수정하여 GBTREEKEY2를 사용하십시오. Commit 57E3C5160B에 새로운 GIST BOOL이 추가되었습니다 opclass이지만 GBTreeKey4를 사용하여 데이터를 저장했으며 두 바이트를 남겼습니다. Skink에 의해보고 된 바와 같이, 우리의 Valgrind Animal. 조금 더있었습니다 OPCLASS는 정의에서 GBTreeKey8을 사용했기 때문에 혼란. 수정 새로운 gbtreekey2 struct를 정의하고 모든 장소에서 사용합니다. 논의:범퍼카 토토 : //postgr.es/m/cae2gyzydkjbzngssr84vgzen=ux=v9fv23qfgo7-yynkg4g@mail.gmail.com https : //git.범퍼카 토토.org/pg/commitdiff/e2fbb883720aa222f61eb9f3affad1c63bac7cbb
Alexander Korotkov 추진 :
Andres Freund 추진 :