E.19. 릴리스 13.4

출시일: 2021-08-12

이 릴리스에는 13.3의 다양한 수정 사항이 포함되어 있습니다. 주요 릴리스 13의 새로운 기능에 대한 자세한 내용은 다음을 참조하세요.스포츠 토토 PostgreSQL : 문서 : 13 : E.21. 릴리스 13.

E.19.1. 버전 13.4로 마이그레이션

13.X를 실행하는 경우 덤프/복원이 필요하지 않습니다.

그러나 13.2 이전 버전에서 업그레이드하는 경우 다음을 참조하세요.와이즈 토토 PostgreSQL : 문서 : 13 : E.19. 릴리스 13.2.

E.19.2. 변경사항

  • 투영 단계의 반복 적용에 대한 잘못된 계획 수정(Tom Lane)§

    두 개의 ProjectionPath가 서로 겹쳐진 경우 플래너가 잘못된 계획을 생성할 수 있었습니다. 해당 상황을 유발하는 유일한 알려진 방법은 병렬 정렬 작업이지만 다른 경우도 있을 수 있습니다. 결과적으로 충돌이 발생하거나 잘못된 쿼리 결과가 발생합니다. 서버 메모리 내용 공개도 가능합니다. (CVE-2021-3677)

  • SSL 재협상을 더 완전하게 허용하지 않음(Michael Paquier)§

    SSL 재협상이 한동안 비활성화되었지만 서버는 여전히 클라이언트가 시작한 재협상 요청에 협력합니다. 악의적으로 제작된 재협상 요청으로 인해 서버 충돌이 발생할 수 있습니다(OpenSSL 문제 CVE-2021-3449 참조). 이를 허용하는 OpenSSL 버전(1.1.0h 이상)토토 꽁 머니는 기능을 완전히 비활성화하세요.

  • 다음 이후에 포털 수준 스냅샷 복원커밋또는롤백프로시저 내토토 꽁 머니(Tom Lane)§ § § § §

    이 변경은 토스트된 값을 즉시 가져오려는 시도가 있는 경우를 수정합니다.커밋/롤백다음과 같은 오류로 인해 실패합니다알려진 스냅샷 없음또는토스트 값에 대한 청크 번호 0 누락.

    일부 확장 프로그램은 포털 외부에서 SQL 코드 실행을 시도할 수 있습니다. 이를 수행하기 전에 외부 스냅샷이 존재하는지 확인하는 책임이 있습니다. 이전에는 스냅샷을 제공하지 않으면 작동할 수도 있고 그렇지 않을 수도 있습니다. 이제는 지속적으로 실패합니다.외부 스냅샷이나 포털 없이는 SQL을 실행할 수 없습니다..

  • 불안정한 쿼리를 읽는 커서의 출력을 유지할 때 오작동 방지(Tom Lane)§ §

    이전에는 항상 전체 쿼리 결과를 되감고 다시 읽었으며 아마도 이전 실행과 다른 결과를 얻었고 나중에 큰 혼란을 야기했습니다. NO SCROLL 커서의 경우 쿼리 출력 중 아직 읽지 않은 부분만 저장하여 이 문제를 해결할 수 있습니다. NO SCROLL 커서는 백업할 수 없기 때문에 충분합니다. SCROLL 옵션이 있는 커서는 여전히 위험하지만 이는 이미 불안정한 쿼리와 함께 사용하기에 안전하지 않은 옵션으로 문서화되어 있습니다. 문서 경고를 더욱 강력하게 만드세요.

    또한 a토토 꽁 머니 사용하는 암시적 커서에 대해 NO SCROLL 모드를 강제 적용합니다.PL/pgSQLFOR-over-query 루프, 프로시저 내 커밋 중에 이러한 커서를 유지할 때 이러한 유형의 문제를 방지합니다.

  • 거부업데이트를 위한 그룹 설정(())으로 그룹 선택(톰 레인)§

    이것은 다음과 같이 허용되지 않습니다.업데이트용평야와 함께그룹별은 허용되지 않지만 이에 대한 테스트는 빈 그룹화 세트를 올바르게 처리하지 못했습니다. 최종 결과는 실행기토토 꽁 머니 널 포인터 역참조가 됩니다.

  • 쿼리가 있는 사례 거부WITH다음으로 다시 작성알림(톰 레인)§

    이러한 경우는 이전에 충돌이 발생했습니다.

  • 숫자곱셈, 소수점 이하 16383 자리 이상이면 실패하지 않고 결과를 반올림합니다 (Dean Rasheed)§

  • 모퉁이 케이스 오류 및 올리기 시 정밀도 손실 수정숫자매우 큰 거듭제곱의 값 (Dean Rasheed)§ §

  • 0으로 나누기 오류 수정to_char()EEEE형식 및 a숫자10^(-1001)보다 작은 입력 값 (Dean Rasheed)§

  • 수정pg_size_pretty(bigint)양수 값을 반올림하는 방식과 일관되게 음수 값을 반올림합니다(그리고 일관되게숫자version) (Dean Rasheed, David Rowley)§ §

  • 만들다pg_filenode_relation(0, 0)실패하지 않고 NULL을 반환함(Justin Pryzby)§

  • 만들다확장 프로그램 변경구성원 개체를 추가하거나 제거할 때 확장 프로그램 잠금(Tom Lane)§

    이전 코딩이 허용됩니다.확장 프로그램 변경 추가/삭제동시에 발생하다드롭 확장, 충돌 또는 카탈로그 항목 손상으로 이어집니다.

  • 수정구독 변경빈 슬롯 이름 거부(Japin Li)§

  • 파티션된 테이블의 트리거를 새 파티션에 복제할 때 활성화된 상태가 복사되었는지 확인하세요(Álvaro Herrera)§

  • 다음에 대해 생성된 쿼리에서 별칭 충돌 방지동시에 구체화된 보기 새로고침(톰 레인, 바라스 루피레디)§ §

    이 명령은 특정 이름을 가진 열을 포함하는 구체화된 뷰토토 꽁 머니 실패했습니다.mv그리고새로운 데이터.

  • 수정거래 준비세션 수명 잠금과 트랜잭션 수명 잠금의 충돌을 올바르게 확인하기 위해(Tom Lane)§

    동일한 권고 잠금 ID 값에 세션 수명 잠금과 트랜잭션 수명 잠금이 모두 있는 경우 트랜잭션을 준비할 수 없습니다. 이 제한 사항은 완전히 확인되지 않았으며 이로 인해 패닉이 발생할 수 있습니다.거래 준비.

  • 다음의 잘못된 동작 수정드롭 소유대상 역할이 RLS 정책에 두 번 이상 나열된 경우(Tom Lane)§

  • 중 RLS 정책토토 꽁 머니 역할을 제거할 때 불필요한 오류 테스트를 건너뜁니다.드롭 소유자(톰 레인)§

    특히, 이는 슈퍼유저가 되어야 사용할 수 있는 일부 경우를 수정합니다.드롭 소유.

  • 다음에서 이전 스타일의 Windows 로케일 이름을 다시 허용콜렉션 생성명령(토마스 먼로)§

    이전에는 운영 체제가 해당 로케일에 대한 버전 정보를 제공할 수 없기 때문에 실패했습니다. 어느 시점에서 버전 정보를 요구하기로 결정할 수도 있지만 아직 그러한 정책이 존재하지 않으므로 지금은 사례를 다시 허용하세요.

  • 전체 행 변수를 허용하지 않음생성됨표현식(톰 레인)§

    전체 행 변수를 사용하면 생성된 열이 자체적으로 종속될 수 없다는 규칙을 명백히 위반하므로 이러한 경우에는 잘 정의된 동작이 없습니다. 실제 동작에는 충돌이 자주 발생했습니다.

  • 사용 수정테이블로이드in생성됨표현식 (톰 레인)§

    일부 코드 경로가 a를 평가하는 동안 이 시스템 열에 유효한 값을 제공하지 못했습니다.생성됨표현.

  • a를 저장하지 마세요빠른 기본값외부 테이블에 열을 추가할 때 (Andrew Dunstan)§

    이러한 테이블에 대한 로컬 힙 저장소가 존재하지 않기 때문에 빠른 기본값은 쓸모가 없지만 후속 작업을 혼란스럽게 합니다. 다음에서 이러한 카탈로그 항목 생성을 억제하는 것 외에도테이블 변경명령, 다운스트림 코드가 잘못 존재할 때 대처할 수 있도록 조정하세요.

  • 인덱스 상태 플래그가 트랜잭션별로 업데이트되도록 허용(Michael Paquier, Andrey Lepikhov)§ §

    이것은 실제로 불변이 아닌 색인 조건자를 처리할 때 실패를 방지합니다. 이는 지원되는 사례로 간주되지 않지만 여기서 비트랜잭션 업데이트를 사용하는 원래 이유는 오래전에 사라졌으므로 변경할 수도 있습니다.

  • 다음과 같은 경우 계획 캐시 항목이 손상되지 않도록 하십시오.도메인 만들기또는도메인 변경캐시된 계획에 나타남(Tom Lane)§

  • walsender가 최신 복제 명령을 표시하도록 설정pg_stat_activity(톰 레인)§

    이전에는 walsender가 최신 SQL 명령을 표시했는데, 이는 대신 복제 작업을 수행하는 경우 혼란스러웠습니다. 이제 SQL 명령과 동일한 기반으로 복제 프로토콜 명령을 표시합니다.

  • 만들다pg_settings.pending_restart해당 항목이 있는 경우 true로 표시postgresql.conf삭제되었습니다(Álvaro Herrera)§

    pending_restart포스트마스터를 다시 시작하지 않으면 변경할 수 없는 항목이 수정된 경우가 올바르게 표시되었지만 항목이 완전히 제거된 경우는 아닙니다.

  • 64비트 Windows에서는 다음의 유효 값을 허용합니다.work_memhash_mem_multiplier2GB 초과(톰 레인)§

    이렇게 하면hash_mem_multiplier대규모 해시 집계가 디스크로 유출되는 것을 방지하려는 의도된 목적으로 사용됩니다.대형여러 기가바이트를 의미합니다.

  • 외부 테이블의 상속 하위인 일반 테이블과 관련된 쿼리의 잘못된 계획 수정(Amit Langote)§

    업데이트를 위해 선택및 관련 명령이 어설션 실패로 인해 실패합니다.정크 칼럼을 찾을 수 없습니다.이러한 경우에는 오류가 발생합니다.

  • FROM 항목이 표시될 때 FROM 결과의 상수 함수 풀업 수정측면(톰 레인)§

  • 새로운 기본을 따르기 위한 새로운 대기의 코너 케이스 오류 수정(Dilip Kumar, Robert Haas)§ § § § § §

    조건의 좁은 조합토토 꽁 머니 대기 장치는 잘못된 WAL 타임라인을 따르려고 시도할 수 있습니다.

  • 트랜잭션 중단 기록의 WAL 재생으로 인해 파일 잘림이 발생하는 경우 최소 복구 지점 업데이트(Fujii Masao)§

    파일 잘림은 되돌릴 수 없으므로 해당 기록 이전 시점에서 복구를 중지하는 것은 더 이상 안전하지 않습니다. 트랜잭션 커밋에 해당하는 사례는 몇 년 전에 수정되었지만 이 사례는 간과되었습니다.

  • 복제 슬롯이 무효화된 후 가장 오래된 필수 WAL 세그먼트 지평선을 올바르게 전진시키십시오(호리구치 쿄타로)§ § § §

    모든 슬롯이 무효화되면 지평선이 다시 움직이지 않아 결국 서버의 WAL 저장 공간이 부족해지게 됩니다.

  • 월리시버토토 꽁 머니는 오류 후 카탈로그 조회 시도를 피하십시오(Masahiko Sawada, Bharath Rupireddy)§

  • 대기 서버의 시작 프로세스가 WAL 도착을 기다리는 동안 종료 신호에 즉시 응답하는지 확인하십시오(Fujii Masao, Soumyadeep Chakraborty)§

  • 트랜잭션 커밋 그룹의 구성원이 되지 못한 후 공유 상태를 올바르게 지우기(Amit Kapila)§

    적절한 타이밍이 주어지면 이후 세션토토 꽁 머니 동일한 PGPROC 개체를 재사용할 때 어설션 실패가 발생할 수 있습니다.

  • 다른 프로세스에서 동시 쓰기가 발생할 때 잘못된 relmapper 데이터를 읽는 것을 방지하기 위해 잠금을 추가합니다(Heikki Linnakangas)§ §

  • 병렬 btree 인덱스 빌드의 정렬 단계에 대한 진행 보고 개선(Matthias van de Meent)§

  • 복제 프로토콜 위반 검사 개선(Tom Lane)§

    논리적 복제 작업자는 유효하지 않거나 순서가 잘못된 복제 명령으로 인해 트리거될 수 있는 사례를 확인하기 위해 Assert를 자주 사용했습니다. 이는 현명하지 못한 것으로 보이므로 이러한 테스트를 정기적인 오류 확인으로 승격시키세요.

  • 분할된 테이블 업데이트의 논리적 복제에서 다양한 충돌 사례 수정(Amit Langote, Tom Lane)§ §

  • 논리적 복제 작업자에서 분할된 테이블의 AFTER 트리거 실행 시 잠재적인 충돌 수정(Tom Lane)§

  • 여러 논리적 복제 작업자가 동일한 테이블을 자르려고 할 때 교착 상태 수정(Peter Smith, Haiying Tang)§

  • 추측적 삽입의 논리적 디코딩에서 오류 사례 및 메모리 누수 수정(Dilip Kumar)§ §

  • 논리적 복제 출력의 메모리 누수 수정(Amit Langote)§ §

  • 오류 발생 후 유효하지 않은 레코드 유형 해시 테이블 항목을 남기지 마십시오(Sait Talha Nisanci)§

    이로 인해 나중에 충돌이나 메모리 누수가 발생할 수 있습니다.

  • 일부 오류 사례에서 계획 캐시 참조 누출 수정테이블 생성...실행으로(톰 레인)§

  • 병렬 작업자 간에 튜플 설명자를 공유하기 위한 코드의 경쟁 조건 수정(Thomas Munro)§

    적절한 타이밍이 주어지면 충돌이 발생할 수 있습니다.

  • 사용하지 않는 복제 슬롯을 삭제하거나 업데이트하려는 시도와 동시에 무효화할 때 경쟁 조건 수정(Andres Freund, Álvaro Herrera)§

  • BackgroundWorkerSlots(Tom Lane)을 출시할 때 발생할 수 있는 경쟁 조건 수정§

    이것은 Intel 하드웨어에서 관찰 가능한 버그를 수정하지 못할 가능성이 높지만 메모리 순서 규칙이 약한 시스템에는 문제가 있을 수 있습니다.

  • 코드 정렬 시 잠재적인 충돌 수정(Ronan Dunklau)§ §

    하나의 코드 경로가 널 포인터를 해제하려고 시도할 수 있습니다. 코어 서버의 정렬 사용토토 꽁 머니는 케이스에 연결할 수 없는 것처럼 보이지만 확장 프로그램에 의해 트리거될 수 있습니다.

  • 손상된 데이터에 대비하여 B-트리 게시 목록 분할 코드 강화 (Peter Geoghegan)§

    기존 항목과 동일한 TID를 가진 항목을 삽입하려고 하면 충돌 대신 오류가 발생합니다. 그런 일이 일어나서는 안 되지만, 인덱스가 테이블과 일치하지 않을 때 발생하는 것으로 보고되었습니다.

  • SP-GiST 인덱스 삽입 시 무한 루프 방지(Tom Lane)§

    INCLUDE 열이 리프 인덱스 튜플이 페이지에 맞지 않도록 충분한 공간을 차지하는 경우 text_ops 연산자 클래스는 튜플을 맞추려고 헛되이 무한 루프에 빠지게 됩니다. v11 이전 버전에는 INCLUDE 열이 없지만 어쨌든 이 루핑 방지 수정 사항을 백 패치하세요. 이는 연산자 클래스의 버그에 대한 좋은 방어책처럼 보입니다.

  • 쿼리 취소 요청에 의해 SP-GiST 인덱스 삽입이 종료될 수 있는지 확인하세요(Tom Lane, Álvaro Herrera)§ §

  • 초기화되지 않은 변수 버그 수정PL/pgSQL마치 ~인 것처럼 행동하다INTO절이 지정됨STRICT, 그렇지는 않았지만 (Tom Lane)§

  • libpq 인쇄 기능의 메모리 부족 오류로 인해 프로세스를 중단하지 마십시오(Tom Lane)§

  • ecpg, 허용숫자INT_MIN(보통 -2147483648)을 정수로 변환합니다(John Naylor)§

  • psql및 기타 클라이언트 프로그램, 잘못 인코딩된 데이터를 처리할 때 문자열 끝을 오버런하지 않도록 하세요(Tom Lane)§

    문자열 끝 부분에 잘못 인코딩된 멀티바이트 문자로 인해 다양한 처리 루프가 문자열의 종료 NUL을 지나 실행될 수 있으며 결과는 다음 메모리에 무엇이 있는지에 따라 감지할 수 없는 문제부터 프로그램 충돌까지 다양합니다. 이는 CVE-2006-2313을 연상시키지만 이러한 특정 사례는 흥미로운 보안 결과를 가져오지 않는 것으로 보입니다.

  • 수정pg_dump활성화 상태가 상위 트리거 상태와 다른 분할된 테이블에서 트리거를 올바르게 처리하기 위해(Justin Pryzby, Álvaro Herrera)§

  • 피하세요헤더의 생성 날짜가 잘못되었습니다.실행 시 경고가 관찰됨pg_restore다른 시간대토토 꽁 머니 생성된 아카이브 파일(Tom Lane)§

  • 만들다pg_upgrade이전 설치를 계속 진행가장 오래된XID값 (베르트랑 드루보)§

    이전에는 새로운 설치의가장 오래된XID(보통) 즉시 랩어라운드 방지 자동 진공화를 강제할 수 있을 만큼 오래된 값으로 설정되었습니다. 이는 성능 관점토토 꽁 머니 바람직하지 않습니다. 더 나쁜 것은 큰 값을 사용하는 설치입니다.autovacuum_freeze_max_age업그레이드 후 곧 원치 않는 강제 종료가 발생할 수 있습니다.

  • 연장pg_upgrade업그레이드해야 할 확장 프로그램을 감지하고 경고합니다(Bruce Momjian)§ §

    이제 다음을 포함하는 스크립트 파일이 생성됩니다.확장 업데이트 변경새 설치토토 꽁 머니 기본으로 간주되는 버전으로 확장 기능을 가져오는 데 필요한 명령입니다.

  • 전환 시 문제 방지pg_receivewal압축 및 비압축 WAL 저장소 사이(Michael Paquier)§ §

  • 수정contrib/postgres_fdw생성된 열을 유용하게 사용하기 위해 (Etsuro Fujita)§

    postgres_fdw이제 외부 테이블의 생성된 열이 원격 테이블의 생성된 열을 나타내는 한 생성된 열에 대해 합리적으로 작동합니다.외부 스키마 가져오기이제 기본적으로 생성된 열을 그런 식으로 가져옵니다.

  • contrib/postgres_fdw, 오류 발생 후 카탈로그 조회 시도를 피하세요(Tom Lane)§

    이것은 일반적으로 작동하지만 카탈로그 액세스를 작동하지 않게 만드는 오류일 수 있으므로 매우 안전하지 않습니다. 수정의 부작용은 데이터 변환 오류에 대한 메시지가 이제 외부 테이블이나 열의 실제 기본 이름이 아닌 쿼리의 테이블 및 열 별칭(사용된 경우)을 언급한다는 것입니다.

  • 격리 테스트 인프라 개선(Tom Lane, Michael Paquier)§ § § § § § §

    예상 완료 순서를 표시하기 위해 격리 테스트 단계에 주석이 추가되도록 허용합니다. 이를 통해 경쟁 조건을 방지하기 위해 이전에 사용했던(완전히 성공적이지는 않았지만) 긴 지연 없이 다른 경쟁 테스트 사례에서 안정적인 결과를 얻을 수 있습니다. 따옴표가 없는 식별자를 격리 테스트 세션/단계 이름으로 허용합니다(이전에는 이러한 모든 이름을 큰따옴표로 묶어야 했습니다). 격리 테스트에서 사용되지 않은 단계를 감지하고 경고합니다. 격리 테스트에서 쿼리 결과 표시를 개선합니다. 격리 테스터 제거시험 실행모드. Isolationtester 자체토토 꽁 머니 메모리 누수를 제거합니다.

  • 캐시 클로버 테스트의 오버헤드 감소(Tom Lane)§ §

  • 수정PL/파이썬의 회귀 테스트를 통과하여 Python 3.10(Honza Horak)§

  • 만들다printf("%s", NULL)인쇄(널)충돌 대신(Tom Lane)§

    이것은 코너 케이스토토 꽁 머니 서버 견고성을 향상시키며 우리의 동기화printf공용 라이브러리를 사용한 구현.

  • 특정 시점 복구가 a에서 중지될 때 잘못된 로그 메시지 수정롤백 준비됨기록 (사이먼 리그스)§

  • 개선테이블 변경잘못된 관계 종류 오류에 대한 메시지(호리구치 쿄타로)§

  • 다음을 참조하는 오류 메시지를 명확히 합니다.음수가 아닌값 (Bharath Rupireddy)§

  • 수정구성더 이상 별도의 API가 없는 OpenLDAP 2.5와 함께 작동합니다.libldap_r도서관 (아드리안 호, 톰 레인)§ § § §

    없을 경우libldap_r라이브러리, 이제 우리는 조용히 가정합니다libldap스레드로부터 안전합니다.

  • 새 만들기 대상 추가월드빈그리고설치-세계-빈(앤드류 던스턴)§ §

    이것들은 다음과 같습니다세계그리고설치세계각각, 문서를 작성하거나 설치하지 않는다는 점을 제외하고.

  • TAP 테스트에 대한 규칙 만들기 수정 (prove_installcheck) PGXS 사용에 대한 작업(Andrew Dunstan)§

  • 향후 LLVM API 변경에 대비하기 위해 JIT 코드 조정(Thomas Munro, Andres Freund)§

    LLVM 13은 이전 JIT 컴파일러의 충돌을 일으킬 수 있는 호환되지 않는 API 변경을 수행했습니다.

  • GSSAPI 라이브러리토토 꽁 머니 반환된 문자열이 null로 종료된다고 가정하지 마세요(Tom Lane)§

    GSSAPI 사양은 문자열 포인터와 길이를 제공합니다. 실제로 문자열 뒤의 다음 바이트는 일반적으로 0이므로 이전 코딩이 실제로 실패하지는 않은 것 같습니다. 하지만 AddressSanitizer 불만사항이 접수되었습니다.

  • MSVC토토 꽁 머니 GSSAPI를 사용하여 빌드 활성화(Michael Paquier)§ § §

    최신 Kerberos 빌드와의 다양한 비호환성을 수정합니다.

  • MSVC 빌드에 포함--with-pgport에서 보고한 구성 옵션 세트에서pg_config, 지정된 경우(Andrew Dunstan)§ §

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.