E.13. 릴리스 15.2

출시일: 2023-02-09

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

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

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

그러나 15.1 이전 버전에서 업그레이드하는 경우 다음을 참조하세요.PostgreSQL : 문서 : 15 : E.12. 스포츠 토토 사이트 15.1.

E.13.2. 변경사항

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

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

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

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

  • 다음의 가능한 실패 수정병합계산하다생성됨열 (딘 라시드)§

    첫 번째 행 수준 작업이병합업데이트, 모든 후속삽입작업 계산에 실패합니다생성됨계산에 불필요하다고 간주된 열업데이트작업(다음 중 하나에 의존하지 않기 때문에업데이트대상 열).

  • 수정병합접근할 수 없는지 확인언제절 (딘 라시드)§

    A 언제무조건 다음에 오는 절언제절은 연결할 수 없으므로 거부되어야 하지만 이 경우가 항상 감지되지는 않았습니다.

  • 수정병합의 규칙 탐지 테스트(Dean Rasheed)§

    병합규칙이 있는 테이블에서는 지원되지 않습니다. 그러나 한때 규칙이 있었지만 더 이상 규칙이 없는 테이블에서도 실패했습니다.

  • 병합, 세지 마세요아무것도 하지 않음처리된 튜플로서의 작업(Álvaro Herrera)§

    이렇게 하면 코드의 동작이 문서와 일치하게 됩니다.

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

    에 대한 참조SETCTE 내의 열은 다음과 같이 실패합니다.유형 0에 대한 캐시 조회 실패.

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

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

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

    언제pg_dump표시된 분할된 인덱스를 덤프복제본 ID, it generates a command sequence that applies복제본 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)§

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

  • 요소 수에 대한 임의 제한 제거int2벡터그리고oidVector(톰 레인)§

    이러한 유형의 입력 기능은 이전에 100개 이상의 요소를 거부했습니다. 논리적 복제 열 목록 기능이 도입됨에 따라 동의가 필요합니다.int2벡터s에는 최대 1600개의 열이 있습니다. 그렇지 않으면 긴 열 목록으로 인해 논리적 복제 오류가 발생합니다.

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

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

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

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

  • 창 함수 실행 조건 표현식에 대한 플래너 사전 처리 감독 수정(Richard Guo, David Rowley)§

    이로 인해 다음과 같은 플래너 오류가 발생할 수 있습니다.하위 계획 대상 목록사설 토토 WindowFunc를 찾을 수 없음.

  • 창 함수 실행 조건 표현식 실행 중 가능한 매달려 포인터 액세스 수정(David Rowley)§

    실제로는 실행 조건 최적화가 모든 반환에 발생하는 특정 창 기능에만 적용되기 때문에int8, 이는 32비트 빌드사설 토토만 문제로 나타났습니다.

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

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

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

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

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

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

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

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

  • 관계의 친척이 변경될 때 통계 기계가 혼동되는 것을 방지합니다(Andres Freund)§

    테이블을 뷰로 변환하면 충돌이나 어설션 실패가 발생할 수 있습니다.

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

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

  • 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)§

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

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

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

  • 논리적 디코딩 컨텍스트 생성 중 공유 상태를 업데이트하는 동안 스핀록 획득(사와다 마사히코)§

    2단계 트랜잭션에 대한 데이터를 업데이트하는 동안 적절한 잠금 획득을 무시하여 잠재적으로 다른 프로세스가 일관되지 않은 데이터를 볼 수 있게 했습니다.

  • 수정pgoutput테이블의 복제 열 목록에 나열되지 않은 열을 보내지 않는 복제 플러그인(Hou Zhijie)§

    업데이트그리고삭제이벤트가 구성된 열 목록에 주의를 기울이지 않아 예상보다 많은 데이터를 전송했습니다. 수신자가 내장된 논리적 복제 코드인 경우에는 문제가 발생하지 않았지만 다른 수신자에게 혼란을 줄 수 있으며 어떤 경우에도 네트워크 대역폭을 낭비합니다.

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

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

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

  • 수정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_basebackup(안토닌 후스카)§

  • 다음의 무해한 경고를 피하세요.pg_dumpin--존재하는 경우모드 (톰 레인)§

    만약에공개스키마에 기본이 아닌 소유자가 있으며 다음을 사용합니다.pg_dump's--존재하는 경우옵션으로 인해 경고 메시지가 발생함경고: "-- *initdb가 스키마를 생성하므로 스키마를 삭제하지 않음" 명령문에 IF EXISTS를 삽입할 위치를 찾을 수 없습니다.. 그래도 덤프 출력은 괜찮았습니다.

  • 수정psql's\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에서 분리되었습니다.

수정사항 제출

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