출시 날짜 :2021-08-12
이 릴리스에는 11.12의 다양한 수정 사항이 포함되어 토토 결과. Major Release 11의 새로운 기능에 대한 정보는 참조섹션 E.23.
11.x.를 실행하는 사람들에게는 덤프/복원이 필요하지 않습니다.
그러나 11.11 이전 버전에서 업그레이드하는 경우 참조하십시오.섹션 E.12.
투영 단계 (Tom Lane)의 반복적 인 적용의 잘못 계획 수정
플래너는 두 개의 투사 경로가 서로 쌓인 경우 잘못된 계획을 만들 수 토토 결과. 그 상황을 트리거하는 유일한 방법은 병렬 정렬 작업과 관련이 있지만 다른 사례가있을 수 토토 결과.
SSL 재협상을 더 완전히 허용하지 않습니다 (Michael Paquier)
SSL 재협상은 한동안 비활성화되었지만 서버는 여전히 클라이언트 개시 재협상 요청과 협력 할 것입니다. 악의적으로 제작 된 재협상 요청은 서버 충돌을 초래할 수 토토 결과 (OpenSSL 문제 CVE-2021-3449 참조).
이후 포털 레벨 스냅 샷 복원커밋
또는롤백
절차 내 (Tom Lane)
이 변경 사항은 즉시 구운 값을 가져 오려는 시도가를 수정합니다.커밋
/롤백
와 같은 오류로 실패합니다“알려진 스냅 샷 없음”또는“토스트 값에 대한 누락 된 청크 번호 0”.
일부 확장자는 모든 포털 외부에서 SQL 코드를 실행하려고 시도 할 수 토토 결과. 그들은 그렇게하기 전에 외부 스냅 샷이 존재하는지 확인해야합니다.“외부 스냅 샷 또는 포털 없이는 SQL을 실행할 수 없습니다”.
비 안정적인 쿼리 (Tom Lane)를 읽는 커서의 출력을 지속 할 때 오작동을 피하십시오
이전에, 우리는 항상 전체 쿼리 결과를 되 감고 다시 읽었으므로 이전 실행과 다른 결과를 얻을 수 있으므로 나중에 큰 혼란을 초래할 수 있습니다. 스크롤이없는 커서의 경우 쿼리 출력의 아직 읽지 않은 부분 만 저장 하여이 문제를 해결할 수 있습니다. 스크롤 커서를 백업 할 수 없기 때문에 충분합니다.
또한 a 암시 적 커서에 대한 스크롤 모드도 강제 없습니다.pl/pgsql쿼리 루프, 즉시 처리 중에 그러한 커서를 지속시킬 때 이러한 유형의 문제를 피하기 위해
거부SELECT SELECT ... GROUPING SETS (()) 업데이트
(Tom Lane)
이것은 허용되지 않아야합니다.업데이트
평범한그룹 by
는 허용되지 않았지만 그 테스트는 빈 그룹화 세트를 올바르게 처리하지 못했습니다. 최종 결과는 집행자의 무효 인 포인터 인 Dereference가 될 것입니다.
쿼리가있는 경우를 거부합니다with
그냥 다시 쓰기Notify
(Tom Lane)
이전에 추락 한 경우.
in숫자
곱셈, 소수점 (Dean Rasheed) 이후 16383 자리 이상을 가질 경우 실패하지 않고 결과를 반올림합니다.
제기시 코너 케이스 오류 및 정밀도 손실 수정숫자
매우 큰 힘에 대한 값 (Dean Rasheed)
Division-by-Zero 실패 수정to_char ()
witheeee
형식 및 A숫자
입력 값 10^(-1001) (Dean Rasheed)
수정pg_size_pretty (bigint)
긍정적 인 것들을 반올림하는 방식과 일관되게 둥글게 둥글다.숫자
버전) (Dean Rasheed, David Rowley)
makePG_FILENODE_RELATION (0, 0)
실패하기보다는 널 리턴 (Justin Pryzby)
make변경 확장
멤버 객체를 추가하거나 제거 할 때 확장자 잠그십시오 (Tom Lane)
이전 코딩 허용Alter Extension Add/Drop
동시에 발생하려면드롭 확장
, 충돌 또는 손상된 카탈로그 항목으로 이어지는 것.
수정구독
빈 슬롯 이름 (Japin Li)을 거부하려면
파티션 된 테이블의 새로운 파티션 트리거를 복제 할 때 활성화 된 상태가 복사되어 있는지 확인하십시오 (Álvaro Herrera)
생성 된 쿼리의 별칭 충돌을 피하십시오Refresh Restocized View 동시에
(Tom Lane, Bharath Rupireddy)
이 명령은 특정 이름을 가진 열이 포함 된 구체화 된 뷰에서 실패했습니다.MV
andNewData
.
수정거래 준비
상충되는 세션-제외 및 트랜잭션 라이프 스팬 잠금 장치 (Tom Lane)를 올바르게 확인하려면
트랜잭션은 동일한 자문 잠금 ID 값에 대한 세션 리포 스팬 및 트랜잭션 리포 스팬 잠금 장치가 있으면 준비 할 수 없습니다. 이 제한은 완전히 점검되지 않았으며, 이는 동안 공황으로 이어질 수 토토 결과.거래 준비
.
의 오작동 수정DROP 소유자
대상 역할이 RLS 정책 (Tom Lane)에 두 번 이상 나열된 경우
동안 RLS 정책에서 역할을 제거 할 때 불필요한 오류 테스트 건너 뛰기DROP 소유자
(Tom Lane)
특히, 이것은 사용하기 위해 슈퍼 서서가 필요한 경우를 수정합니다DROP 소유자
.
저장하지 마십시오“빠른 기본값”외국 테이블에 열을 추가 할 때 (Andrew Dunstan)
이러한 테이블에는 로컬 힙 스토리지가 존재하지 않기 때문에 빠른 기본값은 쓸모가 없지만 후속 작업이 혼란 스러웠습니다. 그러한 카탈로그 항목의 생성을 억제하는 것 외에도Alter Table
명령, 잘못된 상태가있을 때 하류 코드를 대처하도록 조정합니다.
인덱스 상태 플래그가 트랜잭션으로 업데이트되도록 허용 (Michael Paquier, Andrey Lepikhov)
이것은 실제로 불변이 아닌 지수 곤경을 처리 할 때 실패를 피합니다. 그것이 뒷받침되는 사례로 간주되지는 않지만, 여기서 비 트랜잭션 업데이트를 사용하는 원래 이유는 오랫동안 사라 졌기 때문에 우리는 그것을 바꿀 수 있습니다.
계획 캐시 항목 손상을 피하십시오도메인 생성
또는Alter Domain
캐시 된 계획 (Tom Lane)에 나타납니다.
Walsenders가 최신 복제 명령을 표시합니다pg_stat_activity
(Tom Lane)
이전에 Walsender는 최신 SQL 명령을 보여 주었고, 현재 복제 작업을 수행하고 있다면 혼란 스러웠습니다. 이제 SQL 명령과 동일한 기반에 복제 프로토콜 명령이 표시됩니다.
makePG_SETTINGS
.pending_restart
관련 항목이에 참가할 때 참으로 표시됩니다.postgresql.conf
제거되었습니다 (Álvaro Herrera)
pending_restart
Postmaster 재시작없이 변경할 수없는 항목이 수정되었지만 항목이 완전히 제거 된 곳이 아닌 경우를 올바르게 보여주었습니다..
새로운 대기의 코너 케이스 실패 수정 새로운 1 차 (Dilip Kumar, Robert Haas)
좁은 조건에서 대기는 잘못된 WAL 타임 라인을 따라 가려고 노력할 수 토토 결과.
트랜잭션 중단 레코드의 WAL 재생이 파일 자르기 (Fujii Masao)를 유발할 때 최소 복구 지점 업데이트.
파일 잘림은 돌이킬 수 없으므로 더 이상 해당 레코드보다 일찍 회복을 중단하는 것이 안전하지 않습니다. 거래 커밋의 해당 사례는 몇 년 전에 고정되었지만 이것은 간과되었습니다.
Walreceivers에서 오류 후 카탈로그 조회를 시도하지 마십시오 (Masahiko Sawada, Bharath Rupireddy)
WAL이 도착하기를 기다리는 동안 대기 서버의 시작 프로세스가 셧다운 신호에 즉시 응답 할 수 있는지 확인하십시오 (Fujii Masao, Soumyadeep Chakraborty)
Transaction Commit Group (Amit Kapila)의 구성원이되지 않은 후 공유 상태를 정확하게 지우십시오.
올바른 타이밍이 주어지면, 이후 일부 세션이 동일한 PGPROC 객체를 재사용 할 때 어설 션 실패를 유발할 수 토토 결과..
다른 프로세스에서 동시 쓰기에 직면하여 잘못된 Relmapper 데이터를 읽지 않도록 잠금 추가 (Heikki Linnakangas)
복제 프로토콜 위반에 대한 점검 개선 (Tom Lane)
논리적 복제 작업자는 자주 사용하여 어설 션을 사용하여 유효하지 않거나 순서 외 복제 명령에 의해 유발 될 수있는 사례를 확인합니다. 이것은 현명하지 않은 것처럼 보이므로 이러한 테스트를 정기 오류 확인으로 홍보합니다.
다수의 논리적 복제 작업자가 같은 테이블 (Peter Smith, Haiying Tang)을 자르려고 할 때 교착 상태를 고정합니다.
투기 삽입의 논리적 디코딩에서 오류 케이스 및 메모리 누출 수정 (Dilip Kumar)
오류 후 유효하지 않은 레코드 유형 해시 테이블 항목을 남기지 마십시오 (Sait Talha Nisanci)
이것은 나중에 충돌 또는 메모리 누출로 이어질 수 있습니다.
수정 계획 캐시 참조 누출 일부 오류 사례에서테이블 작성 ... execute
(Tom Lane)
병렬 작업자 (Thomas Munro)에서 튜플 디스크립터를 공유하기위한 코드의 레이스 조건 수정
올바른 타이밍이 주어지면 충돌이 발생할 수 토토 결과.
배경 노동자들을 출시 할 때 가능한 레이스 조건 수정 (Tom Lane)
이것은 인텔 하드웨어에서 관찰 가능한 버그를 수정하지는 않지만 메모리 주문 규칙이 약한 기계에는 문제가있을 수 있습니다.
정렬 코드 (Ronan Dunklau)에서 잠재 충돌 수정
하나의 코드 경로는 널 포인터를 제거하려고 시도 할 수 토토 결과. 핵심 서버의 정렬 사용에서는이 사례가 도달 할 수없는 것으로 보이지만 확장에 의해 트리거 될 수 토토 결과.
SP-Gist 인덱스 삽입 (Tom Lane)의 무한 루프 방지
열이 포함 된 경우 잎 지수 튜플이 페이지에 맞지 않도록 충분한 공간을 차지하는 경우 Text_ops 연산자 클래스는 튜플을 맞추려고 무한 루프로 들어갑니다. Pre-V11 버전에는 열이 포함되어 있지 않지만 운영자 클래스의 버그에 대한 좋은 방어처럼 보이기 때문에이 방지 방지 수정 방지 수정 사항을 다시 배치합니다..
쿼리 취소 요청 (Tom Lane, Álvaro Herrera)에 의해 SP-Gist 인덱스 삽입을 종료 할 수 있는지 확인하십시오.
원인이 될 수있는 비 초기의 변수 버그 수정pl/pgsqlin
조항 지정엄격한
, 그렇지 않더라도 (Tom Lane)
LIBPQ의 인쇄 기능 (Tom Lane)에서 메모리가없는 실패에 대한 프로세스를 중단하지 마십시오.
inECPG, 허용숫자
valueint_min(일반적으로 -2147483648) 정수 (John Naylor)로 변환됩니다.
inPSQL및 기타 클라이언트 프로그램에서는 잘못된 인코딩 된 데이터 (Tom Lane)를 다룰 때 문자열의 끝을 넘어서 피하십시오
문자열 끝 근처에 잘못 인코딩 된 멀티 바이트 문자는 다음 메모리에서 발생하는 일에 따라 다양한 처리 루프가 문자열 종단 NUL을 지나서 진행할 수 있습니다. 이 특정 사례는 흥미로운 보안 결과가없는 것으로 보이지만 CVE-2006-2313을 연상시킵니다.
수정pg_dump지원 상태가 부모 트리거 상태와 다른 파티션 된 테이블의 트리거를 올바르게 처리하려면 (Justin Pryzby, Álvaro Herrera)
피하기“헤더의 잘못된 생성 날짜”실행할 때의 경고PG_RESTORE다른 시간대 (Tom Lane)에서 생성 된 아카이브 파일에서
makepg_upgrade기존 설치를 계속하십시오OldestXid
value (Bertrand Drouvot)
이전에 새 설치의OldestXid
|는 즉각적인 raparound autovacuuming을 강요하기에 충분히 오래된 값으로 설정되었습니다. 그것은 성능 관점에서 바람직하지 않습니다.autovacuum_freeze_max_age
업그레이드 직후에 원치 않는 강제 종료를 겪을 수 토토 결과.
Extendpg_upgrade업그레이드 해야하는 확장에 대해 감지하고 경고하려면 (Bruce Momjian)
스크립트 파일이 이제를 포함하여 생성되었습니다.Alter Extension Update
새 설치에서 기본값으로 간주되는 버전까지 확장자를 가져 오는 데 필요한 명령.
전환시 문제를 피하십시오pg_receivewal압축 및 비 압축 월 스토리지 사이 (Michael Paquier)
inContrib/Postgres_FDW
, 오류 후 카탈로그 조회를 시도하지 마십시오 (Tom Lane)
이것은 일반적으로 작동하지만 오류가 카탈로그에 액세스하지 못한 오류 일 수 있기 때문에 그다지 안전하지 않습니다. 수정의 부작용은 데이터 변환 오류에 대한 메시지가 이제 외국 테이블 또는 열의 실제 기본 이름이 아닌 쿼리 테이블 및 열 별칭 (사용 된 경우)을 언급한다는 것입니다.
격리 테스트 인프라 향상 (Tom Lane, Michael Paquier)
예상 완료 순서를 표시하기 위해 격리 테스트 단계에 주석을 달 수 있도록합니다. 이를 통해 레이스 조건을 막기 위해 이전에 사용한 (완전히 성공적으로 성공적이지는 않음) 지연없이 다른 비율 테스트 사례로부터 안정적인 결과를 얻을 수 있습니다.“드라이 런”모드. 분리기 자체에서 메모리 누출을 제거하십시오.
캐시 클로버 테스트의 오버 헤드 감소 (Tom Lane)
수정pl/python'Python 3.10 (Honza Horak)과 함께 전달되는 회귀 테스트
makeprintf ( "%s", null)
print(null)
충돌 대신 (Tom Lane)
이것은 코너 케이스에서 서버 견고성을 향상시켜야하며, 우리의 동기화printf
공통 라이브러리를 사용한 구현.
포인트-타임 복구가 a에서 멈출 때 잘못된 로그 메시지 수정롤백 준비
레코드 (Simon Riggs)
개선Alter Table
의 잘못된 관계 오류에 대한 메시지 (Kyotaro Horiguchi)
참조 오류 메시지를 명확히합니다“비 음성”값 (Bharath Rupireddy)
수정구성더 이상 별도가없는 OpenLDap 2.5에서 작업하려면libldap_r
도서관 (Adrian Ho, Tom Lane)
없는 경우libldap_r
라이브러리, 이제 우리는 이제 조용히 가정합니다libldap
is Thread-Safe.
새로운 대상 추가World-Bin
andInstall-World-bin
(Andrew Dunstan)
이들은와 동일합니다.World
and설치 세계
문서를 빌드하거나 설치하지 않는 한 각각.
탭 테스트에 대한 규칙 수정 (provace_installcheck
) PGXS 사용법 (Andrew Dunstan)에서 작동합니다.
다가오는 LLVM API 변경을 준비하도록 JIT 코드 조정 (Thomas Munro, Andres Freund)
LLVM 13은 이전 JIT 컴파일러의 충돌을 일으키는 호환되지 않는 API 변경을 만들었습니다.
GSSAPI 라이브러리에 의해 반환 된 문자열이 무효로 종결되었다고 가정하지 마십시오 (Tom Lane)
GSSAPI 사양은 문자열 포인터 및 길이를 제공합니다. 실제로 문자열 이후 다음 바이트는 일반적으로 0이므로 이전 코딩이 실제로 실패하지 않았다는 것 같습니다.
MSVC (Michael Paquier)에서 GSSAPI를 사용하여 건물 활성화
현대 kerberos 빌드로 다양한 비 호환성을 수정합니다.
MSVC 빌드에서 포함-with-pgport
|PG_CONFIG, 지정된 경우 (Andrew Dunstan)