출시 날짜 :2022-08-11
이 토토 핫에는 14.4의 다양한 수정 사항이 포함되어 있습니다. Major Release 14의 새로운 기능에 대한 정보는 참조섹션 E.18.
14.x.를 실행하는 사람들에게는 덤프/복원이 필요하지 않습니다.
그러나 14.4 이전 버전에서 업그레이드하는 경우 참조하십시오.섹션 E.14.
확장 스크립트가 확장자에 속하지 않는 개체를 교체하지 마십시오 (Tom Lane)§
이 변경 사항은 확장 스크립트가 수행하는 것을 방지합니다생성 또는 교체
확장자에 속하지 않는 기존 객체가있는 경우. 또한 방지존재하지 않으면 생성
같은 상황에서. 이는 적대적인 데이터베이스 사용자가 확장 객체의 소유자가 될 수있는 트로이 목마 공격의 형태를 방지 한 다음 다른 사용자의 향후 객체 사용을 손상시키기 위해 수정합니다.
토토 핫Project Sven Klemm이 문제를보고 해 주셔서 감사합니다. (CVE-2022-2625)
재생 수정데이터베이스 생성
대기 서버에 대한 WAL 레코드 (Kyotaro Horiguchi, Asim R Praveen, Paul Guo)§ § § §
대기 서버는 데이터베이스 생성 WAL 레코드를 재생할 때 테이블 스페이스 디렉토리 누락이 발생할 수 있습니다. 이 패치 전에 대기는 그러한 경우에 복구되지 않을 것입니다.
지원“장소”테이블 스페이스 (Thomas Munro, Michael Paquier, Álvaro Herrera)§ § §
일반적으로 Postgres 테이블 스페이스는 다른 파일 시스템의 디렉토리에 대한 상징적 링크입니다. 이 변경으로 인해 일반 디렉토리가 될 수 있습니다.데이터베이스 생성
재생 수정, 일시적으로 누락 된 테이블 스페이스를 A로 생성합니다“장소”테이블 스페이스.
수정 권한 수표 in색인 생성
(Nathan Bossart, Noah Misch)§
CVE-2022-1552에 대한 수정 원인색인 생성
이전에 호출 사용자의 권한을 사용한 운영자 클래스 및 기타 객체 조회를 수행하는 동안 테이블 소유자의 권한을 적용하려면 테이블 소유자의 권한을 적용합니다. 이것은 덤프/복원 시나리오를 깨뜨 렸습니다. 왜냐하면pg_dump문제색인 생성
다시 부여하기 전.
확장 쿼리 프로토콜토토 핫 즉시 커밋을 강제로데이터베이스 생성
및 트랜잭션 블록 (Tom Lane)토토 핫 실행할 수없는 기타 명령§
클라이언트가 해당 명령 직후에 동기화 메시지를 보내지 않고 대신 다른 명령을 보내는 경우 해당 명령의 실패는 이전 명령을 롤백하여 일관되지 않은 상태 온 디스크 (예 : 누락 또는 추가 데이터베이스 디렉토리)를 남깁니다. 그 상황을 방지하기위한 메커니즘은 간단한 메시지에서 여러 명령에 대해 작동하지만 일련의 확장 프로토콜 메시지에는 그렇지 않습니다.
트랜잭션 가시성을 확인할 때 레이스 조건 수정 (Simon Riggs)§
TransactionIdisinProgress
보고 할 수 있습니다false
주제 거래가 눈에 보이는 것으로 간주되기 전에 다양한 오작동으로 이어집니다. 레이스 조건 창은 일반적으로 매우 좁지 만 동기식 복제를 사용하는 것이 훨씬 더 넓어집니다. 동기 복제 대기가 해당 창토토 핫 발생하기 때문입니다.
비 탑 레벨 세트 리턴 링 함수 (Richard Guo, Tom Lane)가 포함 된 표현식으로 정렬 할 때 잘못된 계획을 수정합니다.§ §
확장 통계에 대한 잘못된 권한 확인 코드 (Richard Guo)§
사용자가 부분 만있는 테이블에 통계가 확장 된 경우select
권한에 대한 권한, 일부 쿼리는에 실패합니다.“인식되지 않은 노드 유형”오류.
부울 값 표현식 (Tom Lane)에 대한 MCV 유형 통계를 처리하기위한 확장 통계 기계 수정.§
Statistics Collection은 잘 작동했지만 그러한 표현이 포함 된 쿼리여기서
“알 수없는 조항 유형”.
플래너 코어 덤프 방지
Clauses는 MCV 유형 확장 통계가있을 때의 조항상수
= Any (배열
)배열
가변 (Tom Lane)§ §
수정Alter Table ... 트리거 활성화/비활성화
분할 된 테이블의 트리거에 대한 재귀를 올바르게 처리하려면 (Álvaro Herrera, Amit Langote)§ §
어떤 경우에는 a“트리거가 존재하지 않습니다”실패는 명령이 아동 파티션토토 핫 트리거를 조정하려고 시도하기 때문에 발생합니다.
취소 허용분석
확장 통계를 컴퓨팅하는 동안 (Tom Lane, Justin Pryzby)§
통계 대상이 높은 일부 시나리오토토 핫는 랜치 셀 수없는 정렬 작업토토 핫 몇 초를 소비 할 수있었습니다.
유형에 대한 구문 오류 메시지 향상JSONPATH
(Andrew Dunstan)§
pg_stop_backup ()
세션 상태를 제대로 정리합니다 (Fujii Masao)§
이 누락은 세션 후반에 주장 실패 또는 충돌로 이어질 수 있습니다.
수정trim_array ()
제로 차원 배열 인수를 처리하려면 Sanely (Martin Kalcher)§
고정 Alias Matching in 수정[키] 업데이트/공유.
Clauses (Dean Rasheed)§
코너의 경우 오도 오류 가보고 될 수 있습니다.
거부row ()
표현 및 기능From
열이 너무 많습니다 (Tom Lane)§ §
약 1600 개의 열이 약 1600 개가 넘는 사례는 지원되지 않으며 항상 실행에 실패했습니다. 그러나 일부 초기 코드는 32k 이상의 열이있는 쿼리로 어설 션 실패 또는 충돌로 이어질 수 있습니다.
함수를 사용하여 뷰의 덤프 수정From
뷰가 만들어진 후 복합 유형의 열이 삭제 된 경우 복합 유형을 반환합니다 (Tom Lane)§
이 감독은 덤프/다시로드 또는로 이어질 수 있습니다.pg_upgrade덤핑 된보기에 기능에 대해 너무 많은 열 별명을 갖기 때문에 실패.
논리적 복제 Walsenders (Fujii Masao)토토 핫 중첩 백업 작업을 허용하지 않습니다.§
논리적 복제 가입자 (Hou Zhijie)에서 메모리 누출 수정§
대상 테이블이 분할 될 때 (Shi Yu, hou Zhijie)에 대한 논리 복제의 복제 아이덴티티 검사 수정§ §
아동 파티션에 대해서는 복제 아이덴티티 열을 재 식별해야합니다.
Publisher (Shi Yu, Hou Zhijie)의 스키마 변경 후 논리적 복제 가입자로 캐시 된 스키마 데이터를 업데이트하는 실패 수정§ §
올바르게 처리하려면 WAL 일관성 검사 논리 수정brin_evacuate_page
플래그 (Haiyang Wang)§ §
공유 해시 가능 관리 (Thomas Munro)에서 잘못된 어설 션 검사 수정§
어설 션 실패를 피하십시오min_dynamic_shared_memory
is set to a non-default value (Thomas Munro)§
커밋 타임 오류 후 정리 준비spi_commit ()
, 발신자가 그렇게하기를 기대하는 대신 (Peter Eisentraut, Tom Lane)§ §
적절한 청소는 복잡하고 저수준 시설을 사용해야하므로 알려진 발신자가 제대로 얻지 못한다는 것은 놀라운 일이 아닙니다. 이로 인해 PL 절차가 발행되었을 때커밋
그러나 실패가 발생했습니다 (예 : 지연된 제약 조건 검사). 문제를 개선하려면 재정의spi_commit ()
새 거래를 시작하여SPI_COMMIT_AND_CHAIN ()
이전 트랜잭션의 특성을 보존하는 대신 기본 트랜잭션 특성을 얻는 것을 제외하고. 이것을 다소 투명한 API로 만들려면 redefineSPI_START_TRANSACTION ()
NO-OP로서. 알려진 모든 발신자spi_commit ()
즉시 전화SPI_START_TRANSACTION ()
, 변경 사항은 눈치 채지 못할 것입니다. 비슷한 발언이 적용spi_rollback ()
.
또한 PL/Python을 수정하여 이러한 오류의 처리를 전혀 생략하여 Python 통역사에서 뛰어 내립니다. 이것은 Python 3.11 충돌로보고됩니다.
개선libpq의 파이프 라인 모드토토 핫의 유휴 상태 처리 (Álvaro Herrera, Kyotaro Horiguchi)§ §
이것은 수정“메시지 유형 0x33은 서버토토 핫 도착했을 때 유휴 상태로 도착했습니다”경고, 그리고 가능한 종말 널 손실 결과pqgetresult ()
.
코어 덤프 방지ecpglib예상치 못한 운영 주문 (Tom Lane)§
와 같은 특정 작업Exec SQL 준비
데이터베이스 연결을 설정하기 전에 호출 된 경우 (예상대로 오류를보고하지 않고) 충돌합니다.
inecpglib, 중복 피하십시오Newlocale ()
전화 (Noah Misch)§ §
쿼리 당 한 번에 로케일 객체를 생성하고 자유롭게하지 않고 처음 연결할 때 프로세스 당 한 번 C 로케일 객체를 할당합니다. 이것은 AIX토토 핫 LIBC 메모리 누출을 완화하고 모든 곳토토 핫 성능 이점을 제공 할 수 있습니다.
inPSQL's\ watch
Command, Control-C (Pavel Stehule)로 취소 한 후 Newline을 반향합니다.§
이것은 커서가 어떤 칼럼에 있는지 혼란스러워지는 것을 방지합니다.
수정pg_upgrade업그레이드 할 수없는 기능의 사용법을 감지하려면AnyArray
(Justin Pryzby)§ §
버전 14는 일부 내장 기능을 유형을 취하도록 변경했습니다anycompatiblearray
대신AnyArray
. 이것은 대부분 투명하지만 사용자 정의 골재 및 이러한 기능 위에 내장 된 운영자는 정확히 일치하는 유형으로 선언해야합니다.pg_upgrade실패하므로 업그레이드를 시작하기 전에 그러한 사례를 감지하고보고하도록 변경하십시오.
이후 잘못된 오류 조건에 대한 가능한 보고서 수정clone ()
실패pg_upgradewith-클론
옵션 (Justin Pryzby)§
수정contrib/pg_stat_statements
32 비트 플랫폼 (Tom Lane)의 매우 큰 쿼리 텍스트 파일의 문제를 피하려면§
inContrib/Postgres_FDW
,있을 때 배치 삽입 방지확인 옵션
제약 (Etsuro Fujita)§
한 번에 하나 이상의 행이 삽입되면 이러한 제약 조건을 제대로 점검 할 수 없습니다.
수정Contrib/Postgres_FDW
비동기 데이터 전송 실패를 감지하려면 쿼리 쿼리 (Fujii Masao)§
Contrib/Postgres_FDW
상수를 보냅니다RegConfig
및 기타Reg*
적절한 스키마 자격이있는 유형 (Tom Lane)§
Linux (Thomas Munro)에 동적 공유 메모리를 할당하는 동안 신호를 차단합니다§ § §
신호가 방해 할 때 문제를 피합니다posix_fallocate ()
.
예상치 못한 감지eexist
오류shm_open ()
(Thomas Munro)§
이것은 Solaris토토 핫의 충돌 가능성을 피합니다.
사용하지 않으면signalfd ()
onIllumosSystems (Thomas Munro)§
이것은 교수형과 커널 패닉을 트리거하는 것처럼 보이므로 수정을 사용할 수있을 때까지 기능을 피하십시오.