릴리스 노트

PostgreSQL

E.7. 릴리스 14.11

출시 날짜 :2024-02-08

이 릴리스에는 14.10의 다양한 수정 사항이 포함되어 토토 꽁 머니. Major Release 14의 새로운 기능에 대한 정보는 참조섹션 E.18.

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

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

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

또한 14.10 이전 버전에서 업그레이드하는 경우 참조섹션 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)§

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 중복 토큰 이름으로 문제를 해결하십시오텍스트 검색 변경 ... 매핑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)§

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

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

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

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

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

  • 기존 인덱스를 새로운 파티션 된 인덱스 (Peter Eisentraut)와 일치시킬 때도 일치하는 Collation§

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

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

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

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

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

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

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

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

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

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

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

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

  • 논리적 복제 간의 교착 상태 수정 작업자, 테이블 동기 작업자 및 구독을 변경하려는 세션 프로세스 (Shlok Kyal)§

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

  • 논리 디코딩 중에 잘못된 스냅 샷으로 시스템 카탈로그 검사 방지 (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 발신자는 RETRING 필요한 모든 데이터를 재전송하지 못했습니다.

  • 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_maxA에 삽입됩니다gist__int_opsIndex (Alexander Lakhin, Tom Lane)§

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

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

  • Windows에서, Subprocesses를 시작할 때 Autorun 옵션을 억제합니다PG_CTLandpg_regress(Kyotaro Horiguchi)§ §

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

  • 컴파일 실패 수정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의 수정. 베트남, 토론토 및 미켈론의 역사적 수정.§