E.17. 사설 토토 13.6

출시일: 2022-02-10

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

E.17.1. 버전 13.6으로 마이그레이션

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

단, 신청하신 경우동시에 재색인TOAST 사설 토토의 인덱스에 추가하거나 TOAST 데이터 액세스 실패를 관찰하려면 아래 첫 번째 변경 로그 항목을 참조하세요.

또한 13.5 이전 버전에서 업그레이드하는 경우 참조토토 사이트 추천 PostgreSQL : 문서 : 13 : E.16. 릴리스 13.5.

E.17.2. 변경사항

  • TOAST 사설 토토 업데이트에 대한 표준 잠금 프로토콜을 시행하여 문제를 방지합니다.동시에 재색인(마이클 파퀴에)§

    TOAST 사설 토토 또는 TOAST 사설 토토의 인덱스에 적용되는 경우,동시에 재색인손상된 색인을 생성하는 경향이 있었습니다. 이는 TOAST 항목을 업데이트하는 세션에서 해당 항목이 공개되었기 때문에 발생했습니다.행 독점다른 모든 업데이트처럼 트랜잭션이 커밋될 때까지 보류하는 대신 즉시 잠급니다. 해결책은 TOAST 업데이트가 일반적인 규칙에 따라 사설 토토 잠금을 유지하도록 하는 것입니다. 기존의 손상된 색인은 다시 색인을 생성하여 복구할 수 있습니다.

  • 널 포인터 충돌 방지통계 변경통계 개체가 동시에 삭제될 때 (Tomas Vondra)§

  • 병렬 단일 하위 Append 노드에 대한 잘못된 계획 생성 수정(David Rowley)§

    어떤 경우에는 추가가 단순화되어서는 안되는 경우가 있어 잘못된 쿼리 결과(중복된 행)가 발생합니다.

  • 모든 인덱스 열이 반환될 수 없는 경우에 대한 인덱스 전용 스캔 계획 수정(Tom Lane)§ §

    인덱스에 반환 가능 열과 반환 불가능 열이 모두 있고 반환 불가능 열 중 하나가 반환 가능 인덱스 열에 나타나는 사설 토토 열을 사용하는 표현식인 경우, 해당 표현식을 사용하는 쿼리는 의도한 대로 반환 가능 열에서 표현식을 다시 계산하는 대신 반환 불가능 열을 읽으려고 시도하는 인덱스 전용 스캔 계획이 될 수 있습니다. 반환할 수 없는 열이 NULL로 읽혀 잘못된 쿼리 결과가 발생합니다.

  • 지정되지 않은 typmod로의 캐스팅이 길이 강제 함수 호출이 아닌 RelabelType 노드를 생성하는지 확인하세요(Tom Lane)§

    강제 기능은 옳은 일(아무것도 하지 않음)을 해야 하지만, 이 번역은 바람직하지 않게 비효율적입니다.

  • 다음 검사 수정모든 호환 가능-가족 데이터 유형 일치(Tom Lane)§

    어떤 경우에는 파서가 함수나 연산자가 다음과 같다고 생각할 것입니다.모든 호환 가능-계열 다형성 매개변수는 실제로 일치해서는 안 되는 일련의 인수와 일치합니다. 보고된 사례에서는 한 통화에 둘 이상의 교환원이 일치하여 모호한 교환원 오류가 발생했습니다. 하지만 나중에 실패할 수도 있습니다.

  • 데이터베이스 일관성이 정확히 WAL 페이지 경계에 도달할 때 WAL 재생 실패 수정(Álvaro Herrera)§

  • 트랜잭션 ID 랩어라운드를 허용하도록 물리적 복제본의 시작 수정(Abhijit Menon-Sen, Tomas Vondra)§

    기본의 활성 트랜잭션 세트가 랩어라운드 경계를 교차하는 동안 복제본 서버가 시작되면(이전 트랜잭션보다 더 작은 XID를 가진 일부 최신 트랜잭션이 있음) 복제본이 실패합니다.KnownAssignedXids에 잘못된 XID 삽입. 복제본이 다시 시도하지만 해당 오류를 통과할 수 없습니다.

  • 논리적 복제에서 하위 사설 토토 데이터의 이중 전송을 방지합니다(Hou Zhijie)§

    게시물에 하위 및 상위 테이블이 모두 포함되어 있고 다음이 있는 경우publish_via_partition_root옵션이 설정되어 있어 구독자는 하위 사설 토토과 상위 사설 토토 모두에서 불필요하게 동기화를 시작했습니다. 이러한 경우 상위 사설 토토만 동기화되는지 확인하세요.

  • 논리적 복제 연결에서 실행된 SQL 명령에 대한 어휘 제한 제거(Tom Lane)§ §

    왈센더 프로세스는 따옴표가 없는 세미콜론이 포함된 SQL 명령, 홀수 개의 작은따옴표 또는 큰따옴표가 포함된 달러 따옴표 리터럴이 있는 경우 또는 SQL 명령이 주석으로 시작하는 경우 실패합니다. 또한 잘못된 오류 복구로 인해 이후 명령에서도 예상치 못한 오류가 발생할 수 있습니다.

  • 트랜잭션의 마지막 하위 트랜잭션에 대한 커밋 타임스탬프의 손실 가능성 수정(Alex Kingsborough, Kyotaro Horiguchi)§

  • 반드시 해 보세요fsyncpg_logical/mappings체크포인트 중 하위 디렉토리(Nathan Bossart)§

    일부 파일 시스템에서는 이러한 감독으로 인해 시스템 충돌 후 논리적 재작성 상태 파일이 손실될 수 있습니다.

  • 분할된 사설 토토에 대한 확장 통계 구축(Justin Pryzby)§

    이전 버그 수정으로 인해 기존 상속 트리에 대한 확장 통계 구축이 비활성화되었지만 분할된 테이블에 대한 확장 통계 구축도 방지되었는데 이는 불필요한 제한이었습니다. 이 변경으로 인해 다음이 허용됩니다.분석분할된 사설 토토의 통계 개체 값을 계산합니다. (단, autovacuum은 분할된 사설 토토을 그대로 처리하지 않으므로 주기적으로 manual을 발행해야 한다는 점에 유의하세요.분석그러한 통계를 유지하려면 분할된 사설 토토에서.)

  • 상속 트리에 대한 확장 통계 무시(Justin Pryzby)§

    현재 확장 통계 값은 전체 상속 트리가 아닌 각 사설 토토에 대해 로컬로만 계산됩니다. 그러나 상속 트리 전체에 걸쳐 쿼리를 계획할 때 값이 실수로 참조되어 기본값보다 더 나쁜 추정치가 나올 수 있습니다.

  • 분할된 사설 토토의 행 유형이 다른 곳에서 복합 유형으로 사용될 때 분할된 사설 토토 열의 데이터 유형 변경을 허용하지 않음(Tom Lane)§

    이 제한은 일반 사설 토토에 오랫동안 존재해 왔지만 실수로 파티션된 사설 토토에 대해서는 확인되지 않았습니다.

  • 허용하지 않음사설 토토 변경 ... NULL이 아닌 삭제복제본 ID 인덱스의 일부인 열의 경우(Haiying Tang, Hou Zhijie)§

    기본 키 인덱스에 대해 동일한 금지 사항이 이미 존재했습니다.

  • 다음 동안 캐시된 테이블 상태를 올바르게 업데이트합니다.인덱스를 사용하여 사설 토토 변경 기본 키 추가(허우 지지에)§

    동시 세션이 사설 토토에 기본 키가 있는지 여부에 대한 의견을 업데이트하지 못하여 잘못된 논리적 복제 동작이 발생할 수 있습니다.

  • 전환 시 캐시된 사설 토토 상태를 올바르게 업데이트복제본 ID색인(탕하이잉, 허우즈지에)§

    동시 세션에서 어떤 인덱스가 복제본 ID인지에 대한 의견을 업데이트하지 못하여 잘못된 논리적 복제 동작이 발생할 수 있습니다.

  • 가장 오래된 xmin을 계산하는 동안 병렬 진공 청소 및 동시 인덱스 구축이 무시되도록 허용(Masahiko Sawada)§

    이러한 작업의 병렬화되지 않은 인스턴스는 이미 무시되었지만 병렬화된 경우에는 논리가 작동하지 않았습니다. xmin 수평선을 억제하면 진공 청소가 지연되는 등 바람직하지 않은 효과가 발생합니다.

  • 동안 메모리 누수 방지소유자를 재할당많은 개체의 소유권을 재할당하는 작업(Justin Pryzby)§

  • 불필요한 캐시 액세스를 방지하여 논리적 변경 사항을 보내는 Walsender의 성능을 향상시킵니다(Hou Zhijie)§

  • 표시 수정인증서인증 방법 옵션pg_hba_file_rules보기 (Magnus Hagander)§

    인증서인증 방법 의미clientcert=verify-full하지만pg_hba_file_rules잘못 보고된 보기clientcert=verify-ca.

  • 다음에 나타나는 전체 행 변수 표시 수정삽입 ... 값규칙(톰 레인)§

    전체 행 변수는 다음과 같이 인쇄됩니다.var.*, 그러나 규칙을 다시 로드할 때 개별 열로 확장할 수 있으므로 의미가 달라집니다. 이를 방지하기 위해 다른 곳에서와 마찬가지로 명시적 캐스트를 연결합니다.

  • 빈 문자열에 유니코드 문자열 정규화를 적용할 때 1바이트 버퍼 오버런 수정(Michael Paquier)§

    정렬 고려 사항으로 인해 이에 대한 실질적인 영향은 제한됩니다. 하지만 디버그 빌드에서는 경고가 발생했습니다.

  • 일부 잘못된 주장 수정 또는 제거(Simon Riggs, Michael Paquier, Alexander Lakhin)§ § §

    이러한 오류는 프로덕션이 아닌 디버그 빌드에만 영향을 미칩니다.

  • 멀티 스레드 사용 초기에 보고된 오류 메시지 현지화에 실패할 수 있는 경쟁 조건 수정libpq또는ecpglib(톰 레인)§

  • 전화를 피하세요strerrorfromlibpq'sPQ취소함수 (톰 레인)§

    PQ취소신호 처리기에서 호출하는 것이 안전하다고 가정하지만strerror안전하지 않습니다. 잘못된 사용은 서버에 취소 메시지를 보내지 못한 경우에만 발생했으며, 이는 아마도 보고서가 부족했기 때문일 수 있습니다.

  • 만들다psql's\비밀번호명령의 기본값은 비밀번호 설정입니다.CURRENT_USER, 연결의 원래 사용자 이름(Tom Lane)이 아님§

    이것은 문서화된 동작에 동의하며 다음과 같은 경우에 가능한 권한 실패를 방지합니다.역할 설정또는세션 승인 설정19986_20118

  • 수정psql \d상위 트리거 식별을 위한 명령 쿼리(Justin Pryzby)§

    이전 코딩이 실패했습니다.식으로 사용된 하위 쿼리에서 두 개 이상의 행이 반환됨파티션에 트리거가 있고 일부 상위 파티션 사설 토토에 동일한 이름의 관련 없는 명령문 수준 트리거가 있는 경우.

  • 수정psql의 열거형 유형에 대한 레이블 값 탭 완성(Tom Lane)§

  • psql및 기타 클라이언트 프로그램에서는 호출을 시도하지 마세요gettext()control-C 신호 처리기(Tom Lane)에서§

    이 실수로 인해 발생한 실패 사례는 보고되지 않았지만 안전한 작업이 아닐 가능성이 매우 높습니다.

  • 초기 비밀번호 프롬프트 취소 허용pg_receivewal그리고pg_recvlogical(톰 레인, 네이선 보사트)§

    이전에는 비밀번호를 묻는 동안 Ctrl-C를 통해 이러한 프로그램을 종료하는 것이 불가능했습니다.

  • 수정pg_dump의 사용자 정의 캐스트에 대한 덤프 순서(Tom Lane)§

    드물게 출력 스크립트가 생성되기 전에 사용자 정의 캐스트를 참조할 수도 있습니다.

  • 수정pg_dump's--삽입그리고--열 삽입생성된 열과 삭제된 열이 모두 포함된 사설 토토을 처리하는 모드(Tom Lane)§ §

  • 오류를 잘못 보고할 수 있는 문제 수정pg_dump그리고pg_basebackup(톰 레인)§ §

    이전 코드는 일부 커널 호출에서 오류를 확인하지 못했고 다른 경우에는 잘못된 errno 값을 보고할 수 있었습니다.

  • 색인 전용 스캔 결과 수정contrib/btree_gist색인문자(N)열(톰 레인)§

    인덱스 전용은 예상된 동작이 아닌 후행 공백이 제거된 반환된 열 값을 검색합니다. 이는 데이터가 인덱스에 저장되는 방식이기 때문에 발생했습니다. 이 수정으로 저장할 코드가 변경됩니다.문자(N)값을 예상 공백 패딩 양으로 바꿉니다. 이러한 인덱스의 동작은 다음과 같은 경우를 제외하고는 즉시 변경되지 않습니다.REINDEX그것; 그렇지 않으면 공백이 제거된 값이 업데이트 중에 시간이 지남에 따라 점차적으로 대체됩니다. 인덱스 전용 스캔 계획을 사용하지 않는 쿼리는 어떤 경우에도 영향을 받지 않습니다.

  • 변경구성파이썬을 사용하려면sysconfig모듈, 더 이상 사용되지 않는 모듈distutils모듈, PL/Python 빌드 방법 결정(Peter Eisentraut, Tom Lane, Andres Freund)§

    Python 3.10을 사용하면 다음을 피할 수 있습니다.구성-시간 경고:distutils더 이상 사용되지 않으며 Python 3.12에서 제거될 예정입니다. 아마도 3.12가 나오면,configure --with-python완전히 실패할 것입니다. 이러한 미래 보장에는 비용이 듭니다.sysconfigPython 2.7 이전이나 Python 3 브랜치의 3.2 이전에는 존재하지 않았으므로 더 이상 오래된 Python 버전에 대해 PL/Python을 빌드할 수 없습니다.

  • Perl 5.28 이상을 사용하는 Windows에서 PL/Perl 컴파일 오류 수정(Victor Wagner)§

  • Python 3.11 이상에서 PL/Python 컴파일 실패 수정(Peter Eisentraut)§

  • Visual Studio 2022를 사용한 빌드 지원 추가(Hans Buschmann)§

  • 허용.bat디렉토리로 먼저 변경하지 않고 호출할 수 있는 MSVC 빌드 시스템의 래퍼 스크립트(Anton Voloshin, Andrew Dunstan)§ §

수정 사항 제출

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