릴리스 노트

PostgreSQL

E.7. 릴리스 15.6

출시 날짜 :2024-02-08

이 릴리스에는 15.5의 다양한 수정 사항이 포함되어 롤 토토. 주요 릴리스 15의 새로운 기능에 대한 정보는 참조섹션 E.13.

E.7.1. 버전 15.6으로의 마이그레이션

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

그러나 하나의 버그가 고정되어 동시 업데이트 중에 진 지수가 손상 될 수있었습니다. 그러한 부패가 의심되는 경우,이 업데이트를 설치 한 후 Reindex에 영향을 미쳤습니다.

또한 15.5 이전 버전에서 업그레이드하는 경우 참조섹션 E.8.

E.7.2. 변화

  • 내에서 보안 제한 조임재생 구체화 된보기 동시에(Heikki Linnakangas)§ §

    동시 새로 고침 명령의 한 단계가 약한 보안 제한에 따라 실행되었습니다. 구체화 된 View의 소유자가 슈퍼 사용자 나 다른 유명한 사용자가 해당보기에서 동시 새로 고침을 수행하도록 설득 할 수 있다면 View의 소유자는 사용자가 실행되는 사용자의 권한으로 실행 된 코드를 제어 할 수 롤 토토새로 고침. 모든 사용자 결정 코드가 예상대로 뷰의 소유자로 실행되도록 사항을 고정하십시오.

    이 오류에 대한 유일한 악용은 작동하지 않습니다PostgreSQL16.0 이상, v16이 실제로 취약하지 않을 수 롤 토토.

    thePostgreSQL프로젝트이 문제를보고 한 Pedro Gallegos에게 감사드립니다. (CVE-2024-0985)

  • Jit Inlining을 수행 할 때 메모리 누출 수정 (Andres Freund, Daniel Gustafsson)§

    충분히 많은 JIT 편집 후에 메모리 외 조건을 겪는 백엔드 프로세스에 대한 여러 보고서가있었습니다. 이 수정은 그것을 해결해야합니다.

  • LWLOCK에서 탈출 할 때 대기 프로세스 목록 (Andres Freund)을 검색하지 않아도됩니다.§

    이것은 웨이터 목록이 길면 O (n^2) 행동을 수정합니다. 일부 유스 케이스에서는 이로 인해 상당한 처리량 개선이 발생합니다.

  • 부정확 한 파티션 조명 계획을 생성하지 마십시오 (Richard Guo)§

    측면 참조와 관련된 드문 상황은 잘못된 계획을 만들 수 롤 토토. 영향을받는 쿼리는 잘못된 답변이나와 같은 이상한 실패를 일으킬 수 롤 토토.변수 대상 목록에서 찾을 수없는 가변또는 집행자 충돌.

  • PlaceHolderVars (Tom Lane)에서 하위 쿼리 출력 표현식의 잘못된 래핑 수정§

    서브 쿼리가 외부 조인 아래에있을 때 잘못된 결과를 수정하고 외부 조인의 범위 외부에서 무언가를 측면으로 참조하는 출력 열이 롤 토토. 외부 조인의 동작으로 인해 출력 열이 널으로 나타나지 않을 수 롤 토토.

  • 창 함수 실행 조건 (Richard Guo)의 잘못 처리 수정§

    이 감독은로 이어질 수 롤 토토.subplan 대상 목록에서 찾을 수 없음오류.

  • 부적절한 조치 건너 뛰기병합교차 파티션 업데이트 (Dean Rasheed)를 유발합니다§

    실행할 때Merge Update파티션 된 테이블의 조치,업데이트삭제and삽입파티션 키 열 변경으로 인해 발사를 건너 뛰기업데이트 행 후트리거 및 RLS 검사와 같은 기타 업데이트 작업. 이러한 조치는 일반적으로 실패하므로 정기적 인 이유업데이트그러한 경우에는하지 않습니다.병합그렇지 않아야합니다.

  • 대처BEFORE ROW DELETE교차 파티션의 트리거병합업데이트 (Dean Rasheed)§

    그러한 트리거가 NULL을 반환하여 업데이트를 방지하려고 시도한 경우병합오류 나 주장 실패를 겪을 것입니다.

  • Longer-Pinned 버퍼에 대한 액세스 방지행 전 업데이트 전Triggers (Alexander Lakhin, Tom Lane)§

    다른 세션에서 업데이트되는 튜플이 방금 업데이트되어 다른 페이지로 이동 한 경우 버퍼에 핀없이 새 튜플 버전에서 데이터를 가져 오려는 좁은 창이있었습니다. 원칙적으로 이것은 제안 된 새로운 튜플의 업데이트 된 열에 쓰레기 데이터가 나타날 수 있습니다.

  • 병렬 해시 조인 (Thomas Munro, Andrei Lepikhov, Alexander Korotkov)에서 대형 공유 메모리 지역을 요청하지 마십시오.§ §

    제한 값이 너무 커서 허용잘못된 DSA 메모리 Alloc 요청 크기충분히 큰 예상 해시 테이블 크기로 발생하는 오류.

  • 어설 션 실패 방지heap_update ()andheap_delete ()외국 키 시행 트리거로 업데이트 할 튜플이 추가 가시성 크로스 체크 (Alexander Lakhin)에 실패 할 때§

    이 오류는 비 합산 빌드에 영향을 미치지 않았습니다.

  • 지나치게 긴밀한 주장을 고치려면false_positive_rateBrin Bloom Operator 클래스의 매개 변수 (Alexander Lakhin)§

    이 오류는 비 합산 빌드에도 영향을 미치지 않았습니다.

  • 가능한 고장 수정Alter Table 추가 열복잡한 상속 트리 (Tender Wang)에서§

    손자 테이블이 여러 중간 부모를 통해 새 열을 물려 받으면 명령이 실패했습니다튜플은 이미 self.

  • 중복 토큰 이름으로 문제를 해결변경 텍스트 검색 구성 ... 매핑Commands (Tender Wang, Michael Paquier)§

  • 관련 테이블을 올바르게 잠그십시오드롭 통계(Tomas Vondra)§

    잠금을 취득하지 못하면튜플 동시 삭제오류드롭동시에 실행분석.

  • 기능 변동성 검사 수정생성and기본값Expressions (Tom Lane)§

    이 장소는 휘발성 기능 기본 연락 표현식의 삽입을 감지하지 못하거나 다형 기능이 실제로 관심있는 데이터 유형에 불변이지만 휘발성이 있다고 결정할 수 있습니다. 이것은 부적절하게 거부하거나 수락 할 수 있습니다생성조항, 또는 실수로 일정한 변호인 값 최적화를 적용하기 위해Alter Table 추가 열.

  • 새로운 카탈로그 캐시 항목이 필드 (Tom Lane)를 해적하는 동안 부실 해 졌음을 감지합니다.§ §

    카탈로그 캐시에 삽입하기 전에 카탈로그 튜플의 외부 필드를 확장합니다. 여기에는 카탈로그 캐시 항목이 무효화 될 수있는 데이터베이스 액세스와 관련이 있지만 새 항목은 아직 캐시에 있지 않으므로 무효화되어야한다는 사실에 주목할 것입니다.

  • 일부 플랫폼에서 가장자리 사례 정수 오버 플로우 탐지 버그 수정 (Dean Rasheed)§

    컴퓨팅0 -int64_min오류 오류가 발생하고 대부분의 플랫폼에서 수행해야합니다. 그러나 정수 오버플로 빌드 딘이나 128 비트 정수가없는 플랫폼은 오버플로를 발견하지 못하고 대신 반환int64_min.

  • 추가 또는 빼기시 줄리안 날짜 오버플로 감지간격to/from a타임 스탬프(Tom Lane)§

    범위 외 오류를 유발 해야하는 경우 대신 잘못된 결과를 얻었습니다.

  • 오버플로에 대한 더 많은 점검 추가interval_mul ()andinterval_div ()(Dean Rasheed)§

    범위 외 오류를 유발 해야하는 경우 대신 잘못된 결과를 얻었습니다.

  • 변경 후 캐시 된 통계가 폐기되는지 확인하십시오.stats_fetch_consistency(Shinya Kato)§

    일부 코드 경로에서는 오래된 통계가 반환 될 수있었습니다.

  • 만들기PG_FILE_SETTINGS설정에 대한 적용되지 않은 값의 확인 유효성보기백엔드또는SuperUser-BackendContext (Tom Lane)§

    잘못된 값은 의도 한대로보기에 나타나지 않았습니다. 이 그룹에는 설정이 거의 없기 때문에 탈출 한 감지.

  • 기존 인덱스를 새로운 파티션 인덱스 (Peter Eisentraut)와 일치시킬 때도 콜라이트를 일치시킵니다.§

    이전에 우리는 파티션 키의 해당 요소와 다른 콜라이트를 갖는 색인을 수락하여 오작동으로 이어질 수 있습니다..

  • 아동 지수가 동시에 삭제되면 실패를 피하십시오Reindex Index파티션 된 인덱스 (FEI Changhong)§ §

  • 진 지수의 내부 페이지의 불완전한 분할을 청소할 때 불충분 한 잠금 수정 (Fei Changhong, Heikki Linnakangas)§

    코드는 버퍼의 독점 잠금이 아닌 공유로이를 수행하려고 시도했습니다. 두 프로세스가 정리를 동시에 시도하면 인덱스 손상으로 이어질 수 롤 토토.

  • GIN 인덱스 삽입에서 버퍼 핀의 조기 해제를 피하십시오 (Tom Lane)§

    인덱스 루트 페이지 분할이 우리 자신의 삽입과 동시에 발생하면 코드가 실패 할 수 있습니다버퍼 NNNN은 자원 소유자가 소유하지 않습니다.

  • 분할 된 SP-Gist 인덱스 (Tom Lane)의 실패를 피하십시오§

    이런 종류의 색인을 사용하려고 시도하면그러한 파일 또는 디렉토리 없음오류.

  • 큰 오브젝트에 대한 소유권 변경보고 수정 (Tom Lane)§

    a-op대형 오브젝트 소유자 변경명령 (즉, 기존 소유자를 선택하는 사람)은 잘못된 클래스 ID를 전달했습니다.​​Postalterhook

  • I/O 타이밍 데이터의보고 수정설명 (버퍼)(Michael Paquier)§

    숫자로 표시된 숫자공유/로컬실제로 공유 버퍼 만 참조하므로 해당 레이블을 변경하십시오공유.

  • 내구성 보장데이터베이스 생성(Noah Misch)§ §

    운영 체제 충돌이 발생하는 경우 또는 그 직후에데이터베이스 생성, 복구가 실패하거나 새로운 데이터베이스에 대한 후속 연결이 실패 할 수 롤 토토. 해당 창에서베이스 백업이 취해지면 백업을 사용하려고 할 때 유사한 문제가 관찰 될 수 롤 토토.pg_version파일 또는pg_filenode.map파일이 없거나 비어있었습니다.

  • Add morelog백업에서 시작 및 종료 할 때 메시지 (Andres Freund)§

    이 변경 사항은 회복 문제를 진단하는 데 유용 할 수있는 우체 마스터 로그에서 추가 정보를 제공합니다.

  • 대기 서버가 서브 트랜잭션 (FEI Changhong) 중에 죽은 색인 튜플을 잘못 처리하는 것을 방지합니다§

    theStartInRecovery플래그는 하위 트랜잭션을 위해 올바르게 설정되지 않았습니다. 이것은 죽은 색인 튜플의 처리에만 영향을 미칩니다.

  • 레코드가 WAL 디코딩 버퍼 (Thomas Munro)에 맞는지 여부를 확인할 때 정수 오버플로 위험 수정§

    이 버그는 32 비트를 실행할 때를 제외하고는 잠재적 인 것 같습니다PostgreSQL64 비트 플랫폼을 구축하십시오.

  • 논리적 복제 간의 교착 상태를 고정합니다.§

    교착 상태 루프의 한쪽 가장자리에는 잠금 대기가 포함되지 않았으므로 교착 상태는 감지되지 않았고 수동 개입까지 지속됩니다.

  • 열 기본값이 올바르게 전송되는지 확인하십시오.pgoutput논리 복제 플러그인 (Nikhil Benesch)§

    Alter Table 추가 열새 열에 대한 일정한 기본값을 사용하면 기존 튜플을 다시 쓰는 것을 피하는 대신 읽기 코드가 해당 열이없는 튜플에 올바른 기본값을 삽입 할 것으로 기대합니다. 이후 복제가 테이블에서 시작되면pgoutput이러한 열에 대한 올바른 기본값 대신 NULL을 전송하여 가입자에게 잘못된 복제를 유발합니다.

  • 열이없는 테이블에 대한 논리적 복제의 초기 동기화 실패 수정 (vignesh c)§

    이 케이스는 부적절한 형식을 생성했습니다COPY명령.

  • 논리 디코딩 중에 잘못된 스냅 샷으로 시스템 카탈로그 검사 방지 (FEI Changhong)§

    디코딩이 시스템 카탈로그를 수정하는 트랜잭션을 통해 파트 웨이를 시작하면 디코더는 그 트랜잭션을 카탈로그 조회에 대한 진행중인 것으로 취급하지 못하게 할 수 롤 토토. 이 수정 사항은 최상위 거래가 이미 카탈로그 변경을 포함하는 것으로 표시되지만 하위 트랜잭션은 아닙니다..

  • 새 클라이언트가 서버의 암호 도전에 응답하지 않고 연결을 끊을 때 올바른 상태 코드를 반환합니다 (Liu Lang, Tom Lane)§

    경우에 따라 우리는 이것을 loggable 오류로 취급합니다.PSQL자주이 작업을 수행합니다. 또한 사용하는 확장을 혼동 할 수도 롤 토토ClientAuthentication_hook.

  • 비 호환성 수정OpenSSL3.2 (Tristan Partin, Bo Andreson)§

    바이오 사용APP_DATA개인 저장 공간 필드, 사용해도 괜찮다고 가정하는 대신데이터필드. 이 실수는 전에는 문제를 일으키지 않았지만 3.2로 인해 두 번의 자유에 대한 충돌과 불만이 발생합니다.

  • 더 조심하십시오OpenSSL설정되지 않음errnoon Error (Tom Lane)§

    iferrno설정되지 않았으며보고 된 실패의 원인이 EOF라고 가정합니다. 이것은와 같은 이상한 오류 보고서의 드문 경우를 수정합니다.SSL 연결을 허용 할 수 없음 : 성공.

  • 외국 데이터 포장지의 경우 파일 디스크립터 누출 수정Forexasyncrequest함수 실패 (Heikki Linnakangas)§

  • 보고서enomem파일 관련 시스템의 오류errcode_out_of_memory, 아님errcode_internal_error(Alexander Kuzmenkov)§

  • inpl/pgsql, 지원기능 생성/절차 만들기SQL 표준 바디 (Tom Lane)§

    이전에, 이러한 경우는 기능 본문에 세미콜론 (들)이 나타나기 때문에 구문 분석 오류로 실패했습니다.

  • 수정libpq의 파이프 라인의 오류 처리 (Álvaro Herrera)§ §

    쿼리 문제 (예 : 연결이 손실 된 경우)에 대해 오류가 반환되면 파이프 라인 상태가 동기화되지 않을 수 있습니다. 잠재적으로 이것은 전화 응용 프로그램에서 바쁜 루프로 이어질 것입니다.

  • makelibpq'spqsendflushrequest ()함수는 다른 규칙에 따라 클라이언트 출력 버퍼를 플러시합니다pqsend기능 (Jelte Fennema-Nio)§

    파이프 라인 모드에서도 여전히 호출해야 할 수도 롤 토토pqflush (); 그러나이 변화는 약간의 불일치를 제거합니다.

  • 때 레이스 상태를 피하십시오libpqOpenSSL 지원 초기화 두 개의 다른 스레드 (Willi Mann, Michael Paquier)§

  • GSSAPI 데이터 전송 (Tom Lane)에서 타이밍 의존적 실패 수정§

    비 블로킹 모드에서 GSSAPI 암호화를 사용할 때libpq때때로 실패GSSAPI 발신자는 재조정해야 할 모든 데이터를 재전송하지 못했습니다.

  • inpg_dump, 확장 회원 객체에 대한 RLS 정책 또는 보안 레이블을 덤프하지 마십시오 (Tom Lane, Jacob Champion)§ §

    이전에, 명령은 이러한 속성을 설정하기위한 덤프에 포함되며, 이는 연장의 내부 문제로 간주되어야하므로 실제로 부정확합니다. 또한, 복원 사용자는이를 설정하는 데 적절한 권한이 없을 수 있으며, 실제로 덤핑 사용자는이를 덤프하기에 충분한 권한이 없을 수 있습니다 (RLS 정책을 덤프하기 때문에 테이블에 잠금을 획득해야하기 때문에)..

  • inpg_dump, 기본 테이블이 덤프되지 않으면 확장 통계 객체를 버리지 마십시오 (Rian McGuire, Tom Lane)§

    이것은 인덱스와 같은 다른 종속 객체의 동작을 준수합니다.

  • A에 대한 오류로 만듭니다pgbench개방형 파이프 라인으로 끝나는 스크립트 (Anthonin Bonnefoy)§

    이전,pgbencha가 이상하게 행동 할 것입니다.\ startPipeline명령이 부족한\ endpipeline. 이것은 사건이 아니라 스크립팅 실수처럼 보입니다.pgbench멋지게 처리해야하므로 오류를 던져야합니다.

  • 충돌 수정Contrib/Intarray요소가있는 배열이 인 경우int_max|gist__int_opsIndex (Alexander Lakhin, Tom Lane)§

  • 더 나은 오류를보고Contrib/PageInspect'shash_bitmap_info ()기능이 분할 된 해시 지수에 적용됩니다 (Alexander Lakhin, Michael Paquier)§

  • 더 나은 오류를보고Contrib/Pgstattuple'spgstathashIndex ()함수는 분할 된 해시 지수 (Alexander Lakhin)에 적용됩니다.§

  • Windows에서, 서브 프로세서를 시작할 때 Autorun 옵션을 억제합니다PG_CTLandPG_REGRESS(Kyotaro Horiguchi)§ §

    cmd.exe, 통과/d레지스트리에 지정된 Autorun 명령을 실행하는 것을 방지하기위한 플래그. 이것은 가능성이 높은 부작용을 피할 수 롤 토토.

  • 움직임IS_VALID_ASCII ()FromMB/PG_WCHAR.Htoutils/ascii.h(Jubilee Young)§

    이 변경 사항은 포함 할 필요가 없습니다inPG_WCHAR.H, 일부 타사 코드에 문제가 발생했습니다.

  • 컴파일 실패 수정libxml2버전 2.12.0 이상 (Tom Lane)§

  • 컴파일 실패 수정Wal_debugWindows의 코드 (Bharath Rupireddy)§

  • Python의 헤더 파일 (Peter Eisentraut, Tom Lane)에서 컴파일러 경고를 억제합니다.§

    선호하는 컴파일러 옵션은 최근 Python의 헤더 파일 버전에 나타나는 구성에 대한 경고를 유발합니다. 사용시GCC, 우리는 Pragma로 이러한 경고를 억제 할 수 롤 토토.

  • LLVM 18 (Thomas Munro)로 편집 할 때 감가 상각 경고를 피하십시오§

  • 시간대 데이터 파일 업데이트TZDATAGreenland, Kazakhstan 및 Palestine의 DST 법률 변경에 대한 2024a 릴리즈 및 남극 스테이션 Casey 및 Vostok의 수정. 베트남, 토론토 및 미켈론의 역사적 수정.§