E.13. 릴리스 14.7

출시일: 2023-02-09

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

E.13.1. 버전 14.7로 마이그레이션

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

그러나 14.4 이전 버전에서 업그레이드하는 경우 다음을 참조하세요.PostgreSQL : 문서 : 14 : E.14. 토토 꽁 머니 14.4.

E.13.2. 변경사항

  • libpqGSSAPI 전송 암호화 시작 실패 후 메모리 내용이 누출될 수 있음(Jacob Champion)§

    수정된 서버 또는 인증되지 않은 중간자(man-in-the-middle)는 GSSAPI(Kerberos) 전송 암호화 설정 중에 0이 아닌 종료 오류 메시지를 보낼 수 있습니다.libpq그러면 해당 문자열과 응용 프로그램 메모리의 다음 바이트부터 다음 0바이트까지 오류 보고서에 복사됩니다. 호출 애플리케이션이 오류 보고서를 통해 수행하는 작업에 따라 애플리케이션 메모리 내용이 공개될 수 있습니다. 또한 메모리 끝을 넘어 읽기로 인해 충돌이 발생할 가능성도 적습니다. 서버 메시지를 올바르게 0으로 종료하여 문제를 해결하세요. (CVE-2022-41862)

  • 계산 수정생성됨다음 중 하위 테이블의 열을 업데이트해야 합니다.업데이트분할된 테이블 또는 상속 트리(Amit Langote, Tom Lane)§ §

    이것은 업데이트 실패를 수정합니다.생성됨상위 테이블에 존재하지 않거나 상위 열의 생성 표현식에 있는 것과 다른 종속성을 갖는 열.

  • 허용재귀적 ... 순환 포함CTE가 출력 열에 액세스함(Tom Lane)§

    에 대한 참조세트CTE 내의 열은 실패합니다.유형 0에 대한 캐시 조회 실패.

  • 외부 테이블에 대량 삽입을 수행할 때 보류 중인 삽입 처리 문제 수정(Etsuro Fujita)§ §

    어떤 경우에는 보류 중인 삽입이 FDW로 빨리 플러시되지 않아 논리적 불일치가 발생하는 경우가 있습니다.행 전트리거는 볼 수 있어야 하는 행을 보지 못합니다.

  • 허용복제본 ID(아직) 유효하지 않은 인덱스에 설정됨 (Tom Lane)§

    언제pg_dump표시된 분할된 인덱스를 덤프복제본 ID, 적용되는 명령 시퀀스를 생성합니다.복제본 ID분할된 인덱스가 유효한 것으로 표시되기 전에 복원이 실패합니다. 이 순서대로 수행하는 것을 금지할 타당한 이유가 없어 보이므로 허용하십시오. 색인이 유효해질 때까지 표시는 아무런 효과가 없습니다.

  • 다음 처리 수정기본값다음을 수행하는 규칙의 마커삽입다중 행무지개 토토목록 (딘 라시드)§

    어떤 경우에는 a기본값마커가 적절한 기본값 표현식으로 대체되지 않아 다음이 발생합니다.인식할 수 없는 노드 유형오류.

  • 정의되지 않은 변수 사용 거부jsonpath존재 확인(Alexander Korotkov, David G. Johnston)§

    그동안jsonpath일치 연산자가 경로 패턴의 정의되지 않은 변수에 대해 오류를 발생시켰으며 존재 연산자가 자동으로 이를 일치로 처리했습니다.

  • 수정jsonb토스트된 아래 첨자 값에 대처하기 위한 구독(Tom Lane, David G. Johnston)§

    테이블에서 직접 가져온 텍스트 값을 다음과 같이 사용jsonb아래 첨자가 실패할 가능성이 높습니다. 가져오기는 일반적으로 일치하는 요소를 찾지 못합니다. 할당 시 가비지 키와 함께 값을 저장할 수 있지만 해당 문제를 일으킬 만큼 긴 키는 현장무지개 토토 거의 발생하지 않습니다.

  • 병렬 해시 조인에서 극단적인 데이터 손상 수정(Dmitry Astapov)§

    임시 파일에 기록되는 큰 튜플의 마지막 덩어리가 정확히 32760바이트라면, 펜스포스트 버그로 인해 손상될 것입니다. 쿼리는 일반적으로 나중에 데이터 손상 증상으로 인해 실패합니다.

  • 기본값이 아닌 설정을 존중checkpoint_completion_target(바라스 루피레디)§

    변경 후 내부 상태가 업데이트되지 않았습니다.checkpoint_completion_target, 특히 해당 설정이 즉시 변경된 경우 체크포인트 I/O가 원하는 것보다 빠르거나 느리게 수행될 수 있습니다.

  • 올바른 종료 타임스탬프를 기록하세요.recovery_target_xid모드 (톰 레인)§

    다음에 따라 복구를 종료할 때recovery_target_xid다음으로 설정recovery_target_inclusive = 꺼짐, 우리는에 잘못된 타임스탬프(항상 2000-01-01)를 인쇄했습니다....트랜잭션 이전에 복구 중지 중로그 메시지.

  • 일부 버퍼링된 파일 읽기 실패에 대한 오류 보고 개선(Peter Eisentraut)§

    관련 없는 오류 코드를 보고하는 대신 원하는 실제 읽은 바이트 수를 제공하여 짧은 읽기를 올바르게 보고합니다. 대부분의 장소무지개 토토는 이미 이 문제가 올바르게 처리되었지만 최근에 작성된 일부 복제 논리무지개 토토는 그렇지 않았습니다.

  • 확장 쿼리 프로토콜무지개 토토는 이후 즉시 커밋을 피하세요.분석파이프라인을 실행 중인 경우(Tom Lane)§

    명시적인 내용이 없는 경우거래 시작, 분석스스로 커밋을 수행하지만 파이프라인된 일련의 명령 내무지개 토토 발생해서는 안 됩니다.

  • 길이가 잘못된 취소 요청 패킷 거부(Andrey Borodin)§

    서버는 길이 단어가 너무 작더라도 취소 요청을 처리합니다. 이로 인해 할당된 버퍼의 끝을 넘어서 읽게 되었습니다. 이론적으로는 세그폴트가 발생할 수 있지만 버퍼가 메모리 끝에 매우 가까워야 하기 때문에 실제로는 발생할 가능성이 거의 없습니다. 더 가능성이 높은 결과는 잘못된 백엔드 PID 또는 취소 코드에 대한 가짜 로그 메시지였습니다. 대신 길이가 잘못되었다고 불평하세요.

  • 하위 쿼리 풀업에 재귀 및 루프 방어 추가(Tom Lane)§

    인위적인 쿼리로 인해 깊은 재귀가 발생하고 하위 쿼리를 평면화하는 데 무리한 시간이 소요될 수 있습니다. 이에 대한 적절한 수정은 백 패치에 지나치게 침해적인 것처럼 보이지만 최소한 스택 깊이 검사와 인터럽트 검사를 추가하여 쿼리가 취소될 수 있도록 할 수 있습니다.

  • Memoize 노드를 파티션별 조인 또는 매개변수화된 Nestloop와 결합할 때 플래너 문제 수정(Richard Guo)§ §

    이러한 오류로 인해 Memoize가 유용할 수 있는 상황무지개 토토 Memoize를 사용하지 않거나 잘못된 쿼리 계획이 발생할 수 있습니다.

  • 각 파티션에 대한 계획 생성 실패를 허용하도록 파티션별 조인 코드 수정(Tom Lane)§

    이로 인해 다음이 발생할 수 있습니다.주어진 쿼리에 대한 쿼리 계획을 고안할 수 없습니다.오류.

  • 다음 사람이 수행하는 정리 작업량을 제한합니다.get_actual_variable_range(사이먼 리그스)§

    인덱스 끝에 나타나는 많은 수의 튜플을 삭제한 직후에 발생하는 플래너 실행은 상당한 양의 작업을 설정하는 데 소비될 수 있습니다.사망해당 색인 항목에 대한 비트입니다. 100개의 힙 페이지를 검사한 후 이 프로세스를 포기하여 하나의 쿼리무지개 토토 수행되는 작업량을 제한합니다. 결국에는 모든 정리 작업이 수행되지만 성능상 큰 문제는 발생하지 않습니다.

  • 괄호 아래에 표시된 내용 수정시간대에구조물 (톰 레인)§

    이로 인해 다음 인수가 있는 규칙 또는 보기에 대한 덤프/복원 실패가 발생할 수 있습니다.시간대에그 자체가 표현입니다.

  • SQL 함수의 유틸리티 명령문에 대한 캐시된 구문 분석 트리의 클로버링 방지(Tom Lane, Daniel Gustafsson)§

    SQL 언어 함수가 단일 호출 쿼리 내에서 동일한 유틸리티 명령을 두 번 이상 실행하는 경우 충돌이 발생하거나 다음과 같은 이상한 오류가 보고될 수 있습니다.인식할 수 없는 노드 유형.

  • 구문 일치를 수행하는 동안 전체 텍스트 검색 쿼리 실행이 취소될 수 있는지 확인하세요(Tom Lane)§

  • 비결정적 데이터 정렬을 사용하는 해싱 문자열의 메모리 누수 수정(Jeff Davis)§

  • 사이의 교착상태 수정데이터베이스 삭제및 논리적 복제 작업자 프로세스(Hou Zhijie)§

    이는 작업자에 논리적 복제 슬롯을 생성하는 동안 인터럽트를 차단하는 잘못된 선택으로 인해 발생했습니다. 버전 15무지개 토토는 감지되지 않은 교착 상태가 발생할 수 있습니다. 버전 14무지개 토토는 교착 상태가 관찰되지 않았지만 네트워크 I/O를 기다리는 동안 인터럽트를 차단하는 것은 여전히 ​​좋지 않습니다.

  • 정리libpq실패한 복제 연결 시도 후의 연결 개체(Andres Freund)§

    이전 코딩으로 인해 연결 개체가 유출되었습니다. 호출 프로세스가 포기되고 종료되기 때문에 백그라운드 코드 경로에서는 꽤 무해합니다. 그러나 다음과 같은 명령에서는구독 작성, 이러한 실패로 인해 세션 수명이 짧은 메모리 누수가 발생했습니다.

  • 상시 대기 서버무지개 토토 기본 서버무지개 토토 활성화된 것으로 알려진 XID를 추적하기 위한 처리 노력을 줄입니다(Simon Riggs, Michail Nikolaev)§

    KnownAssignedXids 배열을 불충분하게 정리하면 특히 다음과 같은 경우 성능이 저하될 수 있습니다.max_connections대기 모드무지개 토토는 큰 값으로 설정됩니다.

  • 가장 오래된 카탈로그 xmin을 결정하는 동안 무효화된 논리 복제 슬롯을 무시합니다(Sirisha Chamarthi)§

    복제 슬롯은 초과로 인해 무효화된 후에도 시스템 카탈로그의 데드 튜플 정리를 방지할 수 있습니다.max_slot_wal_keep_size. 따라서 복제 소비자가 실패하면 카탈로그가 무한정 팽창할 수 있습니다.

  • 논리적 디코딩무지개 토토 트랜잭션이 충돌한 것으로 감지되면 원격 노드에 알립니다(Hou Zhijie)§

    서버를 다시 시작한 후 다시 시작하기 직전에 발생한 트랜잭션에 대한 변경 사항을 다시 스트리밍합니다. 이러한 거래 중 일부는 완료되지 않았을 수도 있습니다. 우리가 그렇지 않다는 것을 깨달았을 때 우리는 관련 디코딩 상태를 로컬에서 버리지만 구독자에게 이에 대해 알리는 것을 무시했습니다. 이로 인해 구독자는 다음에 다시 시작할 때까지 쓸모 없는 스트리밍 파일을 보관하게 되었습니다.

  • 논리적 디코딩에서 초기화되지 않은 메모리 사용 수정(사와다 마사히코)§

    어떤 경우에는 논리적 디코딩을 재개하면 이미 해제된 XID 데이터를 재사용하려고 시도하여 예측할 수 없는 동작이 발생할 수 있습니다.

  • 드문 것을 피하세요정리 잠금 획득에 실패했습니다해시 인덱스 페이지 분할 작업의 WAL 재생 중 패닉 발생(Robert Haas)§

  • WAL 재생 중에 모두 표시되는 비트를 설정할 때 힙 페이지의 LSN을 향상시킵니다(Jeff Davis)§

    이렇게 하지 않으면 대기 서버의 페이지가 기본 서버와 다를 수 있으며 LSN 변경 시기에 대한 다른 기대치를 위반했습니다. 이는 지금까지 이론적 위험으로만 보입니다.포스트그레SQL그 자체도 우려되지만 타사 도구를 혼란스럽게 할 수 있습니다.

  • 관계 캐시 항목의 안전하지 않은 사용 방지rd_smgr포인터 (아물술)§

    다양한 가정을 제거합니다.rd_smgr필요한 경우 이를 다시 계산하는 함수에 모든 사용을 래핑하여 일련의 작업 동안 유효하게 유지됩니다. 이는 이러한 시리즈 도중에 예상치 못한 캐시 플러시가 발생할 때 발생하는 버그를 방지합니다.

  • 수정int64_div_fast_to_numeric()더 넓은 범위의 입력을 위해 작업합니다(Dean Rasheed)§

    이 함수는 두 번째 인수의 일부 값으로 인해 오작동했습니다. 코어에는 그러한 사용법이 없습니다.PostgreSQL, 하지만 외부 모듈에는 분명히 위험하므로 수리하세요.

  • 잠재적인 버퍼 오버런 문제 수정WaitEventSet논리 (토마스 먼로)§

    에폴기반 및kqueue기반 구현은 내부 버퍼의 크기가 호출자의 출력 버퍼 크기와 다른 경우 커널에 너무 많은 이벤트를 요청할 수 있습니다. 해당 사건은 출시된 곳무지개 토토는 발생하지 않는 것으로 알려져 있습니다PostgreSQL버전이지만 이 오류는 외부 모듈 및 향후 버그 수정에 위험합니다.

  • 32비트 빌드무지개 토토 공유 메모리에 액세스할 때 명목상 정의되지 않은 동작 방지(Andres Freund)§

    clang의 정의되지 않은 동작 새니타이저가 필요한 것보다 덜 정렬된 포인터 사용에 대해 불평했습니다. 디버그가 아닌 빌드에서 문제가 발생할 가능성은 거의 없지만 테스트 목적으로 수정할 가치가 있습니다.

  • BRIN minmax-multi opclasses의 어설션 실패 수정(Tomas Vondra)§

    어설션은 지나치게 엄격했기 때문에 이 실수는 비어설션 빌드무지개 토토는 무해했습니다.

  • 쓸모없는 RESULT-RTE 최적화 로직무지개 토토 잘못된 어설션 제거(Tom Lane)§

  • ACL 검사에 대한 캐시 조회 실패 메시지의 복사 및 붙여넣기 오류 수정(Justin Pryzby)§

    원칙적으로 이러한 오류에는 도달해서는 안 됩니다. 하지만 만약 그렇다면 그들 중 일부는 잘못된 유형의 개체를 보고한 것입니다.

  • pg_dump, 검사할 테이블에 잠금이 설정되기 전에 안전하지 않은 서버 함수를 호출하지 마세요(Tom Lane, Gilles Darold)§ §

    pg_dump동시에 삭제되는 테이블을 검사하는 경우 실패할 수 있는 특정 서버 기능을 사용합니다. 테이블의 속성을 너무 깊이 조사하기 전에 액세스 공유 잠금을 획득하고 전혀 덤프할 의도가 없는 테이블에 이러한 기능을 적용하지 않도록 하여 이러한 유형의 실패를 피하세요.

  • 수정psql\sf그리고\efSQL 언어 함수를 처리하는 명령SQL-표준 함수 본문(Tom Lane)§

    이 명령은 새로운 스타일 구문을 사용할 때 함수 본문의 시작을 잘못 식별했습니다.

  • 탭 완성 수정함수/절차/루틴 변경 ... 스키마 설정(딘 라시드)§

  • 수정기여/세그먼트입력 숫자가 127자리를 초과하는 경우 충돌이 발생하거나 쓰레기를 인쇄하지 않도록 (Tom Lane)§

  • Microsoft Visual Studio 2013의 빌드 수정(Tom Lane)§

    이전 패치에서는 관심 있는 모든 플랫폼이 있다고 가정했습니다.snprintf(), 하지만 MSVC 2013은 아직 출시되지 않았습니다. 사용으로 되돌리기스프린트()해당 플랫폼무지개 토토.

  • Strawberry Perl을 사용할 때 MSVC로 PL/Perl을 빌드할 때 컴파일 오류 수정(Andrew Dunstan)§

  • MSVC로 구축된 PL/Perl과 gcc로 구축된 Perl 라이브러리의 불일치 수정(Andrew Dunstan)§

    이러한 조합은 이전에 실패할 수 있었습니다.로드 가능한 라이브러리와 Perl 바이너리가 일치하지 않습니다.오류.

  • Perl 헤더 파일무지개 토토 컴파일러 경고 억제(Andres Freund)§

    우리가 선호하는 컴파일러 옵션은 최신 버전의 Perl 헤더 파일에 나타나는 구성에 대한 경고를 유발합니다. 사용시gcc, pragma를 사용하여 이러한 경고를 억제할 수 있습니다.

  • 수정pg_waldump사용하지 않는 정적 인라인 함수를 삭제하지 않는 컴파일러를 기반으로 구축(Tom Lane)§

  • 다음으로 시간대 데이터 파일 업데이트tzdata2022g 릴리스에서는 그린란드와 멕시코의 DST 법률 변경 사항과 캐나다 북부, 콜롬비아, 싱가포르의 역사적 수정 사항이 적용됩니다. (톰 레인)§

    특히, 새로운 시간대 America/Ciudad_Juarez가 America/Ojinaga무지개 토토 분리되었습니다.

수정사항 제출

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