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

E.21. 릴리스 12.2

출시 날짜 :2020-02-13

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

E.21.1. 버전으로의 마이그레이션 12.2

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

그러나, 파티션 된 테이블을 참조하는 외국의 주요 제약 조건이 있으면 해당 기능의 버그에 대해 아래 두 항목을 참조하십시오..

E.21.2. 변화

  • 누락 된 권한 추가 확인Alter ... 확장에 따라 다릅니다(Álvaro Herrera)§

    확장자에 따라 객체를 표시하는 것은 권한을 확인하지 않았습니다. 이 감독을 통해 모든 사용자는 확장을 삭제할 수있는 사람이 하락 가능한 것으로 표시, 트리거, 구체화 된보기 또는 색인을 표시 할 수있었습니다. 호출 사용자가 지정된 객체를 소유해야하므로이를 삭제하는 특권이 필요합니다. (CVE-2020-1720)

  • 수정Truncate ... Cascade모든 관련 파티션이 잘립니다 (Jehan-Guillaume de Rorthais)§

    분할 된 테이블의 파티션이와 잘린 경우캐스케이드옵션 및 분할 된 테이블에는 다른 테이블토토 핫 외국 키 참조가 있으므로 해당 테이블도 잘라야합니다. 참조 테이블 자체가 분할 된 경우 이것을 확인해야 할 필요성이 없어서 외국 키 제약을 위반하는 행이 생존 할 수 있습니다.

    따라서 파티션 된 테이블 사이에 외국의 주요 제약 조건이 있고 파티션 수준을 수행 한 경우Truncate참조 테이블토토 핫 외국의 주요 위반이 있는지 확인해야합니다. 가장 간단한 방법은 외국의 주요 제약 조건의 새로운 인스턴스를 추가하는 것입니다 (성공하면 원래의 제약 조건을 삭제하십시오). 이는 잠금 관점토토 핫 엄청나게 적용될 수 있지만,이 경우 타의 추종을 불허하는 행을 수동으로 쿼리하는 것을 선호 할 수 있습니다.

  • 외국의 주요 제약 조건을 하위 파티션 (Jehan-Guillaume de Rorthais)에 첨부하지 않는 수정§

    다단계 파티션 테이블의 첫 번째 레벨 아래 레벨에 파티션을 추가 할 때, 상단 분할 된 테이블을 참조하는 외국 주요 제약 조건은 새 파티션으로 복제되지 않았으며 나중에 제약 위반이 가능합니다. 새로운 파티션을 분리하고 다시 붙잡는 것이 이것을 고치는 가장 저렴한 방법입니다. 그러나 고정 할 파티션이 많으면 외국 키 제약 조건의 새 인스턴스를 추가하는 것이 바람직 할 수 있습니다.

  • 분할 된 테이블 또는 상속 트리 (Tom Lane)에서 동시 업데이트 중 가능한 충돌 수정§

  • 파티션 된 테이블의 행 트리거가 적절할 때 하위 분수로 올바르게 복제되는지 확인하십시오 (Álvaro Herrera)§

    파티션을 작성하거나 첨부 할 때 사용자 정의 트리거 (외국 키 또는 이연 고유 한 제약 조건을위한 트리거는 아님)를 놓칠 수 있습니다.

  • 논리적 복제 가입자 코드를 수정하여 콜럼 당 실행업데이트적절한 경우 트리거 (Peter Eisentraut)§

  • 대규모 트랜잭션이 여러 개의 별도의 임시 파일 (Amit Khandekar)에 쏟아져야 할 때 논리 디코딩의 실패를 피하십시오§ §

  • 논리적 복제 가입자가 행 업데이트를 처리 할 때 가능한 충돌 또는 데이터 손상 수정 (Tom Lane, Tomas Vondra)§

    이 버그는 가입자의 테이블에 게시자토토 핫 복사되지 않고 회의 별 데이터 유형이있는 열이 포함 된 경우에만 눈에 띄는 문제를 일으켰습니다.

  • 가입 관계에서 DDL을 변경 한 후 논리적 복제 가입자의 충돌 수정 (Jehan-Guillaume de Rorthais, Vignesh C)§

  • 데이터베이스 충돌 후 논리 복제 게시자의 실패 수정 및 재시작 (Vignesh C)§

  • pg_replication_slot_advance ()물리적 복제 슬롯토토 핫 재시작을 통해 지속됩니다 (Alexey Kondratov, Michael Paquier)§ §

  • 논리 복제 효율성 향상복제 아이덴티티 전체(Konstantin Knizhnik)§

    업데이트 또는 삭제 작업 중에 기존 튜플을 검색 할 때 마지막 튜플이 마지막 튜플을 반환합니다.

  • 데이터베이스 백업을 수정하여 데이터베이스 OID를 처리하기 위해int32_max(Peter Eisentraut)§

  • 병렬 계획이 항상 올바른 시간에 종료되도록하십시오 (Kyotaro Horiguchi)§

    이 감독은임시 파일 누출멀티 배치 병렬 해시 조인의 경고.

  • 한계 노드 (Amit Kapila) 아래에있는 수집 또는 Gathermerge 계획 노드의 조기 종료 방지§

    예를 들어 NestLoop 내부에있는 경우와 같이 그러한 계획 노드를 두 번 이상 스캔 해야하는 경우 고장을 피합니다..

  • 많은 코어 (Ga토토 핫 De토토 핫, Thomas Munro)와 함께 CPU에서 병렬 해시의 효율 향상§

  • 병렬로 충돌을 피하십시오색인 생성무료 동적 공유 메모리 슬롯이없는 경우 (Thomas Munro)§ §

    대신 비 평면 인덱스 빌드로 돌아가십시오.

  • 무료 동적 공유 메모리 슬롯이 없을 때 메모리 누출을 피하십시오 (Thomas Munro)§

  • 무시동시에임시 테이블에서 색인 생성, 드롭 또는 재건을 수행 할 때 옵션 (Michael Paquier, Heikki Linnakangas, Andres Freund)§

    임시 테이블에가 있으면 이상한 실패를 피합니다.on Commit행동. 사용에 이점이 없습니다동시에어쨌든 임시 테이블의 경우 다른 세션이 테이블에 액세스 할 수 없으므로 추가 처리가 무의미하게 만듭니다.

  • 표시된 임시 테이블에서 표현식 인덱스를 재설정 할 때 가능한 실패 수정커밋 삭제 행(Tom Lane)§

  • 브린 색인 작업에서 가능한 충돌 수정Box, 범위inet데이터 유형 (Heikki Linnaka토토 핫as)§

  • Gist Index 빌드에서 재귀 페이지 분할 중 충돌 수정 (Heikki Linnakangas)§ §

  • Gin Indexes (Alexander Korotkov)에서 삭제 된 페이지의 처리 수정§ § § §

    가능한 교착 상태를 피하고, 삭제 된 페이지의 상태의 잘못된 업데이트 및 최근에 삭감 된 페이지를 통과하지 못한다..

  • 하위 플랜으로 가능한 충돌 수정 (sub-select) multi-row 내List (Tom Lane)§

  • 실패 수정Alter Table열이 a에 참조 된 경우생성표현식이 더 일찍 유형토토 핫 추가되거나 변경되었습니다Alter명령 (Tom Lane)§

  • 기본값을 삽입하지 못하는 수정누락튜플 변환 중 속성 (Vik Feari토토 핫, Andrew Gierth)§

    이것은 값이 추가 된 열토토 핫 나올 때 값을 잘못 읽을 수 있습니다.ALTER 테이블 추가 열일정한 기본값이있는

  • 체크 포인터 프로세스토토 핫 공황 상태가 될 수 없음, 이미 제거되었을 수있는 관계 세그먼트 (Thomas Munro)§ §

  • fileclose () 실패 (Noah Misch) 이후 충돌 수정§

    이 문제는와 함께만 관찰 할 수 있습니다.data_sync_retryenabled, 그렇지 않으면 fileclose () 실패가 공황 상태로보고되므로

  • 다중의 취급 수정After Row외국 테이블토토 핫 트리거 (Etsuro Fujita)§

  • Pass-by-reection 집계 전이 상태와 충돌 할 가능성이 낮습니다 (Andres Freund, Teodor Sigaev)§

  • 오류보고 개선to_date ()andTO_TIMESTAMP ()(Tom Lane, Álvaro Herrera)§ §

    입력 문자열의 부정확 한 달 또는 주일 이름에 대한 보고서는 다중 바이트 문자의 중간에 입력을 잘라서 후속 실패를 유발할 수있는 부적절하게 인코딩 된 오류 메시지로 이어질 수 있습니다. 대신 다음 공백에서 잘립니다.

  • Off-By-One 결과 수정추출물 (isoyear from타임 스탬프)BC 날짜 (Tom Lane)§

  • <타입의 연산자char|캐시 조회 실패 Collation 0(Tom Lane)§

  • TID 스캔을 순차적 스캔으로 취급하지 마십시오 (Tatsuhito Kasahara)§ §

    리팩토링 감독 감독으로 인해 TID 스캔 (CTID에 의한 선택)은 통계 뷰토토 핫 순차적 스캔으로 계산되었으며 순차적 스캔과 마찬가지로 전체 테이블 술어 잠금 장치를 가져옵니다. 후자의 동작은 직렬화 가능한 트랜잭션 모드토토 핫 불필요한 직렬화 오류를 유발할 수 있습니다.

  • 스택 오버플로를 피하십시오Information_Schema시스템 카탈로그 (Tom Lane)에 자체 참조 관점이 존재하는 경우§

    자기 참고 관점은 작동 할 수 없습니다. 항상 무한 재귀를 초래합니다. 우리는보기를 실행하려고 할 때 상황을 올바르게 처리했지만 자동으로 업데이트 할 수 있는지 확인할 때는 그렇지 않습니다.

  • Walsender 프로세스가 항상 트랜잭션 시작 시간에 null을 표시하는지 확인하십시오.pg_stat_activity(Álvaro Herrera)§ §

    이전에xact_start열은 때때로 프로세스 시작 시간을 표시합니다.

  • 해시의 성능 향상 매우 큰 내부 관계 (Thomas Munro)§

  • 활성 Walsender Processes (Pierre Ducroquet)가 많을 때 스핀 록 경합 감소§

  • 배치 수정하위 계획 제거필드설명출력 (Daniel Gustafsson, Tom Lane)§

    텍스트가 아닌 출력 형식 으로이 필드는 내부에서 방출되었습니다.계획하위 그룹, 구문 적으로 유효하지 않은 출력을 초래합니다. 의도 한대로 부모 부록에 첨부하거나 계획 노드를 첨부하십시오. 이로 인해 필드가 텍스트 출력 형식의 위치를 ​​변경하게합니다. 동일한 계획 노드에 첨부 된 초기가있는 경우하위 계획 제거이제 그 앞에 나타납니다.

  • 수정설명's설정비 텍스트 출력 형식으로 비어있는 옵션 (Tom Lane)§

    텍스트가 아닌 출력 형식에서는 비어 있거나 값이 0이 있더라도 요청시 필드가 나타나야합니다.

  • 사용자가 실제로 쿼리 (Dilip Kumar, Amit La토토 핫ote)에 명명 된 테이블의 해당 열을 읽을 수있는 경우 플래너가 어린이 테이블 통계에 잠재적으로 누출 된 테스트를 적용하도록 허용합니다.§

    이 변경은 CVE-2017-7484 용 수정으로 작성된 파티션 된 테이블의 성능 문제를 해결합니다. 해당 보안 수정은 유출 연산자 적용을 현재 사용자가 직접 읽을 권한이없는 열에 대한 통계에 적용 할 수 없었습니다. 그러나 부모 파티셔닝 테이블에서만 권한을 부여하는 것이 다소 일반적이며 개별 파티션에서는 그렇게하지 않습니다. 이 경우 사용자는 부모를 통해 열을 읽을 수 있으므로이 보안 제한에는 아무런 의미가 없습니다. 그것은 단지 필요한 것보다 더 낮은 플래너 추정치를 초래합니다.

  • 싱글 로우 서브 쿼리에 대한 조인의 지나치게 공격적인 붕괴로 유도 된 플래너 오류 수정 (Tom Lane)§

    이 실수는와 같은 오류로 이어졌습니다.결합 관계를 구성하지 못했습니다.

  • 수정아니오 = Opfamily의 연산자nnnnA와 일치하려고 할 때 플래너 오류좋아요또는 이진 호환 인덱스 opclass (Tom Lane)에 대한 정규 패턴 매치 연산자§

  • 선택성 계산에서 가장자리 사고 충돌 및 오해를 수정하십시오<@and@범위 운영자 (Michael Paquier, Andrey Borodin, Tom Lane)§

  • 잘못된 추정 수정또는클로즈 대부분의 공통 가치 확장 통계 (Tomas Vondra)§ §

  • 대부분의 공통 가치 확장 통계 (Tomas Vondra)를 적용 할 때 시스템 열 무시§

    이것은 방지음수 비트 맵 세트 멤버가 허용되지 않음영향을받는 쿼리의 플래너 오류.

  • 가상의 브린 지수를 지원하기 위해 브린 색인 로직 수정 (Julien Rouhaud, Heikki Linnakangas)§

    이전에색인 고문Extension은 플래너 비용 추정 코드가 항상 지수의 메타지에 물리적으로 액세스하려고 시도하기 때문에 플래너가 가상의 브린 지수와 관련된 계획을 생성하도록 시도했습니다. 이제 인덱스가 가상이 있는지 확인하고 인덱스 매개 변수에 대한 기본 가정을 사용합니다.

  • 조건부와 함께 뷰의 자동 업데이트를 사용하려는 시도에 대한 오류보고 향상대신규칙 (Dean Rasheed)§

    이것은 지원되지 않았지만 이전에는 실행 시간에만 오류가 발생하여 플래너 오류로 마스킹 할 수 있습니다..

  • 범위 유형 (Tom Lane, Julien Rouhaud)을 통해 복합 유형 자체가 간접적으로 포함되는 것을 방지합니다.§ §

  • vseudo-types를 반환하는 파티션 키 표현을 허용하지 않습니다.레코드(Tom Lane)§

  • 금지 된 유형의 인덱스 표현식에 대한 오류보고 수정 (Amit Langote)§

  • a 만 포함하는보기 덤핑 수정뷰 출력 열의 이름이 바뀌는 경우 (Tom Lane)을 처리하는 목록§

  • |xmltableview 또는 규칙의 종속성을 계산할 때 구성이 설명됩니다 (Tom Lane)§

    이전에는 뷰를 깰 수있었습니다xmltable유형을 삭제하여 유형이 뷰에서 다른 방법으로 참조되지 않은 경우. 이 수정 사항은 기존 뷰에 대해 이미 기록 된 종속성을 수정하지 않으며 새로 만들어진 뷰에 대해서만 수정합니다.

  • 반경 인증 매개 변수 (Marcos David)의 원치 않는 다운 케이스 및 잘리지 않음§

    thePG_HBA.confParser는이 필드를 실수로 SQL 식별자로 취급했으며 일반적으로 그렇지 않습니다.

  • 전송노트보내기 전에 클라이언트에게 메시지ReadyForquery이후 (Tom Lane)가 아니라§

    이 변경은 LIBPQ 및 이와 유사하게 작동하는 기타 클라이언트 라이브러리를 통해 거래 중에 수신 된 알림이 거래가 완료 될 때까지 사용할 수 있도록합니다. 이것은 아마도 실제 응용 분야에 차이가 없을 것입니다 (어쨌든 비동기 알림에 대처해야 함). 그러나 재현 가능한 행동으로 테스트 사례를 쉽게 구축 할 수 있습니다.

  • GSSAPI 암호화 (Tom Lane)를 사용할 때 비 블로킹 I/O를 처리 할 때 버그 수정§

    이러한 오류는 데이터를 떨어 뜨릴 수 있습니다 (일반적으로 후속 와이어 프로토콜-폭력 오류로 이어지는) 또는 ALivelock모든 데이터가 전송 된 것은 아니지만 전송 프로세스가 잠들 수있는 상황. 게다가,libpq각 연결에 대해 별도의 암호화 상태를 유지하지 못하여 여러 암호화 된 데이터베이스 연결을 사용하여 응용 프로그램의 실패 가능성을 만듭니다.

  • 허용libpqGSSAPI 코드가 컴파일되지 않은 경우에도 모든 GSS 관련 연결 매개 변수를 구문 분석합니다.§

    이것은 행동을 우리의 SSL 지원과 유사하게 만듭니다. 오랫동안 특정 빌드에서 기능이 부족하여 일부는 무시되거나 제한 되더라도 모든 관련 매개 변수를 항상 받아들이는 것이 좋은 생각으로 간주되었습니다.

  • 잘못된 처리 수정%B%B형식 코드토토 핫ECPG'spgtypestimestamp_fmt_asc ()함수 (Tomas vondra)§

    OFF-BY-ONE 오류로 인해이 코드는 잘못된 달 이름을 인쇄하거나 충돌 할 수 있습니다.

  • 메모리 외 실패 후 충돌을 피하십시오ecpglib(Tom Lane)§

  • 병렬 수정pg_dump/PG_RESTORE작업자 프로세스 생성 실패 (Tom Lane) 더 우아하게 처리합니다.§

  • 병렬을 끝내려고 할 때 충돌 또는 잠금 가능성을 방지pg_dump/PG_RESTORE신호를 통해 실행 (Tom Lane)§

  • inpg_upgrade, 테이블에서 업그레이드 할 수없는 데이터 유형을 검색하는 동안 배열 및 범위 내부를보십시오 (Tom Lane)§

  • 더 철저한 구문 확인CreateUser's-코칭-리미트옵션 (Álvaro Herrera)§

  • 더 많은 경우에 PL/PGSQL 복합 유형 변수가 참조하는 특정 유형의 변경에 대처합니다 (Ashutosh Sharma, Tom Lane)§

    PL/PGSQL 변수에 의해 참조 된 복합 유형을 삭제하고 재창조하면OID와 관계를 열 수 없음nnnn오류.

  • 충돌을 피하십시오postgres_fdw명령을 보내려고 할 때remote_tab set (x, y) = (select ...) 업데이트원격 서버 (Tom Lane)§

  • 33916_33921Contrib/Dict_int, 거부Maxlen1보다 작은 설정 (Tomas Vondra)§

    이것은 해당 매개 변수에 대한 바보 같은 설정과 충돌이 발생할 수 있습니다.

  • 님의 널 값을 허용하지 않음Contrib/TableFunc'scrosstab ()기능 (Joe Conway)§

    이 케이스는 유용하게 작동하지 않았으며 일부 플랫폼토토 핫 충돌 할 것입니다.

  • 수정구성의 OpenSSL에 대한 프로브ssl_clear_options ()1.1.0 (Michael Paquier, Daniel Gustafsson) 이전의 OpenSSL 버전과 함께 작동하도록 기능§

    이 문제는 원하는대로 SSL 압축 옵션을 설정하지 못하게 될 수 있습니다.PostgreSQLOpenSSL의 이전 버전에 대해 구축되었습니다.

  • 시간 초과 및 통계 추적 GUC 변수를 표시합니다.pgdllimport, 확장자가 Windows (Pascal Legrand)에서 액세스 할 수 있도록§

    이것은에 적용됩니다idle_in_transaction_session_timeout, lock_timeout, station_timeout, track_activities, track_countsTrack_Functions.

  • 정신 검사토토 핫 메모리 누출을 피하십시오슬래브메모리 컨텍스트 (Tomas Vondra)§

    이것은 일반적으로 메모리 컨텍스트 확인을 활성화하지 않기 때문에 생산 빌드에 문제가되지 않습니다. 그러나 디버그 빌드토토 핫는 누출이 상당히 심할 수 있습니다.

  • LWLOCK 통계 메커니즘 (Fujii Masao)에 의해보고 된 여러 통계 항목 수정§

    LWLOCK 통계 코드 (기본적으로 구축되지 않았으며 컴파일이 필요합니다-dlwlock_stats) 해시 가능한 키 생성 결함의 결과로 동일한 LWLOCK 및 백엔드 프로세스에 대한 여러 항목을보고 할 수 있습니다.

  • Windows (Amit Kapila)에서 간호 신호 전달이 지연되는 레이스 조건 수정§

    이것은 눈에 띄는 타이밍 이상의를 유발했습니다Notify및 아마도 다른 오작동.

  • Windows에서 코너 케이스 오류의 처리 수정readfile ()기능 (Thomas Munro, Juan José Santamaría Flecha)§

    알려진 한,이 감독은 단지 실제 로그 메시지가 발생했지만 실제 쿼리 오해가 아닙니다.

  • 37514_37555ERROR_ACCESS_DENIED파일 액세스 실패 (Alexander Lakhin, Tom Lane)§ §

    이것은 타겟팅 된 파일이 삭제되지만 실제로 사라지지 않았기 때문에 파일 오픈 시도가 실패하는 경우에 대처하는 데 도움이됩니다.PG_CTL, 예를 들어, 우체국이 아직 종료되었는지 확인하기 위해 조사 할 때 그러한 오류로 인해 종종 실패했습니다.

  • Windows에서 우체국 마스터의 로그 파일에 대한 위반을 공유하는 방법PG_CTL예를 들어과 같이 포스트 마스터를 시작하는 데 사용됩니다.PG_CTL 재시작(Alexander Lakhin)§