출시 날짜 :2021-08-12
이 릴리스에는 12.7의 다양한 수정 사항이 포함되어 토토 사이트. Major Release 12의 새로운 기능에 대한 정보는 참조섹션 E.23.
덤프/복원은 12.x.를 실행하는 사람들에게는 필요하지 않습니다.
그러나 12.6 이전 버전에서 업그레이드하는 경우 참조하십시오.섹션 E.17.
투영 단계 (Tom Lane)의 반복적 인 적용에 대한 잘못 계획 수정§
플래너는 두 개의 투사 경로가 서로 쌓인 경우 잘못된 계획을 만들 수 토토 사이트. 그 상황을 트리거하는 유일한 방법은 병렬 정렬 작업과 관련이 있지만 다른 사례가있을 수 토토 사이트.
SSL 재협상을 더욱 완전히 허용하지 않습니다 (Michael Paquier)§
SSL 재협상은 한동안 비활성화되었지만 서버는 여전히 클라이언트 개시 재협상 요청과 협력 할 것입니다. 악의적으로 제작 된 재협상 요청은 서버 충돌을 초래할 수 토토 사이트 (OpenSSL 문제 CVE-2021-3449 참조).
이후에 포털 레벨 스냅 샷을 복원커밋
또는롤백
절차 내 (Tom Lane)§ § § § §
이 변경 사항은 직후에 구운 값을 가져 오려는 시도를 수정합니다.커밋
/롤백
와 같은 오류로 실패합니다“알려진 스냅 샷 없음”또는“토스트 값에 대한 누락 된 청크 번호 0”.
일부 확장자는 모든 포털 외부에서 SQL 코드를 실행하려고 시도 할 수 토토 사이트. 그들은 그렇게하기 전에 외부 스냅 샷이 존재하는지 확인해야합니다.“외부 스냅 샷 또는 포털 없이는 SQL을 실행할 수 없습니다”.
비 안정적인 쿼리 (Tom Lane)를 읽는 커서의 출력을 지속 할 때 오작동을 피하십시오§ §
이전에, 우리는 항상 전체 쿼리 결과를 되감고 다시 읽어 이전 실행과 다른 결과를 얻을 수 있으므로 나중에 큰 혼란을 초래할 수 있습니다. 스크롤이없는 커서의 경우 쿼리 출력의 아직 읽지 않은 부분 만 저장 하여이 문제를 해결할 수 있습니다. 스크롤 커서를 백업 할 수 없기 때문에 충분합니다.
또한 a의 암시 적 커서의 스크롤 모드를 강제로 강제로하지 마십시오.pl/pgsql쿼리 루프, 배치 내 커밋 중에 그러한 커서를 지속시킬 때 이러한 유형의 문제를 피하려면
거부SELECT SELECT ... 업데이트 용 세트 (())를 그룹화하여 그룹
(Tom Lane)§
이것은 허용되지 않아야합니다.업데이트
평범한그룹 by
는 허용되지 않았지만 그 테스트는 빈 그룹화 세트를 올바르게 처리하지 못했습니다. 최종 결과는 집행자의 무효 인 포인터 인 Dereference가 될 것입니다.
쿼리가있는 경우with
그냥 다시 쓰기Notify
(Tom Lane)§
그러한 경우는 이전에 추락했습니다.
in숫자
곱셈, 소수점 (Dean Rasheed) 이후에 16383 자리 이상을 가질 경우 실패하지 않고 결과를 반올림합니다.§
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)를 추가하거나 제거 할 때 확장자 잠그십시오§
이전 코딩 허용변경 확장 추가/드롭
동시에 발생하려면드롭 확장
, 충돌 또는 부패한 카탈로그 항목으로 이어지는 것.
수정구독 변경
빈 슬롯 이름 (japin li)을 거부하려면§
파티션 된 테이블의 트리거를 새로운 파티션으로 클로닝 할 때 활성화 된 상태가 복사되어 있는지 확인하십시오 (Álvaro Herrera)§
생성 된 쿼리의 별칭 충돌을 피하십시오상쾌한 구체화 된보기 동시에
(Tom Lane, Bharath Rupireddy)§ §
이 명령은 특정 이름을 가진 열이 포함 된 구체화 된 뷰에서 실패했습니다.MV
및NewData
.
수정거래 준비
상충되는 세션 연장 및 거래 리포 스팬 잠금 장치 (Tom Lane)를 올바르게 확인하려면§
동일한 자문 잠금 ID 값에 대한 세션 리포 스팬 및 트랜잭션 리포 스팬 잠금 장치가 있으면 거래를 준비 할 수 없습니다. 이 제한은 완전히 점검되지 않았으며, 이는 동안 공황으로 이어질 수 토토 사이트.거래 준비
.
의 오작동 수정삭제 소유
대상 역할이 RLS 정책 (Tom Lane)에 두 번 이상 나열된 경우§
RLS 정책에서 역할을 제거 할 때 불필요한 오류 테스트 건너 뛰기삭제 소유
(Tom Lane)§
12587_12665삭제 소유
.
전체 열 변수를 허용하지 않습니다생성
Expressions (Tom Lane)§
전체 열 변수의 사용은 생성 된 열이 그 자체에 의존 할 수 없다는 규칙을 명확하게 위반하므로 그러한 경우는 잘 정의 된 동작이 없습니다. 실제 행동에는 종종 충돌이 포함되었습니다.
사용 수정Tableoid
in생성
Expressions (Tom Lane)§
일부 코드 경로는이 시스템 열에 유효한 값을 제공하지 못했습니다생성
표현.
저장하지 마십시오“빠른 기본값”외국 테이블에 열을 추가 할 때 (Andrew Dunstan)§
이러한 테이블에는 로컬 힙 스토리지가 존재하지 않기 때문에 빠른 기본값은 쓸모가 없지만 후속 작업이 혼란 스러웠습니다. 그러한 카탈로그 항목의 생성을 억제하는 것 외에도Alter Table
명령, 하류 코드를 잘못 참석할 때 대처하도록 조정하십시오.
인덱스 상태 플래그가 트랜잭션으로 업데이트되도록 허용 (Michael Paquier, Andrey Lepikhov)§ §
이것은 실제로 불변이 아닌 지수 곤경을 처리 할 때 실패를 피합니다. 그것이 뒷받침되는 사례로 간주되지는 않지만, 여기서 비 트랜잭션 업데이트를 사용하는 원래 이유는 오랫동안 사라 졌기 때문에 우리는 그것을 바꿀 수 있습니다.
계획 캐시 항목 손상을 피하십시오도메인 생성
또는Alter Domain
캐시 된 계획 (Tom Lane)에 나타납니다.§
Walsenders Make Walsenders에서 최신 복제 명령을 표시pg_stat_activity
(Tom Lane)§
이전에 Walsender는 최신 SQL 명령을 표시 할 것이며, 대신 일부 복제 작업을 수행하고 있다면 혼란 스러웠습니다. 이제 SQL 명령과 동일한 기반에 복제 프로토콜 명령이 표시됩니다.
makepg_settings
.pending_restart
관련 항목이에 참가할 때 참으로 표시됩니다.postgresql.conf
제거되었습니다 (Álvaro Herrera)§
pending_restart
Postmaster 재시작없이 변경할 수없는 항목이 수정되었지만 항목이 완전히 제거 된 곳이 아닌 경우를 올바르게 보여주었습니다..
상속 테이블의 어린이 인 일반 테이블과 관련된 쿼리의 실수 계획 (Amit Langote)§
업데이트 선택
및 관련 명령은 어설 션 실패 또는에 실패합니다.“정크 열을 찾을 수 없습니다”그러한 경우 오류.
새로운 대기의 코너 케이스 실패 수정 새로운 1 차 (Dilip Kumar, Robert Haas)§ § § § § §
좁은 조건에서 대기는 잘못된 WAL 타임 라인을 따르려고 노력할 수 토토 사이트.
트랜잭션 중단 레코드의 WAL 리플레이가 파일 자르기 (Fujii Masao)를 유발할 때 최소 복구 지점 업데이트.§
파일 잘림은 돌이킬 수 없으므로 더 이상 해당 레코드보다 일찍 회복을 중단하는 것이 안전하지 않습니다. 거래 커밋의 해당 사례는 몇 년 전에 고정되었지만 이것은 간과되었습니다.
Walreceivers에서 오류 후 카탈로그 조회를 시도하지 마십시오 (Masahiko Sawada, Bharath Rupireddy)§
WAL이 도착하기를 기다리는 동안 대기 서버의 시작 프로세스가 셧다운 신호에 즉시 응답 할 수 있는지 확인하십시오 (Fujii Masao, Soumyadeep Chakraborty)§
트랜잭션 커밋 그룹 (Amit Kapila)의 구성원이되지 않은 후 공유 상태를 정확하게 지우십시오.§
올바른 타이밍이 주어지면 나중에 일부 세션이 동일한 PGPROC 객체를 재사용 할 때 어설 션 실패를 유발할 수 토토 사이트.
다른 프로세스에서 동시 쓰기에 직면하여 잘못된 Relmapper 데이터를 읽지 않도록 잠금 추가 (Heikki Linnakangas)§ §
병렬 BTREE INDEX 빌드의 정렬 단계에 대한 진행보고 개선 (Matthias van de Meent)§
복제 프로토콜 위반에 대한 점검 개선 (Tom Lane)§
논리적 복제 작업자는 자주 사용하여 어설 션을 사용하여 유효하지 않거나 주문 외 복제 명령으로 유발 될 수있는 사례를 확인합니다. 이것은 현명하지 않은 것처럼 보이므로 이러한 테스트를 정기 오류 확인으로 홍보합니다.
다수의 논리적 복제 작업자가 같은 테이블 (Peter Smith, Haiying Tang)을 자르려고 할 때 교착 상태를 고정합니다.§
오류 후 유효하지 않은 레코드 유형 해시 테이블 항목을 남기지 마십시오 (Sait Talha Nisanci)§
이것은 나중에 충돌 또는 메모리 누출로 이어질 수 있습니다.
수정 계획 캐시 참조 누출 일부 일부 오류 사례테이블 생성 ... execute
(Tom Lane)§
병렬 작업자 (Thomas Munro)에서 튜플 디스크립터를 공유하기위한 코드의 레이스 조건 수정§
올바른 타이밍이 주어지면 충돌이 발생할 수 토토 사이트.
배경 노동자들을 출시 할 때 가능한 레이스 조건 수정 (Tom Lane)§
이것은 인텔 하드웨어에서 관찰 가능한 버그를 수정하지는 않지만 메모리 순서 규칙이 약한 머신에 문제가있을 수 있습니다.
정렬 코드 (Ronan Dunklau)에서 잠재적 인 충돌을 수정합니다.§ §
하나의 코드 경로는 널 포인터를 제거하려고 시도 할 수 토토 사이트. 핵심 서버의 정렬 사용에서는이 사례가 도달 할 수없는 것으로 보이지만 확장에 의해 트리거 될 수 토토 사이트.
SP-Gist 인덱스 삽입에서 무한 루프 방지 (Tom Lane)§
열이 포함 된 경우 잎 지수 튜플이 페이지에 맞지 않도록 충분한 공간을 차지하는 경우 Text_ops 연산자 클래스는 튜플을 맞추려고 무한 루프로 들어갑니다. Pre-V11 버전에는 열이 포함되어 있지 않지만 운영자 클래스의 버그에 대한 좋은 방어처럼 보이기 때문에이 방지 방지 수정 방지 수정 사항을 다시 배치합니다..
쿼리 취소 요청으로 SP-Gist 인덱스 삽입을 종료 할 수 있는지 확인하십시오 (Tom Lane, Álvaro Herrera)§ §
원인을 유발할 수있는 비 초기의 변수 버그 수정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)§ §
수정Contrib/Postgres_FDW
생성 된 열 (Etsuro Fujita)과 유용하게 작업하려면§
postgres_fdw
이제 외국 테이블의 생성 된 열이 원격 테이블의 생성 된 열을 나타내는 한 생성 된 열로 합리적으로 작동합니다.외국 스키마 가져 오기
이제 기본적으로 생성 된 열을 그런 식으로 가져옵니다.
inContrib/Postgres_FDW
, 오류 후 카탈로그 조회를 시도하지 마십시오 (Tom Lane)§
이것은 일반적으로 작동하지만 오류가 카탈로그에 액세스하지 못한 오류 일 수 있기 때문에 그다지 안전하지 않습니다. 수정의 부작용은 데이터 변환 오류에 대한 메시지가 이제 외국 테이블 또는 열의 실제 기본 이름이 아닌 쿼리 테이블 및 열 별칭 (사용 된 경우)을 언급한다는 것입니다.
격리 테스트 인프라 향상 (Tom Lane, Michael Paquier)§ § § § § § §
예상 완료 순서를 표시하도록 격리 테스트 단계에 주석을 달 수 있도록합니다. 이를 통해 레이스 조건을 막기 위해 이전에 사용한 (완전히 성공적으로 성공적이지는 않음) 지연없이 다른 비율 테스트 사례로부터 안정적인 결과를 얻을 수 있습니다.“드라이 런”모드. 분리기 자체에서 메모리 누출을 제거하십시오.
캐시 클로버 테스트의 오버 헤드 감소 (Tom Lane)§
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
및Install-World-bin
(Andrew Dunstan)§ §
이들은와 동일합니다.World
및설치 세계
문서를 빌드하거나 설치하지 않는 한 각각.
탭 테스트에 대한 규칙 만들기 (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)§ §