E.12. 릴리스 13.11

출시일: 2023-05-11

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

E.12.1. 버전 13.11로 마이그레이션

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

그러나 13.7 이전 버전에서 업그레이드하는 경우 다음을 참조하세요.PostgreSQL : 문서 : 13 : E.14. 배트맨 토토 13.7.

E.12.2. 변경사항

  • 방지스키마 생성변화를 물리치고검색_경로(알렉산더 라킨)§ §

    a 내에서스키마 생성명령, 일반적인 개체검색_경로및 새로 생성된 스키마의 스키마는 보안 설정을 시도하는 호출된 함수나 스크립트 내에서도 표시됩니다.검색_경로. 이로 인해 스키마를 생성할 수 있는 권한이 있는 모든 사용자가 보안 정의자 함수 또는 확장 스크립트의 권한을 탈취할 수 사설 토토.

    포스트그레SQL프로젝트는 이 문제를 보고한 Alexander Lakhin에게 감사드립니다. (CVE-2023-2454)

  • 세트 반환 함수를 인라인한 후 행 수준 보안 정책을 올바르게 시행하십시오(스티븐 프로스트, 톰 레인)§

    설정 반환 SQL 언어 함수가 행 수준 보안 정책이 있는 테이블을 참조하고 호출 쿼리에 인라인될 수 있는 경우 다른 역할에서 캐시된 계획을 재사용하는 경우에 이러한 RLS 정책이 제대로 시행되지 않습니다. 이를 통해 사용자는 표시되지 않아야 하는 행을 보거나 수정할 수 사설 토토.

    포스트그레SQL프로젝트는 이 문제를 보고한 볼프강 발터(Wolfgang Walther)에게 감사드립니다. (CVE-2023-2455)

  • 새 스키마 이름이 생략될 때 충돌 방지스키마 생성(마이클 파퀴에)§

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

  • 파티션된 테이블에서 복제된 트리거 활성화/비활성화 수정(Tom Lane)§

    테이블 변경 ...트리거 사용자 활성화/비활성화복제된 트리거를 건너뛰어 시스템 트리거로 착각했습니다. 다른 변형트리거 활성화/비활성화이를 처리하지만 슈퍼유저 확인을 부적절하게 시행한 후에만 가능합니다.

  • 색인에 저장된 복합 유형 변경을 허용하지 않음(Tom Lane)§

    변경 유형테이블 열에 저장된 경우 복합 유형의 바이너리 호환되지 않는 수정을 허용하지 않습니다. (아마도 언젠가는 허용될 것이지만 아직 그런 일은 일어나지 않았습니다. 많은 테이블을 다시 작성하는 데 따른 잠금 의미는 어렵습니다.) 우리는 인덱스에 테이블에도 나타나지 않는 복합 유형이 포함될 수 있다는 가능성을 간과했습니다.

  • 시스템 열을 외래 키 요소로 허용하지 않음(Tom Lane)§

    시스템 열에서 OID를 제거한 이후 이에 대한 그럴듯한 사용 사례가 없으며 다양한 코드 비트가 더 이상 이를 지원하지 않습니다. 모든 사례를 해결하려고 하기보다는 이를 허용하지 마세요.

  • 다음을 확인하세요복사 대상RLS가 활성화된 상위 테이블에서 하위 테이블의 행을 복사하지 않습니다(Antonin Houska)§

    문서에는 다음과 같이 분명합니다.복사 대상이름이 지정된 테이블의 행만 복사하며 상속 하위 항목은 복사하지 않습니다. 그러나 테이블에서 행 수준 보안이 활성화된 경우 이는 사실이 아닙니다.

  • 다음의 경우 충돌 가능성을 피하세요.배열_위치()또는배열_위치()빈 배열이 전달되었습니다(Tom Lane)§

  • 가능한 범위를 벗어난 가져오기 수정to_char()(톰 레인)§

    운이 나쁘다면 서버 충돌이 발생할 수도 사설 토토.

  • 버퍼 오버로드 방지번역()함수 (다니일 아니시모프)§

    삭제 기능을 사용할 때 함수가 입력 문자열 바로 뒤의 바이트를 가져올 수 있어 약간의 충돌 위험이 발생할 수 사설 토토.

  • JSON 문자열 리터럴의 구문 분석 오류에 대한 오류 커서 설정 수정(Tom Lane)§

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

  • 다음으로 인한 데이터 손상 수정vacuum_defer_cleanup_age현재 64비트 xid보다 큽니다(Andres Freund)§

    v14 이상에서 기본 설정이 아닌 경우vacuum_defer_cleanup_age, 매우 큰 진공 정리 수평선 xid를 계산할 수 있었고, 이로 인해 아직 살아있는 행을 진공 제거하게 되었습니다. v12 및 v13에는 GiST 인덱스에만 영향을 미치는 동일한 문제가 덜 발생하여 인덱스 페이지가 너무 일찍 재활용될 수 사설 토토.

  • 부적절하게 중첩된 집계의 일부 사례를 감지하지 못하는 파서의 오류 수정(Tom Lane)§

    이러한 감독으로 인해 유효하지 않은 것으로 거부되어야 하는 쿼리에 대한 실행기 오류가 발생할 수 사설 토토.

  • 시리얼 구문 분석 중 데이터 구조 손상 수정시퀀스 이름옵션(데이비드 로울리)§

    이벤트 트리거가 손상된 구문 분석 트리를 캡처하는 경우 문제가 발생할 수 사설 토토.

  • initplans를 한 노드에서 다른 노드로 이동할 때 계획 노드의 병렬 안전 표시를 올바르게 업데이트합니다(Tom Lane)§

    이 플래너의 감독으로 인해 다음이 발생할 수 있습니다.하위 계획이 초기화되지 않았습니다런타임 오류.

  • 호출에 하위 SELECT가 포함된 경우 창 집합에 대한 역전이 최적화 비활성화(David Rowley)§

    이 최적화를 위해서는 집계의 인수 표현식에 반복 가능한 결과가 있어야 하며, 이는 하위 SELECT에는 적용되지 않을 수 사설 토토.

  • 중첩 실행 시 감독 문제 수정배열[]구조물 (Alexander Lakhin, Tom Lane)§

    결과 배열에 필요한 전체 공간의 오버플로를 올바르게 감지하여 작은 출력 할당으로 인한 충돌 가능성을 방지합니다. 또한 결과 배열의 후행 패딩 공간이 0인지 확인하십시오. 쓰레기를 버리는 동안 대부분의 목적에 무해하지만 나중에 이상한 동작이 발생할 수 있습니다.

  • 복합 유형의 도메인 배열 열 내에서 필드를 업데이트할 때 충돌 방지(Dmitry Dolgov)§

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

    다음과 같은 조건으로 가지치기boolcol은 사실이 아닙니다잘못 수행되어 해당 행이 반환되지 않을 수 사설 토토.bocol은 NULL입니다. 또한 파티션을 나누는 경우는 거의 없습니다.boolcol 아님잘못 처리되었습니다.

  • 병렬 해시 조인 중 배치별 정리의 경쟁 조건 수정(Thomas Munro, Melanie Plageman)§

    불운한 타이밍으로 인해 충돌이 발생할 수 있었으며parallel_leader_participation = 꺼짐(기본값이 아님).

  • 재계산생성됨EvalPlanQual 확인 후 열(Tom Lane)§

    읽어 커밋됨격리 모드에서는 행 업데이트의 효과가 원래 발견된 쿼리보다 최신 버전의 행에 다시 적용되어야 할 수도 사설 토토. 그렇다면 모든 항목을 다시 계산해야 합니다.생성됨열(동시 업데이트로 변경된 열에 의존하는 경우).

  • 테이블에 관계당 항목이 있는 경우 진공 비용 지연의 균형을 맞추지 마세요vacuum_cost_delay0의 설정(사와다 마사히코)§

    autovacuum이 관계별 테이블을 처리할 때마다 지연 균형 조정이 비활성화되어야 합니다.vacuum_cost_delay설정이지만 이는 0이 아닌 양수 설정에 대해서만 수행되었습니다.

  • 뷰 끝에 열을 추가할 때 코너 케이스 충돌 문제 수정(Tom Lane)§

  • 분할된 업데이트에서 MULTIEXPR_SUBLINK 하위 계획의 드물게 실패하는 문제를 복구합니다(Andres Freund, Tom Lane)§

    구문의 사용INSERT ... ON CONFLICT DO 업데이트 세트 (c1, ...) = (SELECT ...)파티션된 대상 테이블이 있는 경우 하위 테이블이 상위 테이블과 다른 경우(예: 물리적 열 순서가 다름) 오류가 발생할 수 사설 토토. 이는 일반적으로 실행기의 일관성 검사 실패로 나타납니다. 하지만 충돌이나 잘못된 데이터 업데이트도 가능합니다.

  • 다음 처리 수정기본값여러 행 내의 마커삽입 ... 값다음이 있는 뷰에 대한 쿼리또한 삽입하세요 ... 선택규칙 (딘 라시드)§

    이러한 사례는 일반적으로 다음과 같이 실패합니다.인식할 수 없는 노드 유형오류 또는 어설션 실패.

  • 지원 참조오래된그리고신규규칙 작업의 하위 쿼리 내(Dean Rasheed, Tom Lane)§

    이러한 참조는 실제로 측면 참조이지만 하위 쿼리가 명시적으로 표시되지 않으면 서버가 충돌할 수 사설 토토.측면. 필요한 경우 암시적으로 그렇게 하도록 준비하세요.

  • 다음을 포함하는 규칙 또는 SQL 함수 본문을 디컴파일할 때삽입/업데이트/삭제내부위드, 대상 테이블에 대한 올바른 별칭을 인쇄하도록 주의하세요(Tom Lane)§

  • 결함 수정직렬화 가능한 읽기 전용최적화 (토마스 먼로)§ §

    이미 다음으로 표시된 거래죽음에 대한 안전 스냅샷 최적화를 혼동함직렬화 가능한 읽기 전용거래. 어떤 경우에는 최적화가 불필요하게 생략되었습니다. 다른 경우에는 어설션 실패가 발생했습니다(그러나 어설션이 아닌 빌드에서는 문제가 없었습니다).

  • 캐시 콜백 슬롯 누출을 방지하세요pgoutput논리적 디코딩 플러그인(Shi Yu)§

    단일 세션 내에서 플러그인을 시작하고 종료하는 여러 주기는 결국 다음으로 이어질 것입니다.relcache_callback_list 슬롯 중오류.

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

    이 변경 사항은 예상치 못한 오류가 발생한 일부 경우를 수정합니다.

  • GiST 인덱스의 버퍼링 빌드 중 댕글링 포인터 역참조 수정(Alexander Lakhin)§

    이 오류는 가져온 값이 중요하지 않기 때문에 일반적으로 프로덕션 빌드에서는 무해한 것 같습니다. 그러나 원칙적으로는 서버 충돌을 일으킬 수 사설 토토.

  • 업데이트 또는 삭제 작업의 논리적 복제 중 삭제된 열 및 생성된 열 무시(Onder Kalaci, Shi Yu)§ §

    다음을 사용한 복제복제본 ID 전체테이블에 그러한 열이 포함되어 있으면 옵션이 실패했습니다.

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

    이 대기 이벤트의 이름은 다음과 같습니다.CommitTsBuffer문서에 따르면, 코드에는 다음과 같이 되어 있습니다.CommitTSBuffer. 관련 대기 이벤트의 이름 지정과 더 일관성이 있으므로 문서와 일치하도록 코드를 변경합니다.

  • 유지할 WAL 세그먼트 수를 계산할 때 언더플로 가능성을 방지하세요(호리구치 쿄타로)§

    이로 인해 존중하지 않을 수 사설 토토.wal_keep_size정확합니다.

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

    이 기능을 사용하려면 OpenSSL 1.1.1 이상을 사용하여 구축해야 합니다. 서버와libpq영향을 받았습니다.

  • Windows에서 프로세스 ID 추적으로 경합 상태 방지(Thomas Munro)§ § §

    운영 체제는 포스트마스터가 해당 하위 프로세스가 사라진 것을 관찰하기 전에 PID를 재활용할 수 사설 토토. 이로 인해 동일한 PID를 가진 두 명 이상의 하위 항목을 추적하게 되어 혼란을 초래할 수 사설 토토.

  • 다음에 누락된 사례 추가SPI_result_code_string()(딘 라시드)§

  • 잘못된 Valgrind 표시 수정AllocSetRealloc()(카리나 릿스케비치)§

    큰(8kB) palloc 청크의 크기가 감소하는 특이한 경우 Valgrind 인식 빌드는 청크에서 해제된 메모리의 정의 상태를 잘못 표시하여 Valgrind 테스트 중에 잘못된 결과를 초래할 수 사설 토토.

  • 트랜잭션 논리적 복제 메시지를 디코딩할 때 어설션 실패 방지(Tomas Vondra)§

  • 정규식 이스케이프 처리 시 로케일 민감도 방지(Jeff Davis)§

    백슬래시 뒤에 비ASCII 문자가 오면 흔히 사용되는 로케일에 따라 어설션 실패가 발생할 수 사설 토토.

  • 빈 WAL 레코드를 작성하지 마십시오.log_newpage_range()지정된 범위의 마지막 몇 페이지가 비어 있을 때 (Matthias van de Meent)§

    이 사례가 릴리스된 분기에서 도달할 수 있는지 여부는 완전히 명확하지 않지만, 그렇다면 어설션 실패가 발생할 수 사설 토토.

  • 세션 수명 메모리 누수 수정plpgsql DO캐스트 표현식을 사용하는 블록(Ajit Awekar, Tom Lane)§

  • Perl 목록 구조를 다차원 SQL 배열로 변환할 때 배열 차원 검사를 강화합니다(Tom Lane)§

    plperl하위 목록의 중첩이 일관되지 않아 데이터가 값의 직사각형 배열을 나타내지 않는 경우 오작동할 수 있습니다. 이러한 경우 이제 오류가 발생하지만 이전에는 충돌이나 가비지 출력이 발생할 수 있었습니다.

  • Python 목록 구조를 다차원 SQL 배열로 변환할 때 배열 차원 검사를 강화합니다(Tom Lane)§ §

    plpython빈 하위 목록을 처리할 때 또는 하위 목록의 중첩이 일관되지 않아 데이터가 값의 직사각형 배열을 나타내지 않을 때 오작동할 수 있습니다. 전자의 경우 빈 출력 배열이 발생하고 후자의 경우 오류가 발생합니다. 그러나 어떤 경우에는 충돌이 발생했고 다른 경우에는 예상치 못한 출력이 발생했습니다.

  • 예외 스택 해제 문제 해결plpython(싱궈)§

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

  • 일관되지 않은 GSS 암호화 오류 처리 수정libpqPQconnectPoll()(마이클 파퀴에)§

    함께gssencmode다음으로 설정됨요구, GSS 초기화 실패 후에도 연결이 끊어진 것으로 표시되지 않았습니다. TLS 암호화와 동등한 사례가 오랫동안 수행되었기 때문에 즉시 실패하도록 만드세요.

  • 다음에서 발생할 수 있는 데이터 손상 수정ecpg다음으로 빌드된 프로그램-C 오라클옵션(호리구치 쿄타로)§

    언제ecpg_get_data()다음으로 호출됨varcharsize0으로 설정하면 이전 필드의 마지막 바이트에 종료 0 문자를 기록하여 해당 필드의 데이터를 잘라낼 수 있습니다.

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

    열거형 값의 해시 코드는 열거형에 할당된 OID에 따라 다르므로 덤프 및 복원 후에 일반적으로 다릅니다. 이는 행이 원래 있었던 것과 다른 파티션으로 이동해야 하는 경우가 많다는 것을 의미합니다. 사용자는 다음을 지정하여 이 문제를 해결할 수 있습니다.--파티션 루트를 통해 로드옵션; 하지만 그것 없이는 성공할 가능성이 거의 없기 때문에 가르쳐주세요.pg_dump해당 테이블에 자동으로 적용합니다.

    또한 수정pg_restore노력하지 않으려고잘라내기테이블을 복원하기 전에 대상 테이블을 지정하는 경우--파티션 루트를 통해 로드모드가 사용됩니다. 이렇게 하면 교착 상태 및 데이터 손실 위험이 방지됩니다.

  • contrib/hstore_plpython, 변환할 Python 값이 매핑이 아닌 경우 충돌 방지(Dmitry Dolgov, Tom Lane)§

    이렇게 하면 오류가 발생해야 하지만 Python 3에서는 검사가 오작동하는 방식으로 일부 API를 변경하여 충돌이 발생할 수 사설 토토.

  • 다음을 요구합니다시글렌GiST 인덱스 옵션트리열이 지정되면 4의 배수가 됩니다. (Alexander Korotkov)§

    다른 값을 사용하면 인덱스 콘텐츠에 대한 액세스가 잘못 정렬되어 Intel 호환 하드웨어에서는 무해하지만 일부 다른 아키텍처에서는 충돌이 발생할 수 사설 토토.

  • 잘못된 행동 수정contrib/pg_trgm만족스럽지 못한 정규식 사용(Tom Lane)§

    다음과 같은 정규식$foo적법하지만 만족스럽지 않습니다. 정규식 컴파일러는 이를 인식하고 빈 NFA 그래프를 생성합니다. 이러한 그래프를 pg_trgm GIN 또는 GiST 인덱스 자격으로 최적화하려고 하면 작업 배열의 끝 부분에 액세스하여 충돌이 발생할 수 있습니다.

  • 다음을 사용하세요--스트립-불필요GNU 호환으로 정적 라이브러리를 제거할 때 옵션스트립(톰 레인)§

    이전에,설치 스트립 만들기다음을 사용함-x31735_31793llvm-strip, 약간 더 작은 출력도 제공합니다.

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

    DocBook DTD 파일의 로컬 설치 없이는 SGML 문서를 작성하는 것이 더 이상 가능하지 않은 것 같습니다. 이전에xsltprocsourceforge.net에서 해당 파일을 즉시 다운로드할 수 있습니다. 하지만 sourceforge.net은 이제 HTTPS 액세스만 허용하고 일반 버전은 허용하지 않습니다.xsltproc그것을 지원합니다. 따라서 가능하거나 유용하다고 제안하는 문서의 일부를 제거하고 대신에 다음을 추가하세요.xsltproc's--nonet빌드 레시피에 대한 옵션입니다.

  • PGXS 빌드에서 TAP 테스트를 실행할 때 임시 위치를 위해 더 안전한 위치를 사용하세요.포트락디렉토리(피터 아이젠트라우트)§

    아래에 놓으세요tmp_check빌드 디렉토리에 있습니다. 이전 코딩을 사용하면 PGXS 빌드가 반드시 쓰기 가능한 것은 아닌 설치 디렉터리에 배치하려고 합니다.

  • 다음으로 시간대 데이터 파일 업데이트tzdata이집트, 그린란드, 모로코, 팔레스타인의 DST 법률 변경에 대한 2023c 릴리스입니다. (톰 레인)§

    모스크바 시간을 관찰할 때 유럽/키로프 및 유럽/볼고그라드는 이제 모스크바 시간을 관찰하는 다른 시간대와의 일관성을 위해 숫자 약어 대신 MSK/MSD 약어를 사용합니다. 또한 America/Yellowknife는 더 이상 America/Edmonton과 구별되지 않습니다. 이는 해당 지역의 일부 1948년 이전 타임스탬프에 영향을 미칩니다.

수정사항 제출

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