릴리스 노트

PostgreSQL

E.10. 릴리스 13.11

출시 날짜 :2023-05-11

이 릴리스에는 13.10의 다양한 수정 사항이 포함되어 토토. Major Release 13의 새로운 기능에 대한 정보는 참조섹션 E.21.

E.10.1. 버전 13.11로의 마이그레이션

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

그러나 13.7 이전 버전에서 업그레이드하는 경우 참조하십시오.섹션 E.14.

E.10.2. 변화

  • 예방스키마 생성|search_path(Alexander Lakhin)§ §

    a 내스키마 생성명령, 우세의 개체search_path및 새로 만들어진 스키마의 스키마에있는 것들도 보안을 설정하려는 호출 된 함수 또는 스크립트 내에서도 볼 수 토토search_path. 이를 통해 보안 정의 기능 또는 확장 스크립트의 권한을 납치 할 수있는 스키마를 작성할 수있는 사용자가 허가 할 수 토토.

    thePostgreSQL이 문제를보고 한 Alexander Lakhin 프로젝트. (CVE-2023-2454)

  • 정식 회복 기능을 인화 한 후 (Stephen Frost, Tom Lane)§

    설정 회전 SQL 언어 함수가로드 레벨 보안 정책이있는 테이블을 말하면 호출 쿼리에 부활 할 수있는 경우, 해당 RLS 정책은 다른 역할 하에서 캐싱 된 계획을 재사용하는 경우 제대로 시행되지 않습니다. 이를 통해 사용자는 보이지 않았던 행을 보거나 수정할 수 토토.

    thePostgreSQL이 문제를보고 한 프로젝트 감사 Wolfgang Walther. (CVE-2023-2455)

  • 새 스키마 이름이 생략 될 때 충돌을 피하십시오스키마 생성(Michael Paquier)§

    SQL 표준은 쓰기를 허용합니다스키마 승인 만들기소유자 _name, 스키마 이름이 기본값으로소유자 _name. 그러나 일부 코드 경로는 스키마 이름이 존재할 것으로 예상하고 실패 할 것입니다.

  • 분할 된 테이블에서 복제 된 트리거를 활성화/비활성화 (Tom Lane)§

    ALTER 테이블 ... 트리거 사용자 활성화/비활성화복제 된 트리거를 건너 뛰고 시스템 트리거를 착각합니다. 의 다른 변형트리거 활성화/비활성화처리 할 것입니다. 그러나 부적절하게 슈퍼 버스 니스 점검을 시행 한 후에 만.

  • 인덱스에 저장된 복합 유형을 사용할 수 없음 (Tom Lane)§

    Alter Type테이블 열에 저장된 경우 복합 유형의 이진성 호환 수정을 해제합니다. (아마도 언젠가는 허용 될 것이지만 아직 일어나지 않았을 것입니다. 많은 테이블을 다시 작성하는 잠금의 영향은 어려워요.) 우리는 인덱스에 테이블에 나타나지 않는 복합 유형이 포함되어있을 가능성을 간과했습니다..

  • 시스템 열을 외국 키의 요소로 삼지 않음 (Tom Lane)§

    시스템 열로 OID를 제거하기 때문에 이에 대한 그럴듯한 사용 사례가 없으며 다양한 코드가 더 이상 지원되지 않습니다. 모든 사례를 고치려고하지 않고 그것을 허용하지 않습니다.

  • 복사RLS 지원 상위 테이블에서 자식 테이블 (Antonin Houska)에서 행을 복사하지 않습니다§

    문서는 분명합니다.복사명명 된 테이블에서만 행을 복사합니다. 그러나 표에서로드 레벨 보안이 활성화되면 사실이 멈췄습니다.

  • 가능한 충돌을 피하십시오array_position ()또는array_positions ()빈 배열 (Tom Lane)이 전달됩니다.§

  • 가능한 외부의 페치 수정to_char ()(Tom Lane)§

    불운으로 서버 충돌이 발생했을 수 토토.

  • 버퍼 오버 리드를 피하십시오Translate ()기능 (Daniil Anisimov)§

    삭제 기능을 사용할 때 함수는 입력 문자열 직후에 바이트를 가져와 충돌 위험이 적습니다..

  • JSON String Literals (Tom Lane)의 구문 분석 오류에 대한 오류 커서 설정 수정§

    JSON 값 내 문자열 리터럴에서 구문 오류가 감지되는 대부분의 경우 오류 커서를 적절하게 설정하지 못했습니다. 이로 인해 적어도 도움이되지 않는 오류 메시지 (실제 문제 지점이 아닌 문자열 이전의 토큰을 가리키는)로 이어졌으며 V14 이상에서 충돌이 발생할 수도 있습니다..

  • 로 인한 데이터 손상 수정VACUUM_DEFER_CLEANUP_AGE현재 64 비트 XID (Andres Freund)보다 큰§

    v14에서 나중에 v14에서VACUUM_DEFER_CLEANUP_AGE, 매우 큰 진공 청소 Horizon XID를 계산할 수 있었으며, 아직도 살아있는 진공 제거 행을 이끌어 냈습니다. V12와 V13은 GIST 인덱스에만 영향을 미치는 동일한 문제의 형태가 적으므로 색인 페이지가 너무 일찍 재활용 될 수 토토.

  • 파서의 부적절한 네그 레이트 (Tom Lane)의 일부 사례를 감지하지 못하는 파서의 수정§

    이 감독은 유효하지 않은 것으로 거부 된 쿼리에 대한 집행자 실패로 이어질 수 토토.

  • 직렬 구문 분석 중 데이터 구조 손상 수정시퀀스 이름옵션 (David Rowley)§

    이벤트 트리거가 손상된 구문 분석 트리를 포착하면 문제가 발생할 수 토토.

  • 한 노드에서 다른 노드로이 시작을 움직일 때 계획 노드의 평행 안전 표시를 올바르게 업데이트합니다 (Tom Lane)§

    이 플래너 감독은로 이어질 수 토토하위 플랜이 초기화되지 않았습니다런타임 오류.

  • 호출에 하위 선택자 (David Rowley)가 포함되어있을 때 창 집계에 대한 역 전달 최적화 비활성화§

    이 최적화는 골재의 인수 표현이 반복 가능한 결과를 가져야하므로 하위 선택에 적용되지 않을 수 토토.

  • 중첩 실행시 감독 수정배열 []Constructs (Alexander Lakhin, Tom Lane)§

    결과 배열에 필요한 총 공간의 오버플로를 올바르게 감지하여 크기가 크기가 큰 출력 할당으로 인한 충돌이 발생하지 않습니다. 또한 결과 배열의 후행 패딩 공간이 제로화되어 있는지 확인하십시오.

  • Domain-Over-Composite-Type 컬럼 (Dmitry Dolgov) 내 필드를 업데이트 할 때 충돌 방지§

  • 부울 열에 분할을위한 파티션 치기 논리 수정 (David Rowley)§

    같은 조건으로 가지 치기부울은 사실이 아닙니다잘못 완료되었으며, 그 어느 행을 반환하지 않을 수 토토부울는 null입니다. 또한, 파티셔닝의 가능성은 거의 없습니다부울잘못 처리되었습니다.

  • 병렬 해시 조인 중에 배치 당 청소에서 레이스 조건 수정 (Thomas Munro, Melanie Plageman)§

    운이 좋지 않은 타이밍과 충돌이 가능했습니다.Parallel_Leader_Participation = off(기본값이 아님).

  • Recalculate생성평가 후 검사 후 열 (Tom Lane)§

    in저지른 읽기격리 모드, 행 업데이트의 효과는 원래 발견 된 쿼리보다 최신 버전의 행에 다시 적용되어야 할 수 토토. 그렇다면, 우리는 모든 것을 다시 컴퓨팅해야합니다생성열, 동시 업데이트에 의해 변경된 열에 의존 할 경우

  • 테이블에 관계가있는 경우 진공 비용 지연 균형을 잡지 마십시오VACUUM_COST_DELAY0의 설정 (Masahiko Sawada)§

    autovacuum이 릴레이션으로 테이블을 처리 할 때마다 지연 밸런싱이 비활성화되어야합니다VACUUM_COST_DELAY설정, 그러나 이것은 0이 아닌 양수 설정에 대해서만 수행되었습니다.

  • 열이 뷰의 끝에 추가되었을 때 코너 케이스 충돌 수정 (Tom Lane)§

  • 파티션 된 업데이트에서 MultiexPr_Sublink 하위 플랜의 희귀 실패 (Andres Freund, Tom Lane)§

    구문 사용삽입 ... 충돌시 업데이트 세트 (C1, ...) = (select ...)분할 된 대상 테이블이 있으면 자식 테이블이 부모와 다른 경우 (예 : 다른 물리적 열 순서)가 실패 할 수 토토. 이것은 일반적으로 집행자의 일관성 검사 실패로 나타납니다.

  • 수정기본값멀티 랑 내 마커삽입 ... 값A가있는보기에 쿼리삽입 ... 선택Rule (Dean Rasheed)§

    그러한 경우는 일반적으로인식되지 않은 노드 유형오류 또는 어설 션 실패.

  • 지원 참조oldandNEW규칙 조치의 하위 쿼리 내에서 (Dean Rasheed, Tom Lane)§

    이러한 참조는 실제로 측면 참조이지만 하위 퀘스트가 명시 적으로 표시되지 않으면 서버가 충돌 할 수 토토측면. 필요할 때 암시 적으로 그렇게하도록 준비하십시오.

  • 규칙 또는 SQL 기능 본체를 포함 할 때삽입/업데이트/삭제with, 대상 테이블 (Tom Lane)의 올바른 별칭을 인쇄하도록주의하십시오.§

  • 수정 inSerializable 읽기 전용최적화 (Thomas Munro)§ §

    이미 표시된 거래운명안전한 SNAPSHOT 최적화 혼동Serializable 읽기 전용거래. 어떤 경우에는 최적화가 불필요하게 건너 뜁니다.

  • 누출을 피하십시오 캐시 콜백 슬롯pgoutput논리 디코딩 플러그인 (Shi Yu)§

    단일 세션 내에서 플러그인을 시작하고 종료하는 다중주기relcache_callback_list 슬롯에서오류.

  • 인덱스 운영자 클래스 옵션 (Alexander Korotkov)에 대한 사용자 정의 유효성 검사기에 대한 불필요한 호출을 피하십시오§

    이 변경 사항은 예기치 않은 오류가 발생한 경우를 수정합니다.

  • Gist Index (Alexander Lakhin)의 버퍼링 빌드 중 매달린 포인터의 피로 수정§

    이 오류는 생산 구축에서 일반적으로 무해한 것으로 보입니다. 그러나 원칙적으로 서버 충돌을 일으킬 수 토토.

  • 업데이트 또는 삭제 조치의 논리적 복제 중에 삭제 된 열 및 열을 무시합니다 (Onder Kalaci, Shi Yu)§ §

    복제 아이덴티티 전체테이블에 해당 열이 포함 된 경우 옵션이 실패했습니다.

  • 커밋 타임 스탬프 (Alexander Lakhin)의 SLRU 버퍼 I/O 대기 이벤트 이름 수정§

    이 대기 이벤트는입니다.CommittSbuffer문서에 따르면 코드는CommittSbuffer. 관련 대기 이벤트의 이름과 더 일치하기 때문에 문서와 일치하도록 코드를 변경하십시오.

  • 보관할 WAL 세그먼트 수를 계산할 때 가능한 언더 플로우를 피하십시오 (Kyotaro Horiguchi)§

    이것은 존중하지 않을 수 토토Wal_Keep_Size정확하게.

  • SCRAM-SHA-256 채널 바인딩을 사용한 RSA-PSS 인증서 지원 (Jacob Champion, Heikki Linnakangas)§

    이 기능을 사용하려면 OpenSSL 1.1.1 또는 최신 건물이 필요합니다. 서버와libpq영향을받습니다.

  • Windows (Thomas Munro)에서 프로세스 ID 추적으로 레이스 조건을 피하십시오§ § §

    우체국이 아동 과정이 사라 졌다는 것을 관찰하기 전에 운영 체제는 PID를 재활용 할 수 토토. 이로 인해 동일한 PID가있는 두 명의 어린이를 추적하여 혼란을 초래할 수 토토.

  • 누락 된 사례 추가spi_result_code_string ()(Dean Rasheed)§

  • 잘못된 valgrind 표시에서AllocsetRealloc ()(Karina Litskevich)§

    큰 (> 8KB) palloc chunk의 크기가 감소하는 특이한 경우, Valgrind-Aware 빌드는 덩어리에서 방출 된 메모리의 정의 된 상태를 valgrind 테스트 중에 잘못된 결과를 초래할 수 있습니다..

  • 트랜잭션 논리 복제 메시지를 해독 할 때 어설 션 실패를 피하십시오 (Tomas Vondra)§

  • 정규 표현식을 처리 할 때 로케일 감도를 피하십시오 (Jeff Davis)§

    ASCII가 아닌 캐릭터가 뒤 따르는 백 슬래시 다음과 같은 로케일에 따라 때때로 어설 션 실패를 일으킬 수 있습니다.

  • empty wal 레코드를 쓰는 것을 피하십시오log_newpage_range ()지정된 범위의 마지막 몇 페이지가 비어있을 때 (Matthias van de Meent)§

    이 사례가 릴리스 된 지점에서 도달 할 수 있는지는 전적으로 명확하지 않지만, 그렇다면 어설 션 실패가 발생할 수 토토..

  • 수정 세션 리포드 메모리 누출PLPGSQL do캐스트 표현식을 사용하는 블록 (Ajit Awekar, Tom Lane)§

  • Perl 목록 구조를 다차원 SQL 어레이 (Tom Lane)로 변환 할 때 배열 차원 검사 조임§

    plperl데이터가 직사각형 값 배열을 나타내지 않도록 하위 목록의 중첩이 일치하지 않으면 잘못 행동 할 수 있습니다. 이러한 경우에는 이제 오류가 발생하지만 이전에는 충돌 또는 쓰레기 생산량을 초래할 수 있습니다.

  • 파이썬 목록 구조를 다차원 SQL 어레이 (Tom Lane)로 변환 할 때 배열 차원 검사를 조입니다.§ §

    Plpython빈 서브리스트를 다루거나 하위 목록의 둥지가 일치하지 않아 데이터가 직사각형 값을 나타내지 않도록 잘못 행동 할 수 토토. 전자는 빈 출력 배열을 초래하고 후자는 오류가 발생해야합니다.

  • 예외 스택 풀기 수정Plpython(Xing Guo)§

    일부 드문 실패 사례는 PG_TRY 예외 스택을 정리하지 않고 반환 될 수 있으며, 다음 스택 레벨이 풀리기 전에 다른 오류가 발생하면 충돌이 발생합니다.

  • 일관되지 않은 GSS 암호화 오류 처리 수정libpq'spqConnectPoll ()(Michael Paquier)§

    withgssencmode설정요구, GSS 초기화 실패 후 연결이 사망하지 않았습니다. TLS 암호화의 동등한 사례가 오랫동안 수행되었으므로 즉시 실패하게합니다.

  • 가능한 데이터 손상 수정ECPG프로그램과 함께 구축 된 프로그램-C Oracle옵션 (Kyotaro Horiguchi)§

    언제ecpg_get_data ()로 호출varcharsize0으로 설정하면 전선 필드의 마지막 바이트에 종료 제로 문자를 쓸 수있어 해당 필드의 데이터를 잘라냅니다..

  • 수정pg_dump열거 유형 열에서 해시 파티션 된 분할 된 테이블을 성공적으로 복원 할 수 있도록 (Tom Lane)§

    열거 값에 대한 해시 코드는 열거에 할당 된 OID에 의존하기 때문에 일반적으로 덤프 및 복원 후에 다릅니다. 즉, 행은 종종 원래와 다른 파티션으로 들어가야합니다. 사용자는를 지정하여이를 해결할 수 토토.-Load-Via-Partition-Root옵션; 그러나 그 없이는 성공할 가능성이 거의 없기 때문에 가르치는pg_dump해당 테이블에 자동으로 적용하려면

    또한, 수정PG_RESTORE시도하지 않으려는Truncate타겟 테이블을 복원하기 전에-Load-Via-Partition-Root모드가 사용됩니다. 이것은 교착 상태와 데이터 손실의 위험을 피합니다.

  • inContrib/hstore_plpython, 변환 될 파이썬 값이 매핑이 아닌 경우 충돌하지 마십시오 (Dmitry Dolgov, Tom Lane)§

    이것은 오류가 발생해야하지만 Python 3은 수표가 잘못 행동 한 방식으로 일부 API를 변경하여 충돌이 발생할 수있게했습니다..

  • 필요Siglenan에서 Gist Index의 옵션ltree열이 지정된 경우 4의 배수 (Alexander Korotkov)§

    다른 값은 인텔 호환 하드웨어에서는 무해하지만 다른 아키텍처에서 충돌을 일으킬 수있는 색인 컨텐츠에 대한 잘못 정렬 된 액세스를 초래합니다.

  • 오작동 수정에서Contrib/PG_TRGM만족할 수없는 정규 표현 (Tom Lane)§

    a regex와 같은$ foo합법적이지만 불만족스럽지 않습니다. REGEX 컴파일러는이를 인식하고 빈 NFA 그래프를 생성합니다.

  • 사용--- 스트립 영어GNU 호환으로 정적 라이브러리를 벗기는 경우 옵션Strip(Tom Lane)§

    이전,설치-스트립 만들기사용-x이 경우 옵션. 이 변화는의 오작동을 피합니다.llvm-strip, 약간 더 작은 출력을 제공합니다.

  • 문서를 작성하기 위해 DTD 파일의 자동 다운로드 권장 중지를 중지하고 실제로 비활성화합니다 (Aleksander Alekseev, Peter Eisentraut, Tom Lane)§

    Docbook DTD 파일의 로컬 설치없이 더 이상 SGML 문서를 작성하는 것이 불가능한 것으로 보입니다. 전에xsltprocSourceforge.net에서 해당 파일을 날려 버릴 수 토토. 그러나 Sourceforge.net은 이제 HTTPS 액세스 만 허용하며 공통 버전의는 없습니다.xsltproc그것을지지합니다. 따라서, 그것이 가능하거나 유용하다는 것을 제안하는 문서의 비트를 제거하고 대신xsltproc's-nonet빌드 레시피 옵션.

  • PGXS 빌드에서 탭 테스트를 실행할 때 임시에 더 넓은 위치를 사용하십시오Portlock디렉토리 (Peter Eisentraut)§

    아래에 배치TMP_CHECK빌드 디렉토리에서. 이전 코딩을 통해 PGXS 빌드는 설치 디렉토리에 배치하려고 시도 할 수 있습니다.

  • 시간대 데이터 파일 업데이트TZDATA이집트, 그린란드, 모로코 및 팔레스타인의 DST 법률 변경에 대한 릴리스 2023C. (Tom Lane)§

    모스크바 시간을 관찰 할 때 유럽/키로프 및 유럽/볼고그라드는 이제 숫자 약어 대신 MSK/MSD를 사용하여 모스크바 시간을 관찰하는 다른 시간과 일관성을 제공합니다. 또한 미국/옐로 나이프는 더 이상 미국/에드먼턴과 구별되지 않습니다.