https://archives.토토 꽁 머니.org/pgsql-jobs/2021-11/
Nordic PGDay 2022는 핀란드 헬싱키의 힐튼 헬싱키에서 개최됩니다 Strand Hotel은 2022년 3월 22일에 운영됩니다. CfP는 2021년 12월 31일까지 운영됩니다.여기
플래닛 토토 꽁 머니:https://planet.토토 꽁 머니.org/
David Fetter가 이번 주 토토 꽁 머니 Weekly 뉴스를 전합니다.
뉴스 및 공지사항을 일요일 오후 3시(PST8PDT)까지 david@fetter.org로 제출하세요.
Peter Geoghegan이 밀었습니다:
lazy_scan_heap 병렬 VACUUM 주석 블록을 제거합니다. 이건 다음에 속하지 않아 lazy_scan_heap이 수행하는 작업에 대한 매우 높은 수준의 논의입니다. Vacuumlazy.c 상단에는 이미 유사하고 긴 주석 블록이 있습니다. 이는lazy_scan_heap을 직접적으로 언급합니다.https://git.토토 꽁 머니.org/pg/commitdiff/97f5aef609ce51422934b7dbdba599a7de4dbafd
가득 찬 것으로 표시된 페이지에서 HOT을 고려하는 것으로 돌아갑니다. 단순화된 2fd8685e7f 커밋 heap_update() 내에서 발생하는 수정된 속성 확인. 여기에는 PD_PAGE_FULL로 표시된 페이지에 영향을 미치는 미세 최적화가 포함되었습니다. HOT 안전성을 결정하는 데 필요한 몇 가지 사이클을 절약하기 위해 HOT를 사용해 보십시오. 는 이번에는 성공하지 못할 것이라고 가정했습니다. 지난번에 운동했어요. 미세 최적화를 제거합니다. 그것은 단지 heap_update()의 대다수에 의해 소비되는 저장 주기 복잡성을 추가할 가치가 거의 없는 것 같습니다. 그것도 꽤 있는 것 같은데 반복적인 작업으로 인해 시간이 지남에 따라 작업 부하가 더 악화될 가능성이 있습니다. 마이크로 최적화를 적용하면 평균적으로 일부 사이클을 절약할 수 있음에도 불구하고 단기적으로는. 저자: Peter Geogheganpg@bowt.ie검토자: Álvaro 헤레라alvherre@alvh.no-ip.org토론:https://postgr.es/m/CAH2-WznU1L3+DMPr1F7o2eJBT7=3bAJoY6ZkWABAxNt+-afyTA@mail.gmail.com https://git.토토 꽁 머니.org/pg/commitdiff/1a6f5a0e876306293fda697e7820b404d5b93693
고수준의vacuumlazy.c댓글을 업데이트하세요. Vacuumlazy.c 파일 헤더 업데이트 주석(lazy_scan_heap 함수 위의 주석도 포함) HOT 최적화가 도입되기 전에 주로 작성되었습니다. lazy_scan_heap은 훨씬 적은 작업을 수행했으며 초기 힙 동안 실제로 정리하지 않았습니다. 통과. lazy_scan_heap은 이제 훨씬 더 많은 작업을 낮은 수준으로 아웃소싱하므로 기능, 높은 수준에 대해 이야기하여 기능을 소개하는 것이 합리적입니다. 각 단계가 발생하는 순서를 지정하는 수준 불변입니다. 또한 TID에 대한 메모리가 부족한 경우를 지연시키므로 강조하지 마세요. 토론을 통해 가장 중요한 문제에 관해 이야기하기가 더 쉬워집니다. 마지막으로 헤더 주석에서 병렬 VACUUM에 대한 논의를 제거합니다. 이것들 많이 추가하지 않았으며 잘못된 위치에 있습니다.https://git.토토 꽁 머니.org/pg/commitdiff/12b5ade9023f3ecaddcbc423a22dc284c91c79f6
vacuumlazy.c: "정리 잠금"이라는 용어를 선호합니다. "초독점 잠금장치"라는 용어 "정리 잠금"의 허용되는 동의어입니다. 그래도 하나에서 전환 동일한 파일에서 다른 용어를 사용하면 혼란스럽습니다. "정리"로 표준화 Vacuumlazy.c 내에서 "잠금"을 수행합니다. Andres Freund의 불만 사항에 따라.https://git.토토 꽁 머니.org/pg/commitdiff/276db875d4f9be2911582f367596d444d6986c77
후지 마사오가 밀었습니다:
피터 아이젠트라우트가 밀었습니다:
fmgr 매직 블록에 ABI 추가 필드를 추가하세요. 이를 통해 파생 제품은 다음과 같은 기능을 수행할 수 있습니다. 깨끗한 오류 메시지와 함께 의도적으로 fmgr ABI를 호환되지 않게 만듭니다. 토론:/message-id/Flat/55215fda-db31-a045-d6b7-d6f2d2dc9920%40enterprisedb.com https://git.토토 꽁 머니.org/pg/commitdiff/d6d1dfcc99e3dd6e70e2a7024924e491bb7a9670
잘못된 형식의 자리표시자를 수정하세요. 또한 기본에 더 나은 유형을 선택하십시오. 이를 더욱 일관되게 만드는 변수입니다.https://git.토토 꽁 머니.org/pg/commitdiff/fb5961fd13b1262df280e400645bdf4ed192f058
필요하지 않은 Python 포함을 제거합니다. <compile.h 및 <eval.h를 포함하면 <Python.h를 통해 포함되었기 때문에 Python 2.4부터 필요했습니다. 또한 <eval.h는 Python 3.11에서 제거됩니다. 따라서 이러한 포함을 제거하십시오. 검토자: Tom Lanetgl@sss.pgh.pa.us토론:/message-id/Flat/84884.1637723223%40sss.pgh.pa.us https://git.토토 꽁 머니.org/pg/commitdiff/99e4d24a9d77e7bb87e15b318e96dc36651a7da2
댓글 업데이트. 다양한 곳에서 튜플 설명자를 지적하고 싶었습니다. pg_attribute의 가변 길이 필드를 포함하지 마십시오. 이것은 언제부터 시작되었는가 attacl이 추가되었지만 그 이후로 더 많은 필드가 추가되었으며 이러한 주석은 지속적으로 최신 상태로 유지되지 않았습니다. 목적에 맞게 다시 말해주세요. 더 명확하므로 계속 업데이트할 필요가 없습니다.https://git.토토 꽁 머니.org/pg/commitdiff/36cb5e7c512bef394c9288786c62ef0eb1e891ba
Álvaro Herrera가 푸시됨:
댓글에 누락된 단어를 추가하세요. 유지홍님이 제보해 주셨습니다. 토론:https://postgr.es/m/CALNJ-vR6uZivg_XkB1zKjEXeyZDEgoYanFXB-++1kBT9yZQoUw@mail.gmail.com https://git.토토 꽁 머니.org/pg/commitdiff/67385544ce672a9a53cfd51b39c1ff9048d65585
autovacuum: 몇 군데의 표현을 개선합니다. 몇 개의 문자열(하나는 WARNING 및 autovacuum 코드의 일부 메모리 컨텍스트 이름)은 세계에서 작성되었습니다. 여기서 "노동자"는 "자동 진공 작업자" 외에는 다른 의미가 없었지만 오랜 시간이 지났습니다. 그것에 대해 좀 더 구체적으로 설명하십시오. 또한 경고를 변경하십시오. 번역 가능성을 추가하기 위해 elog()에서 ereport()로. 저자: Bharath Rupireddybharath.rupireddyforpostgres@gmail.com검토자: Nathan Bossartbossartn@amazon.com검토자: Justin Pryzbypryzby@telsasoft.com검토자: 호리구치 쿄타로horikyota.ntt@gmail.com검토자: Dilip 쿠마르dilipbalaut@gmail.com검토자: 사와다 마사히코sawada.mshk@gmail.com토론:https://postgr.es/m/CALj2ACX2UHp76dqdoZq92a7v4APFuV5wJQ+AUrb+2HURrKN=NQ@mail.gmail.com https://git.토토 꽁 머니.org/pg/commitdiff/042412879e35791a65509f2786b4954a273466e5
XLogReaderAllocate에서 OOM에 대해 더 구체적으로 설명하세요. 몇 개의 지점이 가능합니다. 우리가 이미 하고 있던 것과 일치하는 추가된 errdetail()의 이점을 누리십시오. 다른 장소; 그리고 errdetail()을 견딜 수 없는 사람들은 더 많은 것을 얻을 수 있습니다 설명적인 기본 메시지. 저자: Bharath Rupireddybharath.rupireddyforpostgres@gmail.com검토자: Daniel Gustafssondaniel@yesql.se검토자: Julien Rouhaudrjuju123@gmail.com토론:https://postgr.es/m/CALj2ACV+cX1eM03GfcA=ZMLXh5fSn1X1auJLz3yuS1duPSb9QA@mail.gmail.com https://git.토토 꽁 머니.org/pg/commitdiff/2fed48f48f7f2f7a6d6f6d020f046efe3c249828
OVERWRITTEN_CONTRECORD에서 손상된 LSN 결정을 수정합니다. 커밋 중 ff9f111bce24 첫 번째 LSN의 일관되지 않은 정의를 혼동했습니다. 이전 레코드가 페이지 경계에서 정확히 끝나는 경우 페이지에 기록합니다. WAL 페이지 헤더를 건너뛰도록 올바른 LSN이 조정됩니다. 나는 그것을 사용하지 못했습니다 XLogReaderState-overwriteRecPtr을 설정할 때 WAL 재생 시간에 verifyOverwriteContrecord는 그 이후에도 재생이 계속되는 것을 거부합니다. 기록. 10.9.6으로의 백패치에도 이 버그가 포함되어 있지만 더 이상은 아닙니다. 유지되고 있습니다. 토론:https://postgr.es/m/45597.1637694259@sss.pgh.pa.us https://git.토토 꽁 머니.org/pg/commitdiff/44bd3ed332d6ad3207f38b3b6deb6083f0baddf5
max_slot_wal_keep_size의 문서 단위. 문서 광고문에서는 언급하지 않았습니다. 단위는 물론 변경 가능성에 대한 요점도 부족합니다. 13으로 백패치. 검토자: 호리구치 쿄타로horikyota.ntt@gmail.com신고자: b1000101@pm.me 토론:https://postgr.es/m/163760291192.26193.10801700492025355788@wrigleys.토토 꽁 머니.org https://git.토토 꽁 머니.org/pg/commitdiff/013bb6c8c0b5b0ac7948d7126685008505b3aa58
vacuuumdb 복사-편집 --단계별 문서 광고문 분석. 오타가 몇개 있었는데, Nikolai Berkoff가 문구 변경을 제안했습니다. 토론:https://postgr.es/m/VMwe7-sGegrQPQ7fJjSCdsEbESKeJFOb6G4DFxxNrf45I7DzHio7sNUH88wWRMnAy5a5G0-FB31dxPM47ldigW6WdiCPncHgqO9bNl6F240=@pm.me https://git.토토 꽁 머니.org/pg/commitdiff/dd484c97f55be8336fcb41470768c5b8ae347d13
헤더 확인을 위해 be-gssapi-common.h를 강화합니다. 내용을 테스트로 둘러싸라 이 기능은 구성을 통해 활성화되어 헤더 확인 도구를 침묵시킵니다. GSSAPI가 설치되지 않은 시스템. 파일이 나타난 12로 백패치합니다. 논의:https://postgr.es/m/202111161709.u3pbx5lxdimt@alvherre.pgsql https://git.토토 꽁 머니.org/pg/commitdiff/f744519326e1ce4774d0966f7848601a8327eeaa
톰 레인이 밀렸습니다:
TAP 테스트에 필요한 모듈을 확인하는 동안 $PERL이 아닌 $PROVE를 조사하세요. 일반적으로 "증명"과 "perl"은 동일한 Perl 설치에서 나오지만 우리는 그렇지 않은 경우를 지원합니다(주로 MSys가 동물을 키우기 때문에). 이것이 필요합니다). 이 경우 AX_PROG_PERL_MODULES는 완전히 잘못된 것입니다. "perl"이 무엇을 가지고 있는지 확인하기 때문입니다. 대신에 약간의 TAP을 해보세요 필수 모듈을 포함한 테스트 스크립트를 작성하고 "증명"에서 실행하십시오. 우리 이 변경 후에는 ax_prog_perl_modules.m4가 전혀 필요하지 않으므로 제거하십시오. 빌드팜의 이점을 위해 지원되는 모든 분기에 백패치를 적용합니다. (v10에서는 이는 또한 커밋 264eb03aa의 효과를 백패치합니다.) Andrew Dunstan 및 Tom Lane, Noah Misch 토론의 관찰에 따르면:https://postgr.es/m/E1moZHS-0002Cu-Ei@gemulon.토토 꽁 머니.org https://git.토토 꽁 머니.org/pg/commitdiff/c4fe3199a6d65212537a59eb0d7e6fad22b9e903
삭제된 열이 있는 생성된 열에 대한 pg_dump --inserts 모드를 수정했습니다. 만약 테이블에는 삭제된 열 앞에 생성된 열이 포함되어 있습니다. dumpTableData_insert가 삭제된 열을 설명하는 데 실패하여 내보냅니다. 잘못된 열에 DEFAULT 자리 표시자가 있습니다. 이로 인해 실패가 발생했습니다. 복원 시간. 기본 COPY 코드 경로에는 이 버그가 없었을 가능성이 높습니다. 왜 더 빨리 발견되지 않았는지 설명합니다. 이 문제를 해결하는 동안 우리는 상황에 대해 조금 더 현명하게: (1) 불필요하게 가져오는 것을 피하십시오. 생성된 열의 값, (2) 출력에서 생성된 열도 생략합니다. --column-inserts를 사용하는 경우. 이러한 모드는 다음과 같을 것으로 예상되지 않습니다. COPY 경로만큼 고성능을 제공한다면 최대한 효율적일 수도 있습니다. 그다지 복잡해지지는 않습니다. Дмитрий Иванов의 보고서에 따르면. 백패치 생성된 열이 들어온 v12. 토론:https://postgr.es/m/CAPL5KHrkBniyQt5e1rafm5DdXvbgiiqfEQEJ9GjtVzN71Jj5pA@mail.gmail.com https://git.토토 꽁 머니.org/pg/commitdiff/0b126c6a4b00972f2f3533e1718bbe297e2851c2
펄크리틱을 진정시키세요. 빌드팜당.https://git.토토 꽁 머니.org/pg/commitdiff/db3a660c6327a6df81a55c4aa86e6c0837ecd505
캐스트에 대한 pg_dump의 우선순위 순서를 조정합니다. 저장된 표현식이 종속되는 경우 사용자 정의 캐스트에서 백엔드는 종속성을 다음과 같은 것으로 기록합니다. 캐스트의 구현 함수 --- 또는 실제로 캐스트 함수가 없는 경우 관련되어 있지만 RelabelType 또는 CoerceViaIO만 있고 종속성은 기록되지 않습니다. 모두. 이는 pg_dump에 문제가 됩니다. 잘못된 순서로 인해 복원 실패가 발생합니다. 이전의 자료가 부족한 점을 고려하여 보고서에 따르면 위험은 그다지 높지 않지만 캐스트가 다음과 같은 경우 입증될 수 있습니다. 행 유형이 입력 또는 결과 유형으로 사용되는 일부 뷰에서 사용됩니다. 다른 기능. (그 결과 뷰가 캐스트보다 먼저 덤프의 기능 부분.) 논리적으로 방탄 이 문제를 해결하려면 캐스트의 OID를 구문 분석된 형식으로 포함해야 합니다. dependency.c에 의해 추출될 수 있는 표현식, 그리고 저장된 종속성은 pg_dump가 올바른 일을 하도록 강제합니다. 그러한 변화는 상당히 침습적이며 확실히 역패칭이 불가능합니다. 게다가, 우리는 이후로 캐스트 구문을 사용하는 표현식은 동일한 작업을 수행하는 표현식보다 equal()인 것을 선호합니다. 명시적인 함수 호출을 통해 캐스트 OID 필드는 특수한 값을 가져야 합니다. 비교에 의해 무시되는 의미론으로 인해 상황이 지저분해집니다. 그럼 대신 고치자 이것은 pg_dump의 매우 간단한 해킹입니다. 객체 유형 우선 순위를 변경합니다. 따라서 캐스트는 처음에 함수 이전, 유형 직후에 정렬됩니다. 이는 캐스트가 없는 캐스트의 경우 상당히 직접적인 방법으로 문제를 해결합니다. 구현 기능. 그렇게 하는 경우 구현 기능은 다음과 같습니다. 종속성 정렬 단계를 통해 캐스팅 직전으로 끌어올려집니다. 아직 유효한 덤프 명령이 있습니다. (이것이 완전한 기능을 제공하는지 확실하지 않습니다. 문제가 없음을 보장합니다. 하지만 수년 동안 이런 일이 없었기 때문에 이전 보고서가 있다면 이 정도면 실제로 문제를 해결하기에 충분할 것입니다.) 드미트리 이바노프의 보고서. 지원되는 모든 분기에 백패치를 적용합니다. 논의:https://postgr.es/m/CAPL5KHoGa3uvyKp6z6m48LwCnTsK+LRQ_mcA4uKGfqAVSEjV_A@mail.gmail.com https://git.토토 꽁 머니.org/pg/commitdiff/b55f2b6926556115155930c4b2d006c173f45e65
Doc: nextval()/setval()에 관한 문서를 개선하세요. 결과를 명확히 한다 nextval 및 setval은 호출할 때까지 지속성을 보장하지 않습니다. 트랜잭션 커밋. 어떤 사람들은 반대 결론을 내린 것 같습니다. 이러한 기능은 결코 롤백되지 않는다는 설명에서 다음과 같이 다시 설명합니다. 그런 식으로 말하지 마세요. 토론:https://postgr.es/m/CAKU4AWohO=NfM-4KiZWvdc+z3c1C9FrUBR6xnReFJ6sfy0i=Lw@mail.gmail.com https://git.토토 꽁 머니.org/pg/commitdiff/4ac452e2285da347c75f5960ae211e183a87b57b
Michaël Paquier가 푸시됨:
복제 슬롯의 디렉토리 내용을 모니터링하는 SQL 함수를 추가하세요. 이 커밋은 다양한 경로의 내용을 볼 수 있는 일련의 기능을 추가합니다. 복제 슬롯 관련: - pg_ls_logicalsnapdir, for pg_logical/snapshots/ - pg_ls_logicalmapdir(pg_logical/mappings/용) - pg_ls_replslotdir, for pg_replslot/<slot_name/ 이는 사용하기 위한 것입니다. 모니터링 도구를 통해 pg_ls_dir()과 달리 실행 권한을 부여할 수 있음 슈퍼유저가 아닌 사람에게. pg_monitor의 역할 구성원은 해당 역할에 액세스할 수 있습니다. 기능. 범프 카탈로그 버전. 저자: Bharath Rupireddy 검토자: Nathan Bossart, Justin Pryzby 토론:https://postgr.es/m/CALj2ACWsfizZjMN6bzzdxOk1ADQQeSw8HhEjhmVXn_Pu+7VzLw@mail.gmail.com https://git.토토 꽁 머니.org/pg/commitdiff/1922d7c6e1a74178bd2f1d5aa5a6ab921b3fcd34
빌드 스크립트에 Visual Studio 2022에 대한 지원을 추가합니다. 문서 및 기타 VS와 관련된 코드 경로는 전체 일관성을 유지하기 위해 업데이트됩니다. 마찬가지로 2017년과 2019년에는 VS 버전과 우리가 사용하는 nmake 버전이 빌드에 사용할 코드 경로가 여전히 일관성이 없는지 확인 그들만의 방식. 빌드팜 구성원이 사용할 수 있도록 10개로 백패치합니다. 지원되는 모든 안정적인 분기에서 이 새 버전의 Visual Studio를 사용할 수 있습니다. 저자: Hans Buschmann 토론:https://postgr.es/m/1633101364685.39218@nidsa.net백패치 쓰루: 10https://git.토토 꽁 머니.org/pg/commitdiff/b2265d305d81b0c1a2cec6c5b66a190a9e69e853
파일 헤더 쓰기 실패시 쓸모없는 LZ4 시스템 호출을 제거합니다. 만약 LZ4 파일 헤더를 쓸 때 오류가 발생하고 LZ4F_compressEnd()가 호출되었습니다. write()의 오류 코드 경로에서 LZ4F_freeCompressionContext()가 뒤따릅니다. 청소를 마치려고. 있는 그대로의 코드는 깨지지 않았지만, LZ4F_compressEnd()는 내용이 없으므로 필요하지 않은 것으로 판명되었습니다. 이 단계에서 세척을 하므로 제거하세요. Jeevan Ladhe와 Robert의 불만에 따라 하스. 논의:https://postgr.es/m/CAOgcT0PE33wbD7giAT1OSkNJt=p-vu8huq++qh=ny9O=SCP5aA@mail.gmail.com https://git.토토 꽁 머니.org/pg/commitdiff/f79962d8264b8d205ce45a8aa11d1b37f9592a81
표준 스트림을 사용하는 Windows에서 fstat() 에뮬레이션을 수정합니다. 에뮬레이션 win32stat.c의 fstat()은 기존 코어 내 호출자에 두 가지 문제를 일으켰습니다. 스트림을 인수로 사용할 때 EINVAL에서 실패합니다. - psql의 \copy가 충돌합니다. 스트림을 사용할 때. - -f -를 사용하면 pg_recvlogical이 실패합니다. 테스트 기본 테스트 스위트의 copyselect.sql이 첫 번째 경우를 다루며, 두 번째 경우에 대한 TAP 테스트입니다. 그러나 두 경우 모두 표준 스트림과 같이 항상 리디렉션되고 자동화된 테스트에서는 이러한 문제를 발견하지 못했기 때문에 Windows에서 터미널을 재현할 수 있습니다. 이 문제는 다음에서 소개되었습니다. bed9075이며 문제의 원인은 GetFileInformationByHandle()입니다. 스트림에서 직접 작동하지 않으므로 이 커밋은 추가 코드 경로를 추가합니다. 현실과 가장 잘 일치하는 통계 세트를 에뮬레이션하고 반환합니다. 참고하세요 리디렉션된 스트림은 쿼리할 수 있는 핸들에 의존합니다. GetFileInformationByHandle(), 그러나 GetFinalPathNameByHandleA()를 사용할 수 있습니다. 이 사건을 탐지하기 위해. 저자: Dmitry Koval, Juan José Santamaría Flecha 토론:https://postgr.es/m/17288-6b58a91025a8a8a3@토토 꽁 머니.org백패치 통과: 14https://git.토토 꽁 머니.org/pg/commitdiff/10260c794b211117a56ee2eb2deacf609bcca25f
복제본 ID 인덱스의 열에서 ALTER TABLE .. DROP NOT NULL을 차단합니다. 인덱스에 직접 의존하는 복제본 ID는 일련의 인덱스에 의존합니다. 속성 중 하나는 이 인덱스에 정의된 모든 열이 NOT NULL로 표시됩니다. ALTER TABLE DROP 논리에 구멍이 있었습니다. NOT NULL(열의 NOT NULL 속성을 제거할 수 있는 경우) 복제본 ID로 사용되는 인덱스의 일부이므로 문제가 발생하지 않도록 차단하세요. 논리적인 디코딩이 진행됩니다. 동일한 검사가 이미 열 부분에서 완료되었습니다. 기본 키이므로 수정이 간단합니다. 저자: 탕 하이잉(Haiying Tang), 허우(Hou) Zhijie 검토자: Dilip Kumar, Michael Paquier 토론:https://postgr.es/m/OS0PR01MB6113338C102BEE8B2FFC5BD9FB619@OS0PR01MB6113.jpnprd01.prod.outlook.com백패치 쓰루: 10https://git.토토 꽁 머니.org/pg/commitdiff/f0d43947a1b0c30f0bf2c117cd78bf95a3161268
David Rowley가 밀었습니다:
Memoize가 바이너리 비교 모드에서 작동하도록 허용합니다. Memoize는 항상 사용합니다 캐시 키 유형에 대한 해시 동등 연산자를 사용하여 현재 매개변수 세트는 이전에 캐시된 일부 세트와 동일했습니다. 특정 유형 -0.0과 +0.0이 바이너리에서 다른 부동 소수점과 같은 표현되지만 해시 동등 연산자에 의해 동등으로 분류될 수 있습니다. 조인이 동일한 연산자를 사용하지 않으면 문제가 발생할 수 있습니다. 어떤 조인 연산자를 사용하든 두 가지를 구별할 수 있습니다. 가치. 이 경우 실수로 잘못된 행을 반환할 수 있습니다. 캐시. 여기서 이 문제를 해결하기 위해 Memoize에 바이너리 모드를 추가하여 다음을 허용합니다. 현재 매개변수 세트를 이전에 캐시된 값과 비교하여 해시 동등 연산자를 논리적으로 사용하는 대신 비트 단위로 수행합니다. 이 바이너리 모드는 항상 LATERAL 조인에 사용되고 일반 조인에는 사용됩니다. 조인 연산자 중 하나라도 해시 가능하지 않은 경우. 보고자: 톰 레인 저자: David Rowley 토론:https://postgr.es/m/3004308.1632952496@sss.pgh.pa.us백패치 통과: 14, 메모가 추가된 곳https://git.토토 꽁 머니.org/pg/commitdiff/e502150f7d0be41e3c8784be007fa871a32d8a7f
키가 아닌 매개변수가 변경되면 메모화 캐시를 플러시합니다. 아마도 Memoize 노드 아래 하위 계획에는 Memoize 노드 위의 매개 변수가 포함되어 있습니다. 이 매개변수가 변경되면 캐시 항목은 다음으로 인해 오래된 것이 될 수 있습니다. 새 매개변수 값. 이전에는 Memoize가 실수로 이를 인식하지 못했습니다. 우리 매개변수가 일부가 아닐 때마다 캐시를 플러시하여 이 문제를 해결하세요. 캐시 키가 변경됩니다. 버그: #17213 보고자: Elvis Pranskevichus 저자: David Rowley 토론:https://postgr.es/m/17213-988ed34b225a2862@토토 꽁 머니.orgBackpatch-through: 14, Memoize가 추가된 곳https://git.토토 꽁 머니.org/pg/commitdiff/1050048a315790a505465bfcceb26eaf8dbc7e2e
"비핵심 매개변수가 변경되면 메모화 캐시 비우기"를 되돌립니다. 이는 되돌립니다. 1050048a315790a505465bfcceb26eaf8dbc7e2e를 커밋합니다.https://git.토토 꽁 머니.org/pg/commitdiff/dad20ad4709f602b4827a1ab2b0e715f36c548c3
비핵심 매개변수가 변경되면 메모화 캐시를 플러시합니다. 2를 취합니다. 다음이 가능합니다. Memoize 노드 아래 하위 계획에는 Memoize 위의 매개 변수가 포함되어 있습니다. 노드. 이 매개변수가 변경되면 캐시 항목이 만료될 수 있습니다. 새 매개변수 값으로 이전에는 Memoize가 실수로 이를 인식하지 못했습니다. 이. 매개변수가 그렇지 않을 때마다 캐시를 플러시하여 이 문제를 해결합니다. 캐시 키의 일부가 변경됩니다. 버그: #17213 보고자: Elvis Pranskevichus 저자: David Rowley 토론:https://postgr.es/m/17213-988ed34b225a2862@토토 꽁 머니.org백패치 통과: 14, 메모가 추가된 곳https://git.토토 꽁 머니.org/pg/commitdiff/411137a429210e432f923264a8e313a9872910ca
Amit Kapila가 푸시됨:
SnapBuild*slot.c의 매크로. 동일한 매크로 이름
SnapBuildOnDiskNotChecksummedSize 및 SnapBuildOnDiskChecksummedSize가 진행 중입니다.
Slot.c 및 snapbuild.c에서 사용됩니다. 이 패치는 Slot.c에서 이름을 다음과 같이 바꿉니다.
복제SlotOnDiskNotChecksummedSize 및
ReplicationSlotOnDiskChecksummedSize는 다른 매크로와 유사합니다. 이것은
모든 매크로 이름은 Slot.c에서 일관되게 보입니다. 저자: 바라트 루피레디
토론:https://postgr.es/m/CALj2ACVZo-piDGzBOJRY4ob=_goFR6t9DhZMDMjJWN7LQs34Aw@mail.gmail.com
https://git.토토 꽁 머니.org/pg/commitdiff/875e02c2dff34f1bc9f3832a4f83c34bf300eb9f로버트 하스가 밀었습니다:
부적절한 타임라인 전환을 감지하는 코너 케이스 오류를 수정했습니다. rescanLatestTimeLine()에는 다음과 같은 타임라인으로 전환하는 것을 방지하는 보호 기능이 포함되어 있습니다. 현재 복구 지점 이전의 현재 복구 지점에서 분기되었지만 첫 번째 WAL 레코드 전에 타임라인 전환이 발생하면 가드가 작동하지 않습니다. (체크포인트 레코드여야 함)을 읽습니다. 이 패치가 없으면 부적절한 따라서 이러한 경우에는 타임라인 전환이 가능합니다. 이런 일이 일어나는 이유는 rescanLatestTimeLine()은 전역 변수 EndRecPtr을 사용하여 이해합니다. WAL 재생의 현재 위치. 그러나 이 시점에서 EndRecPtr은 코드에는 시작점이나 레코드가 아닌 마지막으로 재생된 레코드의 끝점이 포함되어 있습니다. 현재 재생 중인 레코드의 끝점입니다. 따라서 기록이 삭제되기 전에 재생되면 0이므로 온전성 검사가 항상 통과됩니다. 고치려면, 올바른 타임라인을 명시적으로 전달하세요. 우리가 원하는 EndRecPtr 값은 레코드의 시작 위치가 될 xlogreader의 하나 우리는 전역 변수가 아닌 읽기를 시도하려고 합니다. 성공적으로 읽은 마지막 레코드의 끝 위치입니다. 그들은 대개 동일하지만 여기에 설명된 특수한 경우에는 그렇지 않습니다. 백패치가 필요하지 않습니다. v14 및 이전 버전에서는 여기서도 잘못된 TLI를 사용하고 있었습니다. LSN. 마스터에서는 커밋으로 수정되었습니다. 4a92a1c3d1c361ffb031ed05bf65b801241d7cdd, 하지만 그게 필수 조건이에요 패치는 이러한 사소한 문제에 대해 백패치를 적용하기에는 너무 침습적입니다. 내가 패치하고, Amul Sul이 검토했습니다. 논의:http://postgr.es/m/CA+Tgmoao96EuNeSPd+hspRKcsCddu=b1h-QNRuKfY8VmfNQdfg@mail.gmail.com https://git.토토 꽁 머니.org/pg/commitdiff/e7ea2fa342b008ae97e794b0fa2ee538ddcee3b7
xlog.c: 전역 변수 ReadRecPtr 및 EndRecPtr을 제거합니다. 대부분의 장소에서는 변수는 반드시 같은 이름의 멤버와 동일한 값을 저장합니다. ReadRecord()가 할당하기 때문에 WAL 재생 중에 사용하는 XLogReaderState 구조체 멤버의 값을 바로 뒤의 전역 변수로 XLogReadRecord()가 반환됩니다. 그러나 XLogBeginRead()는 구조를 조정합니다. 전역 변수가 아닌 멤버이므로 XLogBeginRead() 뒤와 XLogReadRecord()가 완료되면 값이 다를 수 있습니다. 그렇지 않으면 다음과 같아야 합니다. 동일합니다. 내 분석에 따르면 두 변수가 모두 존재하는 유일한 곳은 구조와 동일한 값을 갖지 않을 수 있는 지점에서 참조됩니다. member는 XLogPageRead 내의 EndRecPtr에 대한 참조입니다. 그러므로 매 순간 전역 변수를 사용하는 다른 곳에서는 다음으로 전환하면 됩니다. 대신 구조 멤버를 사용하고 전역 변수를 제거하십시오. 그러나, XLogPageRead()에서도 이 작업을 수행할 수 있고 실제로 수행해야 합니다. 코드에서 특정 지점을 가리키면 전역 변수는 실제로 코드의 시작을 저장합니다. 우리가 읽고 싶은 레코드 - 마지막 WAL 레코드가 끝난 곳이기 때문이거나, 또는 XLogBeginRead를 사용하여 읽기 위치가 변경되었기 때문입니다. 마지막 레코드를 읽었습니다. 반면에 구조체 멤버는 이미 방금 읽은 레코드의 끝을 가리키도록 업데이트되었습니다. 다른 곳에서는, 후자는 emode_for_corrupt_record()에 대한 인수로 사용하는 것이므로 여기서도 똑같이 해야 합니다. 패치의 이 부분은 아마도 버그 수정일 수도 있지만, 중요한 결과가 있다고 생각하지 않으므로 백 패치는 없습니다. 요점 여기서는 글로벌 언어의 과도한 사용을 계속해서 줄여나가는 것입니다. xlog.c의 변수. 논의:http://postgr.es/m/CA+Tgmoao96EuNeSPd+hspRKcsCddu=b1h-QNRuKfY8VmfNQdfg@mail.gmail.com https://git.토토 꽁 머니.org/pg/commitdiff/d2ddfa681db27a138acb63c8defa8cc6fa588922
Heikki Linnakangas가 밀었습니다:
Andres Freund가 밀었습니다:
다니엘 구스타프손이 밀었습니다:
REVOKE ROLE 문의 GRANTED BY 지원을 수정했습니다. 커밋 6aaaa76bb 추가됨 GRANT 및 REVOKE 문에서 GRANTED BY 절을 지원하지만 누락되었습니다. REVOKE ROLE 사례에서 역할 확인에 대한 지원을 추가합니다. 확인하여 수정하세요 구문 분석된 역할이 CURRENT_ROLE/CURRENT_USER 요구 사항과 일치하는지, 그리고 또한 이에 대한 몇 가지 테스트를 추가하십시오. GRANTED BY 지원이 적용된 v14로 백패치 소개되었습니다. 토론:https://postgr.es/m/B7F6699A-A984-4943-B9BF-CEB84C003527@yesql.se백패치 쓰루: 14https://git.토토 꽁 머니.org/pg/commitdiff/b2a459edfe645747744402f23de041e9c0a3cd93
관리자 옵션 취소에 대한 테스트를 추가합니다. <role_name에 대한 REVOKE ADMIN 옵션 구문에는 충분한 테스트 범위가 없었습니다. 에 적용 범위를 추가하여 수정하세요. 권한 테스트 스위트. 저자: 마크 딜거mark.dilger@enterprisedb.com토론:https://postgr.es/m/333B0203-D19B-4335-AE64-90EB0FAF46F0@enterprisedb.com https://git.토토 꽁 머니.org/pg/commitdiff/4597fd78d6dea2235cb948ea036c2d61057c415c