이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

E.17. 릴리스 12.6

출시 날짜 :2021-02-11

이 릴리스에는 12.5의 다양한 수정 사항이 포함되어 있습니다. Major Release 12의 새로운 기능에 대한 정보는 참조토토 사이트 PostgreSQL : 문서 : 12 : E.23. 릴리스 12.

E.17.1. 버전으로의 마이그레이션 12.6

12.x.를 실행하는 사람들에게는 덤프/복원이 필요하지 않습니다.

그러나 아래 두 번째 및 세 번째 변경 항목을 참조하십시오. 아래의 두 번째 및 세 번째 변경 항목은 업그레이드 후 고령 인덱스가 권장되는 경우를 설명합니다.

또한 12.2 이전 버전에서 업그레이드하는 경우 참조토토 핫 PostgreSQL : 문서 : 12 : E.21. 릴리스 12.2.

E.17.2. 변화

  • 제약 범위 오류 메시지 (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)를 처리하기위한 파티션 치기 로직 수정§

    해시 분수 테이블에 불평등하게 크기가 큰 파티션 (즉, 변모 값이 다양하거나 나머지 값에 대한 파티션이 부족한 경우 플래너의 가지 치기 로직이 실수로 스캔 될 필요가 없다고 결론을 내릴 수 있습니다.

  • 잘못된 결과를 피하십시오현재의 전류계획이 Mergeappend 노드 (Tom Lane)가 포함 된 커서에 적용됩니다.§

    이 경우는 지원되지 않습니다 (일반적으로 커서를 사용하는 커서주문 by단순히 업데이트 가능하지는 않습니다); 그러나 코드는 이전에 거부하지 않았으며 조용히 허위 경기를 할 수있었습니다.

  • CORCH CRASH를 수정하면현재의 전류계획이 사용자 정의 스캔 노드 (David Geier)가 포함 된 커서에 적용됩니다.§

  • OUTER 조인 (Tom Lane)에 의해 평가를 지연시켜야하는 자리 표시 자의 플래너의 잘못 처리§

    이것은 특히 외부 결합 출력에 대한 측면 참조를 포함하는 사소한 서브 쿼리와 함께 발생합니다. 실수로 인해 기형 계획이 생길 수 있습니다. 알려진 사례는 a를 유발합니다.노드를 계획하도록 모든 NestLoopParam을 할당하지 못했습니다오류이지만 다른 증상은 가능할 수 있습니다.

  • 쓸모없는 결과 RTES (Tom Lane)를 제거하는 동안 플래너의 자리 표시 자 처리 수정§

    이 감독은로 이어질 수 있습니다.Relid에 대한 관계 항목 없음n플래너 오류.

  • 일부 조인 레벨에서 계산되고 동일한 레벨 (Tom Lane)에서만 사용되는 자리 표시자를 고치고 자리 표시자를 수정하십시오.§

    이 감독은로 이어질 수 있습니다어떤 구축에 실패했습니다n-웨이 조인플래너 오류.

  • 인덱스 AMS가 Mark/Restore (Andrew Gierth)를 지원하는지 여부에 대해 더 조심하십시오§

    이것은 희귀 한 가장자리 사례에서 누락 된 지원 기능에 대한 오류를 방지합니다.

  • 병렬 쿼리를 많이 사용하는 동안 DSM 슬롯이 더 어려워 지도록 설정을 조정합니다 (Thomas Munro)§

  • 병렬 쿼리에 필요한 공유 메모리의 양을 과대 평가합니다 (Takayuki Tsunakawa)§

  • 수정기본 권한 변경복제 된 인수를 안전하게 처리하려면 (Michael Paquier)§

    동일한 명령 내의 중복 역할 또는 스키마 이름이로 이어질 수 있습니다.튜플은 이미 self오류 또는 고유 한 구속 위반.

  • 플러시 ACL 관련 캐시시기pg_authidChanges (Noah Misch)§

    이 변경 사항은 권한 관련 결정이 즉시 결과를 반영 할 수 있도록합니다.변경 역할 ... [아니오] 상속.

  • 모호한 오해 방지테이블 생성Clauses (Tom Lane)§

    a좋아요Clause는 새로운 테이블의 초기 생성 후 인덱스 등의 가져 오기를 처리하기 위해 재검토됩니다. 이 재검토가 같은 이름의 다른 테이블을 찾아 예상치 못한 행동을 일으킬 수있었습니다. 한 예는 새 테이블이와 같은 이름의 임시 테이블 인 곳입니다.Like대상.

  • 작업 순서 순서와이즈 토토테이블 생성따라서 외국의 주요 제약 조건 (Tom Lane)을 구축하기 전에 인덱스가 클로닝되도록합니다.§

    이것은 외부에서 선언 된 자체 참조 외국 키 제약 조건이 사례를 수정합니다테이블 생성|좋아요절.

  • anallow통계 생성시스템 카탈로그 (Tomas Vondra)§

  • 15485_15555§

  • 삭제 된 관계에 할당 된 디스크 공간이 Commit (Thomas Munro)와이즈 토토 즉시 릴리스되는지 확인하십시오.§

    이전에, 삭제 된 관계가 다수의 1GB 세그먼트에 걸쳐 있으면 첫 번째 세그먼트 만 즉시 잘 렸습니다. 다른 백엔드가 여전히 파일을 열어 놓는 한 커널이 스토리지를 해제 할 수있는 다른 세그먼트는 단순히 inke가 무제한이되었습니다.

  • 분할 된 관계에 의해 참조되는 테이블 스페이스를 삭제하는 방지하지만 실제 저장소 (Álvaro Herrera)에 사용되지 않습니다.§

    이전에는 허용되었지만 분할 된 관계에 대한 후속 작업은 실패 할 것입니다.

  • 진행 상황에 대한 수정클러스터(Matthias van de Meent)§

  • Backslash에서 escaped multibyte 문자의 취급 수정COPY From(Heikki Linnakangas)16999_17002

    백 슬래시와 멀티 바이트 문자가 올바르게 처리되지 않았습니다. 일부 클라이언트 문자 인코딩에서는 필드 분리기 또는 카피 종료 데이터 마커로서 멀티 바이트 문자의 일부를 잘못 해석 할 수 있습니다..

  • Preallocating Executor 해시 테이블을 피하십시오설명없음분석(Alexey Bashtanov)§

  • 최근에 소개 된 레이스 조건 수정듣기/Notify대기열 처리 (Tom Lane)§

    새로 실린 백엔드는 잘린 과정에있는 SLRU 페이지를 읽으려고 시도하여 오류가 발생할 수 있습니다..

    대기열 테일 포인터는 백엔드의 큐 위치와 같지 않은 값으로 설정 될 수있어 큐 자르기 로직을 ​​효과적으로 비활성화 할 수 있습니다. 지속적인 사용Notify그런 다음 대기열 충전 경고로 이어졌고 결국 서버가 다시 시작될 때까지 더 이상 알림을 보낼 수 없습니다.

  • 허용JSONBJSON 데이터 유형의 모든 조합을 처리하기위한 연산자 (Tom Lane)§

    우리는 2 개의 JSON 객체 또는 2 개의 JSON 어레이를 연결할 수 있습니다. 원소 배열에서 비 어선 입력을 감싸서 다른 케이스를 처리 한 다음 배열 연결을 수행합니다. 이전에는 일부 입력 조합 이이 규칙을 따랐지만 다른 입력 조합은 임의로 오류를 던졌습니다..

  • 구문 분석하는 동안 비 초기 값의 사용 수정*BRE 모드 정규 표현식의 정량 자 (Tom Lane)§

    이 오류는 수량자가 비 게리를 행동하게 할 수 있습니다.*?Quantifier는 정규 표현식으로 할 것입니다.

  • 수정 숫자power ()지수가 정확히있는 경우int_min(-2147483648) (Dean Rasheed)§ §

    이전에, 큰 숫자가없는 결과가 생성되었습니다.

  • Integer-Overflow Cases insubstring ()기능 (Tom Lane, Pavel Stehule)§

    지정된 시작 인덱스와 길이가 함께 추가 될 때 정수를 오버플로하는 경우substring ()잘못 행동, 가짜 던지기음성 기판 길이성공 해야하는 경우에 대한 오류 또는 음의 길이가 음수라고 불평하지 않고 (대부분의 경우 전체 문자열을 반환하는 것)..

  • SLRU 로그 (Noah Misch)의 랩 어라운드 지점을 잘못 감지하여 데이터 손실이 잘못 방지하지 않음§

    랩 어라운드 포인트는 일반적으로 페이지 중간에 떨어지므로 페이지 경계로 반올림해야하며 올바르게 수행되지 않았습니다. Slru Overflow의 한 페이지 이내에 설치되지 않으면 문제가 발생하지 않을 수 있습니다. 이런 일이 발생하면 나중에 나타날 것입니다명백한 랩 어라운드또는거래 상태에 액세스 할 수 없음오류.

  • 논리적 디코딩을위한 새로운 스냅 샷을 보내는 동안 Walsender 프로세스에서 메모리 누출 수정 (Amit Kapila)§

  • 복제 종료 후 추가 명령을 수락하도록 Walsender를 수정 (Jeff Davis)§

  • 핫 스탠드 비지적인 백엔드와 스타트 업 (WAL-APPLICATION) 프로세스 (FUJII MASAO) 사이의 교착 상태 감지 확인§

    시작 프로세스는 교착 상태 감지 코드를 실행하지 않았으므로 시작 프로세스가 원형 대기 상황에 마지막으로 참여하는 상황와이즈 토토 교착 상태를 인식하지 못할 수도 있습니다.

  • Hot Chain (Peter Geoghegan)을 참조하는 인덱스 항목을 삭제하는 동안 복구 충돌을 감지하는 실패 수정§ §

    코드는 핫 체인을 가로지 못해서 너무 오래된 XID 지평을 계산할 수있어 핫 스탠드와이즈 토토 잘못된 충돌 처리로 이어질 수 있습니다. 이 버그의 실제 영향은 제한적입니다. 대부분의 경우 올바른 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 암호화 정보를 추가하십시오. 필요한 공유 메모리의 크기를 계산할 때 GSS 관련 공간 포함 (이 누락은 매우 높은 문제를 일으킬 수 있습니다max_connections설정). 복귀 할 수없는 GSS 암호화 오류를보고 할 때 가능한 무한 재귀를 피하십시오.

  • 포스트 마스터가 시작할 때 배경 근로자에 ​​대한 서비스 요청이 정리되는지 확인하십시오스마트또는빠른종료 시퀀스 (Tom Lane)§

    이전에, 셧다운 직전에 배경 근로자를 요청한 아동 프로세스가 무기한으로 기다릴 수있어 셧다운이 완료되는 것을 막을 수있는 인종 조건이있었습니다..

  • 구문 분석시 휴대 성 문제 수정복구 _target_xid값 (Michael Paquier)§

    대상 XID의 폭은 64 비트이지만strtoul ()Long32 비트 (예 : Windows).

  • 독립형 백엔론 (Yulin PEI)에서 병렬 인덱스 빌드를 사용하지 마십시오§

  • 인덱스 AMS가 여러 키 열 (Tom Lane)을 지원하지 않고 포함 된 열을 지원하도록 허용§

  • 비 강력한 탈소 화 기능 (Andrew Gierth)과의 집계의 병렬 집계 중에 어설 션 실패를 피하십시오§

    그러한 집계 함수는 핵심에 존재하지 않습니다PostgreSQL그러나 Postgis와 같은 일부 확장은 일부를 제공합니다. 어쨌든 어쨌든 실수는 무해합니다.

  • 어설 션 실패 방지pg_get_functionDef ()a의 함수를 검사 할 때변환옵션 (Tom Lane)§

  • PL/PGSQL의 데이터 구조 잘못 할당Statement (Tom Lane)§ §

    aPL/PGSQL 프로 시저와이즈 토토, 매개 변수가없는 다른 절차로, 호출 된 프로 시저가 a에 실패 할 것입니다.커밋또는롤백.

  • inlibpq, GSS 암호화 후 SSL을 건너 뛰지 마십시오 (Tom Lane)§

    GSS 암호화 연결을 성공적으로 수행했지만 인증 중에 실패하면 SSL 암호화 된 연결을 시도하지 않고 암호화되지 않은 연결로 돌아갑니다. 이로 인해 예기치 않은 연결 고장이 발생하거나 암호화 된 연결이 예상되는 경우 암호화되지 않은 연결을 조용히 얻을 수 있습니다. 다행히도 GSS 암호화는 클라이언트와 서버가 동일한 Kerberos 인프라와이즈 토토 유효한 티켓을 보유한 경우에만 성공할 수 있습니다. 대신 SSL 암호화가 필요한 환경와이즈 토토 그것이 사실이 될 것 같지 않습니다.

  • inPSQL, a에 암호를 포함하는 재구성Connection_stringA의 주장\ connect명령 (Tom Lane)§

    이것은 작동하는 데 사용되었지만 최근의 버그 수정으로 암호를 무시했습니다 (암호를 제기 한 결과).

  • inPSQL's\ d명령, 열 기본값 표시 (Tom Lane)의 표시를 절단하지 마십시오.§

    이전에는 128 자로 임의로 자랐습니다.

  • 다양한 버그 수정PSQL's\ helpCommand (Kyotaro Horiguchi, Tom Lane)§

    \ help두 개의 인수 단어가있는 단어는 첫 번째 단어 만 사용하여 명령 설명을 찾지 못했습니다.\ else all도움을 주어야합니다Reset또한,\ help종종 호출기를 호출하지 못했습니다. 메모리가 유출되었습니다.

  • 수정pg_dump의 상속 된 생성 열 덤핑 (Peter Eisentraut)§

    이전 동작은 복원 중에 (무해한) 오류를 초래했습니다.

  • inpg_dump, 복원 스크립트가 실행되는지 확인Alter Publication Add Table출판물의 소유자로 명령을 내리고 비슷하게 실행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, oid2nameVacuumlo연결 고장 후 오도 오류 메시지를 생성합니다.

  • 메모리 누출 수정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)에서 PickSplit이 호출되는 드문 경우 충돌을 피하십시오.§

  • 타임 아웃의 계산 수정contrib/pg_prewarmContrib/Postgres_FDW(Alexey Kondratov, Tom Lane)§

    메인 루프의contrib/pg_prewarm의 autoprewarm 부모 프로세스는 원하는 수면 시간을 1000 배로 과소 평가하여 의도 한 것보다 훨씬 더 많은 CPU를 소비하게했습니다. 원격 서버와이즈 토토 결과를 기다릴 때Contrib/Postgres_FDW원하는 시간 초과를 1000의 계수로 과대 평가했습니다 (이 오류는 클램프를 60 초로 부과하여 완화되었습니다)..

    이 오류 모두 초기 및 마이크로 초를 밀리 초로 잘못 변환하는 데 비롯된 것입니다. 새로운 API 소개TimesTampDifferencemilliseconds ()미래에 이것을 쉽게 얻을 수 있도록합니다.

  • 개선구성'선택을위한 HeuristicsPG_SYSROOTON MACOS (Tom Lane)§ §

    새로운 방법은 Xcode가 기본 운영 체제보다 새롭고 바람직한 결과를 생성 할 가능성이 더 높습니다. OS 버전과 일치하지 않는 Sysroot를 선택하면 기능이없는 실행 파일이 발생할 수 있습니다.

  • MacOS를 구축하는 동안 지정-isysroot링크 단계뿐만 아니라 컴파일 단계 (James Hilliard)§

    이것은 Xcode가 운영 체제와 동기화되지 않은 경우 결과를 향상시킵니다.

  • LLVM 11 및 LLVM 12 (Andres Freund)와 호환되도록 JIT 컴파일을 수정합니다.§ §

  • 37124_37233§

    이것에 기인 한 필드 보고서는 보이지 않았지만 일부 아키텍처와이즈 토토 문제를 일으킬 수있는 것으로 보입니다.

  • ICU 68 이상으로 컴파일 실패 수정 (Tom Lane)§

  • 피하기memcpy ()분할 된 인덱스 생성 (Álvaro Herrera) 중에 널 소스 포인터 및 0 카운트가 포함되어 있습니다.§

    그러한 호출은 그 자체로 문제를 일으키는 것으로 알려져 있지 않지만 일부 컴파일러는의 주장이를 가정합니다.memcpy ()null이 아니기 때문에 근처 코드를 잘못 최적화 할 수 있습니다.

  • 시간대 데이터 파일 업데이트tzdata러시아의 DST 법률 변경 및 남 수단의 DST 법률 변경, 호주, 바하마, 벨리즈, 버뮤다, 가나, 이스라엘, 케냐, 나이지리아, 팔레스타인, 세이 셀, 바누아의 역사적 교정을위한 릴리스 2021a. (Tom Lane)§

    특히 호주/Currie Zone은 호주/호바트와 동일한 지점까지 수정되었습니다.