출시 날짜 :2021-02-11
이 릴리스에는 12.5의 다양한 수정 사항이 포함되어 토토 결과. Major Release 12의 새로운 기능에 대한 정보는 참조섹션 E.23.
덤프/복원은 12.x.를 실행하는 사람들에게는 필요하지 않습니다.
그러나 아래 두 번째 및 세 번째 변경 항목을 참조하십시오. 아래 두 번째 및 세 번째 변경 항목은 업그레이드 후 다시 표시되는 인덱스가 권장 될 수있는 경우를 설명합니다.
또한 12.2 이전 버전에서 업그레이드하는 경우 참조섹션 E.21.
제약 범위 오류 메시지 (Heikki Linnakangas)의 정보 누출 수정§
IF an업데이트
명령은 행을 다른 파티션으로 이동하려고 시도하지만 새 파티션의 일부 제약 조건을 위반하고 해당 파티션의 열이 상위 테이블과 다른 물리적 위치에 있음을 발견하면 오류 메시지는 사용자가없는 열의 내용을 드러낼 수 토토 결과.select
특권 on. (CVE-2021-3393)
Gist Index (Heikki Linnakangas)에 삽입하는 동안 동시 페이지 분할의 잘못된 감지 수정§
동시 삽입은 잘못된 페이지에 항목이있는 손상된 인덱스로 이어질 수 토토 결과. 동시 삽입이 적용되는 GIST 지수를 다시 알리는 것이 좋습니다.
고정동시에 색인 생성
동시 거래 거래를 기다리려면 (Andrey Borodin)§
지점에서동시에 색인 생성
삽입 된 행을 볼 수 있도록 모든 동시 트랜잭션이 완료되기를 기다립니다. 또한 모든 준비된 트랜잭션이 완료 될 때까지도 같은 이유로 기다려야합니다. 그렇게하지 않으면 준비된 트랜잭션에 의해 삽입 된 행이 새 인덱스에서 생략 될 수 있음을 의미하므로 인덱스에 의존하는 쿼리가 그러한 행을 놓치게됩니다.max_prepared_transactions
> 0),이 문제가 구축 될 때 발생한 경우 동시에 제작 된 인덱스를 다시 알리는 것이 좋습니다.
A시 충돌을 피하십시오.Call
또는do
트랜잭션 롤백을 수행하는 명령문은 확장 쿼리 프로토콜 (Thomas Munro, Tom Lane)을 통해 실행됩니다.§
inPostgreSQL13,이 경우는 널 포인터 피해를 안정적으로 일으켰습니다. 이전 버전에서 버그는 눈에 띄는 증상이없는 것처럼 보이지만 문제가 발생할 수 없다는 것은 분명하지 않습니다.
비대칭 해시 파티션 세트 (Tom Lane)를 처리하기위한 파티션 치기 로직 수정§
해시 파티셔닝 테이블에 불평등하게 크기가 큰 파티션 (즉, 모듈러스 값이 다양하거나 일부 나머지 값에 대한 파티션이 부족한 경우 플래너의 가지 치기 로직이 실수로 스캔 될 필요가 없다고 결론을 내릴 수 토토 결과.
잘못된 결과를 피할 때현재의 전류
계획은 MergePend 노드 (Tom Lane)가 포함 된 커서에 적용됩니다.§
이 경우는 지원되지 않습니다 (일반적으로 커서를 사용하는 커서주문 by
단순히 업데이트 가능하지는 않습니다); 그러나 코드는 이전에 거부하지 않았으며 조용히 허위 경기를 할 수있었습니다.
CLACK을 수정하면현재의 전류
계획이 사용자 정의 스캔 노드 (David Geier)가 포함 된 커서에 적용됩니다.§
OUTER JOIN (Tom Lane)에 의해 평가를 지연시켜야하는 자리 표시 자의 플래너의 잘못 처리§
이것은 특히 외부 결합 출력에 대한 측면 참조를 포함하는 사소한 서브 쿼리와 함께 발생합니다. 실수로 인해 기형 계획이 생길 수 토토 결과.“노드를 계획하도록 모든 NestLoopParam을 할당하지 못했습니다”오류이지만 다른 증상은 가능할 수 토토 결과.
쓸모없는 결과 RTES (Tom Lane)를 제거하는 동안 플래너의 자리 표시 자 처리 수정§
이 감독은로 이어질 수 토토 결과.“Relid에 대한 관계 항목 없음N
”플래너 오류.
일부 조인 레벨에서 계산되고 동일한 레벨 (Tom Lane)에서만 사용되는 자리 표시자를 고치는 플래너의 처리 수정§
이 감독은로 이어질 수 토토 결과.“빌드에 실패N
-웨이 조인”플래너 오류.
인덱스 AMS가 Mark/Restore (Andrew Gierth)를 지원하는지 여부에 대해 더 조심하십시오§
이것은 희귀 한 가장자리 사례에서 누락 된 지원 기능에 대한 오류를 방지합니다.
병렬 쿼리를 많이 사용하는 동안 DSM 슬롯이 부족하기가 더 어려워 지도록 설정을 조정합니다 (Thomas Munro)§
병렬 쿼리에 필요한 공유 메모리의 양을 과대 평가합니다 (Takayuki Tsunakawa)§
고정기본 권한 변경
복제 된 인수를 안전하게 처리하려면 (Michael Paquier)§
동일한 명령 내의 중복 역할 또는 스키마 이름이로 이어질 수 있습니다.“튜플은 이미 자체적으로 업데이트 됨”오류 또는 고유 한 구속 위반.
플러시 ACL 관련 캐시시기pg_authid
Changes (Noah Misch)§
이 변경 사항은 권한 관련 결정이 즉시 결과를 반영 할 수 있도록합니다.변경 역할 ... [아니오] 상속
.
모호한 오해 방지테이블 생성
Clauses (Tom Lane)§
A Like
조항은 새 테이블의 초기 생성 후 인덱스 등의 가져 오기를 처리하기 위해 재검토됩니다. 이 재검토가 같은 이름의 다른 테이블을 찾아 예상치 못한 행동을 일으킬 수있었습니다.Like
대상.
재배치 작동 순서테이블 생성
따라서 외국의 주요 제약 조건 (Tom Lane)을 구축하기 전에 인덱스가 클로닝되도록합니다.§
이것은 외부에서 선언 된 자체 참조 외국 키 제약 조건이 사례를 해결합니다테이블 생성
에서 나오는 색인에 따라Like
절.
anallow통계 생성
시스템 카탈로그 (Tomas Vondra)§
상속 하위 테이블을보기로 변환하지 못함 (Tom Lane)§
삭제 된 관계에 할당 된 디스크 공간이 Commit (Thomas Munro)에서 즉시 릴리스되는지 확인하십시오.§
이전에, 삭제 된 관계가 여러 1GB 세그먼트에 걸쳐 있으면 첫 번째 세그먼트 만 즉시 잘 렸습니다. 다른 백엔드가 여전히 파일을 열어 놓는 한 커널이 스토리지를 해제 할 수있는 다른 세그먼트는 단순히 inke가 무제한이되었습니다.
파티션 된 관계에 의해 참조되는 테이블 스페이스를 삭제하는 방지하지만 실제 저장소 (Álvaro Herrera)에는 사용되지 않습니다.§
이전에는 허용되었지만 분할 된 관계에 대한 후속 작업은 실패합니다.
진행 상황에 대한 수정클러스터
(Matthias van de Meent)§
Backslash에 이루어진 멀티 바이트 문자의 취급 수정복사
(Heikki Linnakangas)§
백 슬래시와 멀티 바이트 문자가 올바르게 처리되지 않았습니다. 일부 클라이언트 문자 인코딩에서는 필드 분리기 또는 카피 종료 데이터 마커로서 멀티 바이트 문자의 일부를 잘못 해석 할 수 있습니다..
Preallocating Executor 해시 테이블을 피하십시오설명
없음분석
(Alexey Bashtanov)§
최근에 소개 된 레이스 조건 수정듣기
/Notify
대기열 처리 (Tom Lane)§
새로 실린 백엔드는 잘린 과정에있는 SLRU 페이지를 읽으려고 시도하여 오류가 발생할 수 토토 결과..
큐 테일 포인터는 백엔드의 대기열 위치와 같지 않은 값으로 설정 될 수있어 큐 자르기 로직을 효과적으로 비활성화 할 수 토토 결과. 지속적인 사용Notify
그런 다음 대기열 충전 경고로 이어졌고 결국 서버가 다시 시작될 때까지 더 이상 알림을 보낼 수 없습니다.
11848_11857JSONB
JSON 데이터 유형의 모든 조합을 처리하기위한 연결 연산자 (Tom Lane)§
우리는 2 개의 JSON 객체 또는 2 개의 JSON 어레이를 연결할 수 있습니다. 원소 배열에서 비 어선 입력을 감싸서 다른 케이스를 처리 한 다음 배열 연결을 수행합니다.
구문 분석하는 동안 초기화되지 않은 값의 사용 수정*
BRE 모드 정규 표현식 (Tom Lane)의 정량 자§
이 오류는 수량자가 비 게리를 행동하게 할 수 토토 결과.*?
Quantifier는 전체 정기 표현으로 수행 할 것입니다.
수정 숫자power ()
지수가 정확히있는 경우int_min
(-2147483648) (Dean Rasheed)§ §
이전에는 큰 자릿수가없는 결과가 생성되었습니다.
정수-오버 플로우 케이스 수정substring ()
기능 (Tom Lane, Pavel Stehule)§
지정된 시작 인덱스와 길이 오버플로가 함께 추가 될 때 정수를 오버플로하는 경우substring ()
잘못 행동, 가짜 던지기“음성 기판 길이”성공 해야하는 경우에 대한 오류 또는 음의 길이가 음수라고 불평하지 않으면 (대부분의 경우 전체 문자열을 반환하는 것)..
SLRU 로그 (Noah Misch)의 랩 어라운드 지점의 잘못된 탐지에서 데이터 손실이 잘못 방지하지 않습니다.§
랩 어라운드 포인트는 일반적으로 페이지 중간에 떨어지므로 페이지 경계로 반올림해야하며 올바르게 수행되지 않았습니다. Slru Overflow의 한 페이지 이내에 설치되지 않으면 문제가 발생하지 않을 수 토토 결과.“명백한 랩 어라운드”또는“거래 상태에 액세스 할 수 없음”오류.
논리 디코딩을위한 새로운 스냅 샷을 보내는 동안 Walsender 프로세스에서 메모리 누출 수정 (Amit Kapila)§
복제 종료 후 추가 명령을 수락하도록 Walsender를 수정 (Jeff Davis)§
핫 스탠드 비에 교착 상태와 스타트 업 (WAL-APPLICATION) 프로세스 (FUJII MASAO) 간의 교착 상태 감지 확인§
시작 프로세스가 교착 상태 감지 코드를 실행하지 않았으므로 시작 프로세스가 원형 대기 상황에 마지막으로 참여하는 상황에서 교착 상태를 인식하지 못할 수도 토토 결과.
핫 체인 (Peter Geoghegan)을 참조하는 인덱스 항목을 삭제하는 동안 복구 충돌을 감지하지 못하는 실패 수정§ §
코드는 핫 체인을 가로지 못해 너무 오래된 XID 지평을 계산할 수있어 핫 스탠드 비에서 충돌 처리가 잘못 될 수 토토 결과. 이 버그의 실제 영향은 제한적입니다.
비어 있지 않은 값KRB_SERVER_KEYFILE
항상 설정을 무시합니다KRB5_KTNAME
서버 환경 (Tom Lane)§
이전에 클라이언트가 GSS 암호화를 요청하는지 여부에 따라 어떤 설정이 발생했는지.
서버 로그 메시지에서 연결과 일치하지 않는 것에 대한 메시지pg_hba.conf
항목, GSS 암호화가 활성화되었는지 여부에 대한 세부 정보 포함 (Kyotaro Horiguchi, Tom Lane)§
이것은 관련 데이터입니다.hostgssenc
또는hostnogssenc
출품작이 토토 결과.
GSS 암호화에 대한 서버의 지원에서 분류 된 문제 수정 (Tom Lane)§
GSS 인증 된 연결에서 GSS 인증 만 사용할 수 있다는 무의미한 제한 제거를 제거하십시오. 연결 로그 메시지에 GSS 암호화 정보를 추가하십시오.max_connections
설정). 복귀 할 수없는 GSS 암호화 오류를보고 할 때 가능한 무한 재귀를 피하십시오.
포스트 마스터가 시작할 때 배경 근로자에 대한 서비스 요청이 정리되는지 확인하십시오“스마트”또는“빠른”종료 시퀀스 (Tom Lane)§
이전에, 셧다운 직전에 배경 근로자를 요청한 아동 프로세스가 무기한으로 기다릴 수있어 셧다운이 완료되는 것을 막을 수있는 인종 조건이있었습니다..
구문 분석시 휴대 성 문제 수정복구 _target_xid
값 (Michael Paquier)§
대상 XID의 폭은 64 비트이지만strtoul ()
, 플랫폼에서 오작동을 일으키는Long
32 비트 (예 : Windows).
독립형 백엔론 (Yulin PEI)에서 병렬 인덱스 빌드를 사용하지 마십시오§
인덱스 AMS가 여러 키 열 (Tom Lane)을 지원하지 않고 포함 된 열을 지원하도록 허용§
비 강력한 사막화 기능 (Andrew Gierth)과의 집계의 병렬 집계 중에 어설 션 실패를 피하십시오§
그러한 집계 함수는 핵심에 존재하지 않습니다PostgreSQL그러나 PostGIS와 같은 일부 확장은 일부를 제공합니다. 어쨌든 어쨌든 실수는 무해합니다.
어설 션 실패 방지pg_get_functionDef ()
a의 함수를 검사 할 때변환
옵션 (Tom Lane)§
PL/PGSQL의 데이터 구조 잘못 할당Call
성명서 (Tom Lane)§ §
A Call
pl/pgsql 절차에서, 매개 변수가없는 다른 절차에 따라, 호출 된 절차가 a에 실패 할 것입니다.커밋
또는롤백
.
inlibpq, GSS 암호화 후 SSL을 건너 뛰지 마십시오 (Tom Lane)§
GSS 암호화 연결을 성공적으로 수행했지만 인증 중에 실패하면 SSL 암호화 된 연결을 시도하지 않고 암호화되지 않은 연결로 돌아갑니다. 이로 인해 예기치 않은 연결 고장이 발생하거나 암호화 된 연결이 예상되는 경우 암호화되지 않은 연결을 조용히 얻을 수 토토 결과.
inPSQL, a에 암호를 포함하는 재구성Connection_string
A의 주장\ connect
명령 (Tom Lane)§
이것은 작동하는 데 사용되었지만 최근의 버그 수정으로 암호를 무시했습니다 (암호를위한 프롬프트).
inPSQL's\ d
명령, 열 기본값 표시 (Tom Lane)의 표시를 절단하지 마십시오.§
이전에 그들은 128 자로 임의로 자랐습니다.
다양한 버그 수정PSQL's\ help
Command (Kyotaro Horiguchi, Tom Lane)§
\ help
두 개의 인수 단어가있는 단어가있는 첫 번째 단어 만 사용하여 명령 설명을 찾지 못했습니다.\ help reset all
도움을 주어야합니다Reset
그러나 그렇지 않았습니다. 또한,\ help
종종 호출기를 호출하지 못했습니다. 메모리가 유출되었습니다.
고정pg_dump의 상속 된 생성 열의 덤핑 (Peter Eisentraut)§
이전 동작은 복원 중에 (무해한) 오류가 발생했습니다.
inpg_dump, 복원 스크립트가 실행되는지 확인발행물 변경 테이블
출판물의 소유자로 명령을 내리고 비슷하게 실행Alter Index 첨부 파티션
분할 된 인덱스의 소유자로 명령 (Tom Lane)§ §
이전 에이 명령은 복원 스크립트를 시작한 역할에 의해 실행됩니다. 일반적으로 효과가 있지만 코너의 경우 그 역할이 적절한 권한이 없을 수도 있습니다.
고정pg_dump처리 할보조금 옵션
Extension의 초기 권한 (Noah Misch)에서§
Extension의 스크립트가 객체를 생성하고 Grant 옵션을 사용하여 권한을 부여하면 나중에 사용자는 그러한 권한을 취소합니다.pg_dump상황을 재현하기위한 잘못된 SQL을 생성합니다. (확장이 오늘이 일을하는 경우는 거의 없습니다.)
inpg_rewind, 대기 서버를 되 감을 때 모든 WAL이 설명되어 있는지 확인하십시오 (Ian Barwick, Heikki Linnakangas)§ § §
inpgbench, 변수 이름 (Fabien Coelho)의 첫 번째 문자로 숫자를 허용하지 않습니다.§
이것은 변수를 타임 스탬프 리터럴 값으로 대체하는 것을 방해하지 않으며, 여기에는 문자열이 포함될 수 토토 결과12 : 34
.
일부 클라이언트 프로그램 (Álvaro Herrera)의 실패 오류 메시지에 대한 올바른 데이터베이스 이름보고§
명령 줄에 주어지지 않고 데이터베이스 이름이 기본값 인 경우pg_dumpall, pgbench, oid2name및Vacuumlo연결 고장 후 오도 오류 메시지를 생성합니다.
메모리 누출 수정Contrib/Auto_explain
(Japin Li)§
생산 중에 소비 된 메모리설명
현재 트랜잭션이 끝날 때까지 (최상위 명세서의 경우) 또는 주변 문의 끝 (중첩 진술)이 끝날 때까지 출력이 해제되지 않았습니다. 이것은 특히의 문제였습니다.log_nested_statements
활성화.
inContrib/Postgres_FDW
, 사용자 맵핑 또는 외국 서버 개체가 삭제 될 때 원격 서버에 열린 연결을 누출하지 마십시오 (Bharath Rupireddy)§
삭제 된 사용자 매핑 또는 외국 서버에 의존하는 열린 연결은 더 이상 참조 할 수 없지만 이전에는 로컬 세션 기간 동안 계속 유지되었습니다.
inContrib/Pgcrypto
, OpenSSL의 EVP 함수 (Michael Paquier)에서 오류 반환을 확인하십시오§
우리는 여기서 오류를 기대하지는 않지만 정적 분석 도구의 경고를 침묵시킵니다.
만들기contrib/pg_prewarm
더 강력한 클러스터가 완료되기 전에 클러스터가 종료 될 때 더 강력합니다 (Tom Lane)§
이전에 AutoPrewArm은 지금까지로드 할 수있는 블록 번호만으로 상태 파일을 다시 작성하여 다음 시작에서 Prewarm 기능을 비활성화 할 수 있습니다. 대신, 초기로드 패스가 완료 될 때까지 상태 파일 업데이트를 억제합니다.
inContrib/PG_TRGM
의 GIST 지수 지원, 픽 스플릿이 정확히 두 개의 색인 항목 (Andrew Gierth, Alexander Korotkov)에서 호출되는 드문 경우 충돌을 피하십시오.§
타임 아웃의 오해 수정contrib/pg_prewarm
및Contrib/Postgres_FDW
(Alexey Kondratov, Tom Lane)§
메인 루프의contrib/pg_prewarm
의 autoprewarm 부모 프로세스는 원하는 수면 시간을 1000 배로 과소 평가하여 의도 한 것보다 훨씬 더 많은 CPU를 소비하게했습니다. 원격 서버에서 결과를 기다릴 때Contrib/Postgres_FDW
원하는 시간 초과를 1000 배로 과대 평가했습니다 (이 오류는 클램프를 60 초로 부과하여 완화되었습니다)..
이 오류는 초 초와 마이 크로코 컨드를 밀리 초로 잘못 변환하는 데 비롯된 것입니다. 새로운 API 소개TimestAmpDifferencemilliseconds ()
미래에 이것을 쉽게 얻을 수 있도록합니다.
개선구성's 선택에 대한 휴리스틱PG_SYSROOT
ON MACOS (Tom Lane)§ §
새로운 방법은 Xcode가 기본 운영 체제보다 새롭고 바람직한 결과를 생성 할 가능성이 더 높습니다. OS 버전과 일치하지 않는 Sysroot를 선택하면 기능이없는 실행 파일이 발생할 수 토토 결과.
MACOS를 구축하는 중-isysroot
링크 단계뿐만 아니라 컴파일 단계 (James Hilliard)§
Xcode가 운영 체제와 동기화되지 않은 경우 결과를 향상시킵니다.
JIT 표현 컴파일 (Andres Freund)의 부울 변수에 대한 참조에 대한 잠재적 인 잘못 처리 수정§
이것에 기인 한 필드 보고서는 보이지 않았지만 일부 아키텍처에서 문제를 일으킬 수있을 것 같습니다.
ICU 68 이상으로 컴파일 고장 수정 (Tom Lane)§
피하기memcpy ()
분할 된 인덱스 생성 (Álvaro Herrera) 중 널 소스 포인터 및 0 카운트가있는§
그러한 전화는 그 자체로 문제를 일으키는 것으로 알려져 있지 않지만 일부 컴파일러는의 주장이를 가정합니다.memcpy ()
NULL이 아니기 때문에 근처 코드를 잘못 최적화 할 수 토토 결과.
시간대 데이터 파일 업데이트TZDATA러시아의 DST 법률 변경 및 남 수단의 DST 법률 변경, 호주, 바하마, 벨리즈, 버뮤다, 가나, 이스라엘, 케냐, 나이지리아, 팔레스타인, 세이 셀 및 바누아의 역사적 교정을위한 릴리스 2021a. (Tom Lane)§
특히 호주/Currie Zone은 호주/호바트와 동일한 지점으로 수정되었습니다.