출시 날짜 :2021-11-11
이 릴리스에는 14.0의 다양한 수정 사항이 포함되어 롤 토토. Major Release 14의 새로운 기능에 대한 정보는 참조윈 롤 토토 PostgreSQL : 문서 : 14 : E.18. 릴리스 14.
14.x.를 실행하는 사람들에게는 덤프/복원이 필요하지 않습니다.
그러나 물리적 복제를 사용하는 설치는 아래의 세 번째 변경 로그 항목에 설명 된대로 기본 서버 전에 대기 서버를 업데이트해야합니다.
또한 다음 몇 가지 변화 항목에서 설명 된 바와 같이, 인덱스가 손상 될 수있는 몇 가지 버그가 발견되었습니다. 해당 사례 중 하나가 귀하에게 적용되면 업데이트 후 영향을받을 수있는 인덱스가 권장됩니다.
SSL 또는 GSS 암호화 핸드 셰이크 (Tom Lane) 후 서버가 외부 롤 토토를 거부하게합니다.§
TCP 연결에 롤 토토를 주입 할 수있는 능력이있는 중간 인간은 암호화로 보호 된 롤 토토베이스 세션의 시작 부분에 명확한 텍스트 롤 토토를 넣을 수 있습니다. 서버가 인증 롤 토토를 요구하지 않은 경우에만 작동하지만 가짜 SQL 명령을 서버로 보내는 것이 남용 될 수 있습니다. (그러나 SSL 인증서 인증에 의존하는 서버는 그렇지 않을 수 있습니다.)
thePostgreSQL이 문제를보고 한 Jacob Champion에게 프로젝트 감사합니다. (CVE-2021-23214)
makelibpqSSL 또는 GSS 암호화 핸드 셰이크 후 외부 롤 토토 거부 (Tom Lane)§
TCP 연결에 롤 토토를 주입 할 수있는 능력이있는 중간 인간은 암호화로 보호 된 롤 토토베이스 세션의 시작 부분에 일부 명확한 텍스트 롤 토토를 제공 할 수 있습니다. LIBPQ의 행동에 대한 다른 세부 사항은 그 소리보다 더 어렵지만 클라이언트의 첫 몇 가지 쿼리에 가짜 응답을 주입하는 데 남용 될 수 있습니다. 다른 공격 라인은 고객의 비밀번호 또는 세션 초기에 전송 될 수있는 기타 민감한 롤 토토를 추방하는 것입니다. CVE-2021-23214에 취약한 서버에서는 가능한 것으로 나타났습니다.
PostgreSQL이 문제를보고 한 Jacob Champion에게 프로젝트 감사합니다. (CVE-2021-23222)
부분 WAL 레코드 (Álvaro Herrera)로 끝나는 WAL 세그먼트를 배송 한 후 1 차 충돌이 발생하는 경우 물리 복제 수정§ § § § §
기본이 나머지 불완전한 WAL 레코드 작성을 마치기에 충분히 오래 살아남지 못한 경우, 이전 충돌 회복 논리는 불완전한 WAL 레코드의 시작부터 시작하여 WAL을 다시 작성하고 wal을 초과했습니다. 대기 서버에는 이미 해당 WAL 세그먼트의 사본이있을 수 있으므로 문제가 발생합니다. 그런 다음 다음 세그먼트가 일관되지 않은 것으로 보이며 수동 개입 없이는 회복 할 수 없습니다. 고치려면 충돌 후 다시 시작할 때 WAL 세그먼트 경계를 백업하지 마십시오. 대신 다음 WAL 세그먼트가 시작될 때 새로운 유형의 WAL 레코드를 작성하여 독자에게 불완전한 WAL 레코드가 완료되지 않아 무시되어야한다고 알려줍니다..
이 업데이트를 적용 할 때 기본이되기 전에 대기 서버를 업데이트하는 것이 가장 좋습니다. 따라서 기본이 충돌하는 경우이 새로운 WAL 레코드 유형을 처리 할 준비가됩니다..
병렬 확인진공
색인을 놓치지 않습니다 (Peter Geoghegan, Masahiko Sawada)§
평행진공
아래에있는 인덱스를 처리하지 못할 것입니다min_parallel_index_scan_size
컷오프, 테이블에도 그 크기보다 두 가지 이상인 인덱스가있는 경우. 이로 인해 인덱스가 손상 될 수 롤 토토.에 의해 여전히 힙 항목에 대한 참조가 포함되어 있기 때문입니다.진공
; 그러한 인덱스를 사용하는 후속 쿼리는 그렇지 말아야 할 행을 반환 할 가능성이 높습니다. 이 문제는 평행 진공 청소기를 사용하지 않기 때문에 Autovacuum에는 영향을 미치지 않습니다. 그러나 인덱스 크기가 올바른 혼합 된 수동으로 혈관화 된 테이블을 다시 알리는 것이 좋습니다.
수정동시에 색인 생성
최신 준비된 거래를 기다리려면 (Andrey Borodin)§
방금 준비된 트랜잭션에 의해 삽입 된 행은 새 인덱스에서 생략 될 수 있으므로 인덱스에 의존하는 쿼리가 그러한 행을 놓치게됩니다. 이 유형의 문제에 대한 이전 수정은를 설명하지 못했습니다.거래 준비
여전히 진행중인 명령동시에 색인 생성
그들을 확인했습니다. 이전과 마찬가지로 준비된 트랜잭션을 가능하게하는 설치 (max_prepared_transactions
0),이 문제가 구축 될 때 발생한 경우 동시에 제작 된 인덱스를 다시 표시하는 것이 좋습니다.
백엔드가 동시에 구축되는 색인에 새로운 행에 대한 항목을 추가하지 못하는 레이스 조건을 피하십시오 (Noah Misch, Andrey Borodin)§
현장에서는 드문 일이지만,이 경우는 잠재적으로 구축되거나 구사 된 색인에 영향을 줄 수 롤 토토동시에
옵션. 그러한 색인이 올바른지 확인하기 위해 그러한 지수를 다시 알리는 것이 좋습니다.
수정Reindex 동시에
대상 지수에 첨부 된 운영자 클래스 매개 변수를 보존하려면 (Michael Paquier)§
비 지구 객체 (Aleksander Alekseev)가 포함 된 데이터베이스를 클로닝 할 때 공유 종속성의 잘못된 생성 수정§
이 오류의 효과는 실제로 제한적일 것입니다. 원칙적으로, 그것은 여전히 객체를 소유하고있는 동안 역할을 삭제할 수 롤 토토. 그러나 대부분의 설치는 그들이 추가 한 객체에 사용 된 역할을 삭제하고 싶지 않을 것입니다.template1
.
분할 된 테이블에 부착되거나 분리되는 테이블에 대해 관계 캐시가 무효화되어 있는지 확인하십시오 (Amit Langote, Álvaro Herrera)§
이 감독은 파티션에 직접 해결 된 후속 인서트/업데이트의 오작동을 허용 할 수 있지만 현재 존재하는 세션에서만..
범위 유형을 만드는 동안 구문 분석 트리의 부패 수정 (Alex Kozhemyakin, Sergey Shinderuk)§
유형 만들기
구문 분석 트리의 요소를 잘못 해제하여 이벤트 트리거에 문제가 발생하거나유형 만들기
명령은 계획 캐시에 저장되어 나중에 다시 사용되었습니다.
복합재 (Tom Lane)를 통한 도메인 배열에서 요소 필드의 업데이트 수정§
a 명령업데이트 탭 세트 fld [1] .subfld = val
배열의 요소가 일반 복합재가 아닌 도메인 인 경우 실패했습니다.
|타이와 함께 첫 번째 가져 오기
및업데이트 스킵 잠금
(David Christensen)§
타이와 함께 첫 번째 가져 오기
넥타이가 아닌 행을 찾을 때까지 중지 할 수 없기 때문에 요청한 것보다 한 줄을 더 가져옵니다. 현재 구현에서 if업데이트
사용됩니다. 그러면 그 행이 반환되지 않더라도 잠겨 롤 토토. 이면 바람직하지 않은 행동을 초래합니다.스킵 잠긴
옵션이 지정되어 롤 토토. 바람직하지 않은 행동을 도입하지 않고 이것을 바꾸는 것은 어렵 기 때문에 지금은 조합을 금지합니다.
anallowAlter Index Index Alter Column Col Set (Options)
(Nathan Bossart, Michael Paquier)§
파서가 이것을 받아 들였지만 문서화되지 않은 상태이며 실제로 작동하지 않습니다.
숫자에서 정밀도의 코너 케이스 손실 수정power ()
(Dean Rasheed)§
첫 번째 인수가 1에 매우 가까울 때 결과가 부정확 할 수 롤 토토.
Memoize Plan (David Rowley)에 대한 잘못된 해시 평등 연산자를 선택하지 마십시오.§
이 오류는 충돌 또는 잘못된 쿼리 결과를 초래할 수 롤 토토.
서브 쿼리 표현식을 함수 rangetable entries로 끌어 올리면 플래너 오류 수정 (Tom Lane)§
함수가있는 경우From
일부 서브의 출력을 옆으로 참조하십시오.select
이전의From
절, 우리는 해당 하위를 평평하게 할 수 롤 토토select
외부 쿼리로 기능 표현식에 복사 된 표현식이 완전히 처리되지 않았습니다. 이로 인해 실행시 충돌이 발생할 수 롤 토토.
열 전용 통계를 사용하여 열 범위 (Tom Lane)§
코너 케이스가 롤 토토.분석
MCV 목록이 관찰 된 모든 값을 설명하지 않더라도 MCV (Most-Common-Values) 목록을 작성하지만 히스토그램은 아닙니다. 이 경우 플래너가 MCV 목록 만 사용하여 열 값의 범위를 추정하지 못하도록합니다..
Subtransaction (Bertrand Drouvot) 내부의 포털 스냅 샷의 복원 수정§
절차가 트랜잭션을 수행하거나 롤백 한 다음 다음으로 중요한 조치가 새로운 서브 트랜잭션 내부에 있으면 스냅 샷 관리가 잘못되었고 매달려 포인터와 충돌 가능성이 높아졌습니다. PL/PGSQL의 전형적인 예는 A입니다.커밋
즉시시작 ... 예외
쿼리를 수행하는 블록.
스냅 샷을 내보낸 후 트랜잭션이 실패하면 올바르게 정리하십시오 (Dilip Kumar)§
이 감독은 같은 세션이 스냅 샷을 다시 내보내려 고 시도한 경우에만 문제를 일으킬 것입니다. 이에 대한 가장 큰 시나리오는 복제 슬롯을 생성 한 다음 다른 복제 슬롯을 생성하는 것입니다.
대기 서버에서 오버 플로우 타선 추적의 랩 어라운드 방지 (Kyotaro Horiguchi, Alexander Korotkov)§
이 감독은 대기 서버에서 상당한 성능 저하 (과도한 서브 트랜스 슬루 트래픽으로 나타냄)를 유발할 수 롤 토토.
대기 서버 (Michael Paquier, Andres Freund)를 홍보하는 동안 준비된 트랜잭션이 올바르게 설명되어 있는지 확인§
동시에 실행되는 세션으로 취한 스냅 샷에서 준비된 거래를 생략 할 수있는 좁은 창이있었습니다. 해당 세션이 스냅 샷을 사용하여 데이터 업데이트를 수행하면 잘못된 결과 또는 데이터 손상이 발생할 수 있습니다.
수정“재귀를 찾을 수 없음”오류설명
Worktablescan 노드 (Tom Lane)에 첨부 된 필터 조건을 인쇄하려고합니다.§
테이블을 바꿀 때 올바른 잠금 레벨이 사용되는지 확인하십시오 (Nathan Bossart, Álvaro Herrera)§ §
역사적 이유로Alter Index ... Rename
모든 종류의 관계에 적용 할 수 롤 토토. 인덱스 이름을 바꾸는 데 필요한 잠금 레벨은 테이블이나 다른 종류의 관계를 바꾸는 데 필요한 것보다 낮지 만 코드는이 문제가 발생하여 명령이 철자가 될 때마다 약한 잠금 레벨을 사용합니다Alter Index
.
동시에 삭제되는 객체를 소유 한 역할을 삭제할 때 무효 점-포인터-언론의 충돌을 피하십시오 (Álvaro Herrera)§
예방“스냅 샷 참조 누출”경고lo_export ()
또는 관련 함수 실패 (Heikki Linnakangas)§ §
Conercetodomain 발현 노드 (Ranier Vilela)에 대한 비효율적 인 코드 생성 수정§
일부 목록 조작 작업 (Nathan Bossart, Tom Lane)에서 O (n^2) 동작을 피하십시오§ § §
이러한 변경 사항은 다음을 포함하여 여러 시나리오에서 느린 처리를 수정합니다. 대기가 기본에 대한 많은 독점 잠금 장치를 보유한 트랜잭션을 재생하는 경우; 체크 포인트 이후에 많은 파일이 끊어지지 않을 때; 해시 집계가 많은 배치를 포함 할 때; 그리고 언제PG_TRGM
복잡한 정규 표현식에서 인덱스 가능한 조건을 추출합니다. 이러한 시나리오 중 첫 번째 시나리오만이 필드에서보고되었지만 비효율적 인 목록 삭제의 그럴듯한 결과처럼 보입니다.
B-Tree 게시 목록 스플릿 (Peter Geoghegan) 주변에 더 많은 방어 점검 추가§ §
이 변경 사항은 중복 테이블 TID와 관련된 인덱스 손상을 감지하는 데 도움이됩니다.
NAN을 브린 플로트에 삽입 할 때 어설 션 실패를 피하십시오.§
생산 빌드에서 그러한 경우에는 다소 비효율적이지만 실제로 부정확하지는 않습니다.
Autovacuum 런처 프로세스가 응답하도록 허용PG_LOG_BACKEND_MEMORY_CONTEXTS ()
더 빨리 요청합니다 (Koyu Tanigawa)§
HMAC 해시 계산에서 메모리 누출 수정 (Sergey Shinderuk)§
허용 설정migne_pages
toon
언제shared_memory_type
isSYSV
(Thomas Munro)§
이전 에이 설정은 허용되었지만 구현이 부족한 것은 아무것도하지 않았습니다.
PL/PGSQL에서 쿼리 유형의 확인 수정return query
Statement (Tom Lane)§
return query
튜플을 반환 할 수있는 쿼리를 수락해야합니다 (예 :업데이트 반환
. v14 실수로 아무것도 허용하지 않았지만select
; 또한return query execute
Variant는 쿼리 유형 확인을 전혀 적용하지 못했습니다.
수정pg_dump비 글로벌 기본 권한을 올바르게 덤프하려면 (Neil Chen, Masahiko Sawada)§
글로벌 인 경우 (무제한)기본 권한 변경
명령은 현재 현재의 일부 특권을 취소했습니다.execute
함수의 경우기본 권한 변경
명령은 선택한 역할 또는 스키마에 대한 해당 권한을 다시 부여했습니다.pg_dump제한된 특권 보조금을 올바르게 덤프하지 못했습니다.
makepg_dump덤프 할 파티션 된 테이블에서 공유 잠금을 취득 (Tom Lane)§
이 감독은 일반적으로 한 번 이후로 상당히 무해했습니다.pg_dump잎 파티션을 잠그 셨는데, 이는 분할 된 테이블 자체에서 상당한 DDL을 방지하기에 충분합니다. 그러나 관련 잠금이 유지되지 않기 때문에 아이가없는 분할 테이블을 버릴 때 문제가 발생할 수 롤 토토.
충돌 수정pg_dumpPre-8.3 서버 (Tom Lane)에서 트리거 정의를 덤프하려고 할 때§
잘못된 파일 이름 수정PG_RESTORE의 잘못된 큰 개체 TOC 파일에 대한 오류 메시지 (Daniel Gustafsson)§
pgbench소켓 레벨 고장 후에 0이 아닌 상태로 종료합니다 (Yugo Nagata, Fabien Coelho)§ §
원하는 동작은 실행을 끝내고 상태 2로 종료하는 것입니다. 또한 그러한 오류의보고를 수정합니다..
예방PG_AMCHECK임시 관계를 확인하는 것과 유효하지 않은 인덱스 (Mark Dilger)§ §
이것은 거의 확실하게 일치하지 않을 관계에 대한 도움이되지 않는 관계를 피합니다.
만들기Contrib/Amcheck
대기 서버에서 실행할 때 미등록 테이블을 건너 뛰십시오 (Mark Dilger)§
그러한 테이블이 비어 있기 때문에이 작업을 수행하는 것이 적절하며, 예정된 인덱스는 이미 비슷하게 처리되었습니다.
변경contrib/pg_stat_statements
읽기“쿼리 텍스트”최대 1GB (Tom Lane) 단위의 파일§
이러한 큰 쿼리 텍스트 파일은 매우 드문 일이지만, 발생하면 이전 코딩은 Windows 64에서 실패합니다 (2GB 이상의 개별 읽기 요청을 거부).
null-pointer crash를 수정하면Contrib/Postgres_FDW
데이터 변환 오류를보고하려고합니다 (Tom Lane)§
GetSharedSecurityLabel ()
NET Critical Releting Cache entries (Jeff Davis)를 구축하지 않은 새로 시작된 세션에서 사용할 수 있습니다.§
탭 테스트를 실행할 때 모듈 자체 디렉토리를 포함시켜Path
(Andrew Dunstan)§
이것은 사용자 정의 테스트 드라이버와 같이 설치되지 않은 건축 프로그램을 찾을 수 롤 토토.
CLDR 프로젝트의 데이터를 사용하여 Windows 시간대 이름을 Iana Time Zones (Tom Lane)에 매핑합니다.§ § §
Windows에서 실행할 때initdb새 클러스터를 설정하려는 시도TIMEZONE
시스템의 일반적인 시간대와 일치하는 Iana 시간대의 매개 변수. 우리는 몇 년 전에 생성 한 매핑 테이블을 사용하고 있었고 적절하게 만 업데이트했습니다. 의심 할 여지없이, 그것은 최근에 수용된 영역의 생략뿐만 아니라 여러 가지 오류가 포함되어있었습니다. CLDR이 가장 적절한 매핑을 추적하고 있었으므로 데이터를 사용해보십시오. 이 변경 사항은 기존 설치에 영향을 미치지 않으며 새로 이니셜 클러스터 만 영향을 미칩니다.
시간대 데이터 파일 업데이트TZDATAFiji, Jordan, Palestine 및 Samoa의 DST 법률 변경에 대한 릴리스 2021E, 바베이도스, 쿡 제도, 가이아나, 니에, 포르투갈 및 통가의 역사적 교정. (Tom Lane)§
또한 Pacific/Enderbury Zone은 Pacific/Kanton으로 이름이 바뀌 었습니다. 또한 1970 년부터 아프리카/아크라, 아메리카/아티 코칸, America/Blanc-Sablon, America/Creston, America/Curacao, America/Nassau, America/Port_of_spain, Antarctica/Dumontdurville 및 Antartica/Owa와 같은 인근 지역의 더 인기있는 구역으로 합병되었습니다. 이 모든 경우에, 이전 영역 이름은 별칭으로 남아 있습니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면