이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

E.17. 릴리스 12.6

출시일: 2021-02-11

이 릴리스에는 12.5의 다양한 수정 사항이 포함되어 있습니다. 주요 릴리스 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)§

    만일업데이트명령은 행을 다른 파티션으로 이동하려고 시도하지만 새 파티션의 일부 제약 조건을 위반하고 해당 파티션의 열이 상위 테이블과 다른 물리적 위치에 있음을 발견했습니다. 오류 메시지는 사용자에게 없는 열의 내용을 드러낼 수 있습니다.선택권한이 설정되었습니다. (CVE-2021-3393)

  • GiST 인덱스에 삽입하는 동안 동시 페이지 분할의 잘못된 감지 수정(Heikki Linnakangas)§

    동시 삽입은 잘못된 페이지에 항목이 배치된 손상된 색인으로 이어질 수 있습니다. 동시 삽입이 발생한 GiST 인덱스를 다시 색인화하는 것이 좋습니다.

  • 수정동시에 인덱스 생성동시에 준비된 트랜잭션을 기다리기 위해(Andrey Borodin)§

    그 지점와이즈 토토동시에 인덱스 생성모든 동시 트랜잭션이 완료되어 삽입된 행을 볼 수 있을 때까지 기다립니다. 또한 같은 이유로 준비된 모든 트랜잭션이 완료될 때까지 기다려야 합니다. 그렇게 하지 않으면 준비된 트랜잭션에 의해 삽입된 행이 새 인덱스와이즈 토토 생략되어 인덱스에 의존하는 쿼리가 해당 행을 놓칠 수 있음을 의미합니다. 준비된 트랜잭션을 활성화한 설치와이즈 토토(max_prepared_transactions 0), 빌드 시 이 문제가 발생한 경우 동시에 빌드된 인덱스를 다시 색인화하는 것이 좋습니다.

  • 다음의 경우 충돌을 피하십시오.전화또는DO트랜잭션 롤백을 수행하는 문은 확장 쿼리 프로토콜을 통해 실행됩니다(Thomas Munro, Tom Lane)§

    포스트그레SQL13, 이 경우 널 포인터 역참조가 확실하게 발생했습니다. 이전 버전에서는 버그에 눈에 띄는 증상이 없는 것 같지만 문제가 전혀 발생하지 않는지는 확실하지 않습니다.

  • 비대칭 해시 파티션 세트를 처리하기 위한 파티션 정리 논리 수정(Tom Lane)§

    해시 파티션을 나눈 테이블에 크기가 다른 파티션(즉, 다양한 모듈러스 값)이 있거나 일부 나머지 값에 대한 파티션이 부족한 경우 플래너의 가지치기 논리는 일부 파티션을 스캔할 필요가 없다고 잘못 결론을 내릴 수 있으며 이로 인해 쿼리와이즈 토토 찾아야 하는 행을 찾지 못할 수 있습니다.

  • 다음과 같은 경우 잘못된 결과를 방지현재 위치계획에 MergeAppend 노드가 포함된 커서에 적용됩니다(Tom Lane)§

    이 경우는 지원되지 않습니다(일반적으로 커서는주문 기준간단한 업데이트가 보장되지는 않습니다); 그러나 이전에는 코드가 이를 거부하지 않았으며 자동으로 잘못된 일치 항목을 제공할 수 있었습니다.

  • 다음의 경우 충돌 수정현재는 어디입니까사용자 정의 스캔 노드가 포함된 계획의 커서에 적용됩니다(David Geier)§

  • 외부 조인으로 인해 평가가 지연되어야 하는 자리 표시자를 플래너가 잘못 처리하는 문제 수정(Tom Lane)§

    이는 특히 외부 조인 출력에 대한 측면 참조가 포함된 간단한 하위 쿼리에서 발생합니다. 실수로 인해 잘못된 계획이 발생할 수 있습니다. 알려진 사례는 다음을 트리거합니다.모든 NestLoopParams를 계획 노드에 할당하지 못했습니다.오류이지만 다른 증상이 나타날 수도 있습니다.

  • 쓸데없는 RESULT RTE를 제거하는 동안 플래너의 자리 표시자 처리 문제 수정(Tom Lane)§

    이러한 감독으로 인해 다음이 발생할 수 있습니다.relid에 대한 관계 항목이 없습니다N플래너 오류.

  • 일부 조인 수준에서 계산되고 동일한 수준에서만 사용되는 자리 표시자의 플래너 처리 문제 수정(Tom Lane)§

    이러한 감독으로 인해 다음이 발생할 수 있습니다.아무것도 빌드하지 못했습니다N-방향 조인플래너 오류.

  • 인덱스 AM이 표시/복원을 지원하는지 더 주의하세요(Andrew Gierth)§

    이것은 드물게 발생하는 지원 기능 누락에 대한 오류를 방지합니다.

  • 병렬 쿼리를 많이 사용하는 동안 DSM 슬롯이 부족해지기 어렵게 설정을 조정합니다(Thomas Munro)§

  • 병렬 쿼리에 필요한 공유 메모리 양을 과대평가하는 문제 수정 (Takayuki Tsunakawa)§

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

    동일한 명령 내에서 역할이나 스키마 이름이 중복되면 다음이 발생할 수 있습니다.튜플은 이미 자체적으로 업데이트되었습니다.오류 또는 고유 제약 조건 위반.

  • 다음 경우에 ACL 관련 캐시를 플러시합니다.pg_authid변경 사항(노아 미쉬)§

    이 변경으로 인해 권한 관련 결정이 즉시 결과를 반영하게 됩니다.역할 변경 ... [아니요] 상속.

  • 모호한 내용의 잘못된 처리 방지다음과 같은 테이블 생성절(톰 레인)§

    A 좋아요인덱스 가져오기 등을 처리하기 위해 새 테이블을 처음 생성한 후 절을 다시 검사합니다. 이 재검토와이즈 토토는 동일한 이름의 다른 테이블을 발견하여 예상치 못한 동작이 발생할 수 있었습니다. 한 가지 예는 새 테이블이 해당 테이블과 동일한 이름의 임시 테이블인 경우입니다.좋아요목표.

  • 작업 순서 재정렬다음과 같은 테이블 생성외래 키 제약 조건을 구축하기 전에 색인이 복제되도록 (Tom Lane)§

    이것은 외부에 선언된 자체 참조 외래 키 제약조건이 있는 경우를 수정합니다.테이블 생성다음에서 오는 색인에 따라 다름좋아요절.

  • 허용하지 않음통계 생성시스템 카탈로그(Tomas Vondra)§

  • 상속 하위 테이블을 뷰로 변환하는 것을 허용하지 않음(Tom Lane)§

  • 삭제된 관계에 할당된 디스크 공간이 커밋 시 즉시 해제되는지 확인하세요(Thomas Munro)§

    이전에는 삭제된 관계가 여러 1GB 세그먼트에 걸쳐 있는 경우 첫 번째 세그먼트만 즉시 잘렸습니다. 다른 세그먼트는 단순히 연결이 해제되었으며, 다른 백엔드에 파일이 열려 있는 한 커널이 스토리지를 해제할 수 있는 권한을 부여하지 않습니다.

  • 파티션된 관계에 의해 참조되지만 실제 저장소에는 사용되지 않는 테이블스페이스 삭제 방지(Álvaro Herrera)§

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

  • 다음에 대한 진행 보고 수정클러스터(마티아스 반 데 멘트)§

  • 백슬래시로 이스케이프된 멀티바이트 문자 처리 문제 수정다음에서 복사(헤이키 린나칸가스)§

    백슬래시 뒤에 멀티바이트 문자가 오는 경우 올바르게 처리되지 않았습니다. 일부 클라이언트 문자 인코딩에서는 이로 인해 멀티바이트 문자의 일부가 필드 구분 기호 또는 데이터 복사 끝 표시로 잘못 해석될 수 있습니다.

  • 실행자 해시 테이블을 사전 할당하지 마십시오.설명없이분석(알렉세이 바슈타노프)§

  • 최근에 도입된 경쟁 조건 수정듣기/알림큐 처리(톰 레인)§

    새로 수신하는 백엔드가 잘리는 중인 SLRU 페이지를 읽으려고 시도하여 오류가 발생할 수 있습니다.

    큐 꼬리 포인터가 백엔드의 대기열 위치와 동일하지 않은 값으로 설정되어 대기열 자르기 논리가 효과적으로 비활성화될 수 있습니다. 계속 사용알림그런 다음 대기열 채우기 경고가 발생했고 결국 서버가 다시 시작될 때까지 더 이상 알림을 보낼 수 없게 되었습니다.

  • 허용jsonbJSON 데이터 유형의 모든 조합을 처리하는 연결 연산자(Tom Lane)§

    우리는 두 개의 JSON 개체 또는 두 개의 JSON 배열을 연결할 수 있습니다. 배열이 아닌 입력을 단일 요소 배열로 래핑한 다음 배열 연결을 수행하여 다른 경우를 처리합니다. 이전에는 일부 입력 조합이 이 규칙을 따랐지만 일부는 임의로 오류를 발생시켰습니다.

  • 분석 중 초기화되지 않은 값 사용 수정*BRE 모드 정규 표현식의 수량자(Tom Lane)§

    이 오류로 인해 수량자가 탐욕스럽지 않게 작동할 수 있습니다. 즉, 다음과 같이 작동합니다.*?수량자는 전체 정규 표현식와이즈 토토 작동합니다.

  • 숫자 수정힘()지수가 정확히 일치하는 경우INT_MIN(-2147483648) (딘 라시드)§ §

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

  • 정수 오버플로 사례 수정하위 문자열()기능 (Tom Lane, Pavel Stehule)§

    지정된 시작 색인과 길이를 더할 때 정수가 오버플로되는 경우,하위 문자열()잘못된 행동, 가짜를 던지거나음수 하위 문자열 길이성공해야 하는 경우에 대한 오류 또는 음수 길이가 음수라고 불평하지 않는 경우(대부분의 경우 전체 문자열을 반환함).

  • SLRU 로그 랩어라운드 지점의 잘못된 감지로 인한 데이터 손실 방지(Noah Misch)§

    랩어라운드 지점은 일반적으로 페이지 중간에 있으며 페이지 경계로 반올림해야 하지만 올바르게 수행되지 않았습니다. 제대로 작동하는 시스템와이즈 토토는 발생하지 않는 SLRU 오버플로의 한 페이지 내에 설치가 이루어지지 않으면 문제가 발생할 수 없습니다. 이런 일이 발생했다면 나중에 나타날 것입니다.명백한 랩어라운드또는거래 상태에 접근할 수 없습니다.오류.

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

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

  • 상시 대기 백엔드와 시작(WAL 애플리케이션) 프로세스 간의 교착 상태 감지 보장(Fujii Masao)§

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

  • HOT 체인을 참조하는 인덱스 항목을 삭제하는 동안 복구 충돌을 감지하지 못하는 오류 수정(Peter Geoghegan)§ §

    코드가 HOT 체인을 통과하지 못하여 너무 오래된 XID 지평선을 계산할 수 있으며, 이로 인해 핫 대기와이즈 토토 잘못된 충돌 처리가 발생할 수 있습니다. 이 버그의 실질적인 영향은 제한적입니다. 대부분의 경우 올바른 XID 지평선은 인근 작업와이즈 토토 찾을 수 있습니다.

  • 다음 값이 비어 있지 않은지 확인하세요.krb_server_keyfile항상 모든 설정을 재정의함KRB5_KTNAME서버 환경(Tom Lane)§

    이전에는 클라이언트가 GSS 암호화를 요청하는지 여부에 따라 우선적으로 적용되는 설정이 있었습니다.

  • 다음과의 연결 일치 실패에 대한 서버 로그 메시지pg_hba.conf항목, GSS 암호화가 활성화되었는지 여부에 대한 세부 정보 포함(호리구치 쿄타로, 톰 레인)§

    다음과 같은 경우 관련 데이터입니다.hostgssenc또는hostnogssenc항목이 존재합니다.

  • 서버의 GSS 암호화 지원과 관련된 다양한 문제 수정(Tom Lane)§

    GSS 암호화 연결에서는 GSS 인증만 사용할 수 있다는 무의미한 제한을 제거합니다. 연결 인증 로그 메시지에 GSS 암호화 정보를 추가합니다. 필요한 공유 메모리 크기를 계산할 때 GSS 관련 공간을 포함합니다(이 누락으로 인해 매우 높은 문제가 발생할 수 있음)max_connections설정). 복구할 수 없는 GSS 암호화 오류를 보고할 때 무한 반복이 발생하지 않도록 하세요.

  • 포스트마스터가 시작할 때 백그라운드 작업자에 대한 서비스되지 않은 요청이 정리되도록 확인하십시오.똑똑한또는빠르게종료 순서(Tom Lane)§

    이전에는 종료 직전에 백그라운드 작업자를 요청한 하위 프로세스가 무기한 대기하여 종료가 완료되지 못하게 하는 경쟁 조건이 있었습니다.

  • 분석 시 이식성 문제 수정recovery_target_xid값 (마이클 파퀴에)§

    대상 XID는 잠재적으로 64비트 너비이지만 다음으로 구문 분석되었습니다.strtoul(), 플랫폼와이즈 토토 잘못된 동작을 유발함32비트입니다(예: Windows).

  • 독립형 백엔드(Yulin Pei)와이즈 토토 병렬 인덱스 빌드를 사용하지 마세요.§

  • 여러 키 열을 반드시 지원하지 않고도 인덱스 AM이 포함된 열을 지원하도록 허용(Tom Lane)§

  • 비엄격 역직렬화 함수를 사용하여 집계의 병렬 집계 중 어설션 실패 방지(Andrew Gierth)§

    코어에는 이러한 집계 함수가 없습니다포스트그레SQL, 그러나 PostGIS와 같은 일부 확장은 일부를 제공합니다. 어설션이 아닌 빌드와이즈 토토는 실수가 무해합니다.

  • 어설션 실패 방지pg_get_functiondef()a로 함수를 검사할 때변환옵션 (톰 레인)§

  • PL/pgSQL의 데이터 구조 잘못된 할당 수정전화진술 (톰 레인)§ §

    A 전화PL/pgSQL 프로시저에서 OUT 매개변수가 있는 다른 프로시저에 대해 호출된 프로시저가 다음을 수행하면 실패합니다.커밋또는롤백.

  • libpq, GSS 암호화 후 SSL 시도를 건너뛰지 마세요(Tom Lane)§

    GSS로 암호화된 연결을 성공적으로 만들었지만 인증 중에 실패하면 다음번에 SSL로 암호화된 연결을 시도하는 대신 암호화되지 않은 연결로 되돌아갑니다. 이로 인해 예기치 않은 연결 오류가 발생하거나 암호화된 연결이 예상되는 곳에 자동으로 암호화되지 않은 연결이 연결될 수 있습니다. 다행스럽게도 GSS 암호화는 클라이언트와 서버 모두 동일한 Kerberos 인프라에서 유효한 티켓을 보유한 경우에만 성공할 수 있습니다. 대신 SSL 암호화가 필요한 환경에서는 그렇지 않을 것 같습니다.

  • psql, a에 비밀번호 포함을 다시 허용합니다.연결_문자열a의 인수\연결명령(톰 레인)§

    이것은 이전에는 작동했지만 최근 버그 수정으로 인해 비밀번호가 무시되었습니다(결과적으로 비밀번호를 묻는 메시지가 표시됨).

  • psql's\d명령, 열 기본값 표시를 자르지 마세요(Tom Lane)§

    이전에는 128자에서 임의로 잘렸습니다.

  • 다양한 버그 수정psql's\help명령(호리구치 쿄타로, 톰 레인)§

    \도움말두 개의 인수 단어가 있는 경우 첫 번째 단어만 사용하여 명령 설명을 찾지 못했습니다. 예를 들어\도움말 재설정 모두다음에 대한 도움말을 표시해야 합니다리셋그러나 그렇지 않았습니다. 또한,\help종종 호출기를 호출해야 할 때 호출하지 못했습니다. 또한 메모리가 누출되었습니다.

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

    이전 동작으로 인해 복원 중 (무해한) 오류가 발생했습니다.

  • pg_dump, 복원 스크립트가 실행되는지 확인하세요게시물 변경 테이블 추가게시물의 소유자로서 명령하고 유사하게 실행합니다.인덱스 첨부 파티션 변경파티션된 인덱스의 소유자로 명령(Tom Lane)§ §

    이전에는 이러한 명령이 복원 스크립트를 시작한 역할에 의해 실행되었습니다. 일반적으로 작동하지만 특수한 경우에는 해당 역할에 적절한 권한이 없을 수도 있습니다.

  • 수정pg_dump처리하다부여 옵션 포함확장 프로그램의 초기 권한와이즈 토토 (Noah Misch)§

    확장 프로그램의 스크립트가 개체를 생성하고 부여 옵션을 사용하여 개체에 대한 권한을 부여하면 나중에 사용자가 해당 권한을 취소합니다.pg_dump상황을 재현하기 위해 잘못된 SQL을 생성할 것입니다. (오늘날 이 작업을 수행하는 확장 프로그램은 거의 없습니다.)

  • pg_rewind, 대기 서버를 되돌릴 때 모든 WAL이 고려되는지 확인하세요(Ian Barwick, Heikki Linnakangas)§ § §

  • pgbench, 변수 이름의 첫 문자로 숫자를 허용하지 않음(Fabien Coelho)§

    이것은 다음과 같은 문자열을 포함할 수 있는 타임스탬프 리터럴 값으로 변수를 대체하려는 시도를 방지합니다.12:34.

  • 일부 클라이언트 프로그램의 연결 실패 오류 메시지와이즈 토토 올바른 데이터베이스 이름을 보고합니다(Álvaro Herrera)§

    데이터베이스 이름이 명령줄에 제공되지 않고 기본값으로 설정된 경우,pg_dumpall, pgbench, oid2namevacuumlo연결 실패 후 잘못된 오류 메시지가 생성됩니다.

  • 메모리 누수 수정contrib/auto_explain(자핀 리)§

    생성 중 메모리 소비설명현재 트랜잭션이 끝날 때까지(최상위 명령문의 경우) 또는 주변 명령문이 끝날 때까지(중첩된 명령문의 경우) 출력이 해제되지 않았습니다. 이것은 특히 다음에서 문제가 되었습니다.log_nested_statements활성화되었습니다.

  • contrib/postgres_fdw, 사용자 매핑 또는 외부 서버 개체가 삭제될 때 원격 서버에 대한 열린 연결 누출을 방지합니다(Bharath Rupireddy)§

    삭제된 사용자 매핑이나 외부 서버에 의존하는 열린 연결은 더 이상 참조할 수 없지만 이전에는 로컬 세션이 지속되는 동안 계속 유지되었습니다.

  • contrib/pgcrypto, OpenSSL의 EVP 함수와이즈 토토 오류 반환 확인(Michael Paquier)§

    여기서 오류가 발생할 것으로 예상하지는 않지만 이번 변경으로 정적 분석 도구의 경고가 사라졌습니다.

  • 만들다contrib/pg_prewarm예열이 완료되기 전에 클러스터가 종료되면 더욱 강력해집니다(Tom Lane)§

    이전에는 autoprewarm이 지금까지 로드할 수 있었던 블록 번호만으로 상태 파일을 다시 작성했기 때문에 아마도 다음 시작 시 prewarm 기능이 크게 비활성화되었을 것입니다. 대신 초기 로딩 단계가 완료될 때까지 상태 파일 업데이트를 억제하세요.

  • contrib/pg_trgm의 GiST 인덱스 지원, 정확히 두 개의 인덱스 항목에 대해 picksplit이 호출되는 드문 경우의 충돌 방지(Andrew Gierth, Alexander Korotkov)§

  • 시간 초과 계산 오류 수정contrib/pg_prewarm그리고contrib/postgres_fdw(알렉세이 콘드라토프, 톰 레인)§

    메인 루프contrib/pg_prewarm의 autoprewarm 상위 프로세스는 원하는 절전 시간을 1000배로 과소평가하여 의도한 것보다 훨씬 더 많은 CPU를 소비하게 되었습니다. 원격 서버로부터 결과를 기다리는 경우,contrib/postgres_fdw원하는 시간 제한을 1000배로 과대평가했습니다(단, 이 오류는 클램프를 60초로 적용하여 완화되었습니다).

    이러한 오류는 모두 초 및 마이크로초를 밀리초로 잘못 변환한 데서 발생합니다. 새로운 API를 소개합니다.TimestampDifferenceMilliseconds()향후 이 문제를 더 쉽게 해결할 수 있도록 하기 위해.

  • 개선구성선택을 위한 휴리스틱PG_SYSROOTmacOS(톰 레인)§ §

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

  • macOS와이즈 토토 빌드하는 동안 지정-isysroot링크 단계 및 컴파일 단계(James Hilliard)§

    이는 마찬가지로 Xcode가 운영 체제와 동기화되지 않은 경우 결과를 개선합니다.

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

  • JIT 표현식 컴파일에서 부울 변수에 대한 참조의 잠재적인 잘못된 처리 수정(Andres Freund)§

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

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

  • 피하세요memcpy()파티션된 인덱스 생성 중 NULL 소스 포인터 및 0 카운트 사용(Álvaro Herrera)§

    이러한 호출은 그 자체로 문제를 일으키는 것으로 알려져 있지 않지만 일부 컴파일러는 다음 인수를 가정합니다.memcpy()절대 NULL이 아니므로 근처 코드가 잘못 최적화될 수 있습니다.

  • 다음으로 시간대 데이터 파일 업데이트tzdata러시아(볼고그라드 지역) 및 남수단의 DST 법률 변경 사항과 호주, 바하마, 벨리즈, 버뮤다, 가나, 이스라엘, 케냐, 나이지리아, 팔레스타인, 세이셸, 바누아투의 역사적 수정 사항에 대한 2021a 릴리스입니다. (톰 레인)§

    특히, 호주/커리 지역은 호주/호바트와 동일한 지점으로 수정되었습니다.