E.16. 배트맨 토토 13.7

출시일: 2022-05-12

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

E.16.1. 버전 13.7로 마이그레이션

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

그러나 다음 유형의 열에 GiST 인덱스가 있는 경우트리(제공:기여/ltree확장), 업데이트 후에 다시 색인을 생성해야 합니다. 아래의 두 번째 변경 로그 항목을 참조하세요.

또한 13.6 이전 버전에서 업그레이드하는 경우 참조사설 토토 PostgreSQL : 문서 : 13 : E.15. 릴리스 13.6.

E.16.2. 변경사항

  • 추가 작업을 다음으로 제한보안 제한 작업샌드박스(Sergey Shinderuk, Noah Misch)§ §

    자동 진공화,클러스터, 색인 생성, REINDEX, 구체화된 보기 새로고침그리고pg_amcheck활성화한보안 제한 작업보호 메커니즘이 너무 늦거나 일부 코드 경로에서는 전혀 보호되지 않습니다. 데이터베이스 내에 임시가 아닌 객체를 생성할 수 있는 권한이 있는 사용자는 다음에 autovacuum이 객체를 처리하거나 일부 슈퍼유저가 영향을 받는 명령 중 하나를 실행할 때 슈퍼유저 권한으로 임의의 SQL 코드를 실행하는 객체를 정의할 수 있습니다.

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

  • 기본 서명 길이 수정gist_ltree_ops색인 (토마스 본드라, 알렉산더 코로트코프)§

    GiST 인덱스의 기본 서명 길이(해시 크기)트리연산자 클래스 매개변수를 지원하기 위해 해당 연산자 클래스를 업그레이드하는 동안 열이 실수로 변경되었습니다. 먼저 업그레이드하지 않고 해당 인덱스에 대해 작업이 수행된 경우트리8628_8868트리8897_8965트리[]열, 즉 배열트리, 영향을 받지 않습니다.)

  • 일반 테이블을 참조하는 전체 행 변수의 열에 대해 쿼리 제공 열 별칭 사용 중지(Tom Lane)§

    전체 행 변수에 의해 생성된 튜플의 열 이름(예:tbl.*a의 최상위 레벨 이외의 컨텍스트배트맨 토토선택목록)은 이제 항상 관련 명명된 복합 유형(있는 경우)의 항목입니다. 이전에는 해당 항목에 적용된 모든 열 별칭을 추적하도록 시도했습니다.발신변수가 참조하는 항목입니다. 그러나 이는 의미상 모호합니다. 왜냐하면 실제로 변수의 출력은 그것이 주장하는 복합 유형이 전혀 아니기 때문입니다. 이러한 불일치를 처리하려는 이전 시도는 읽을 수 없는 데이터를 디스크에 저장하는 것을 포함하여 나쁜 결과를 가져왔으므로 전체 아이디어를 포기하세요.

    이러한 열의 레이블을 다시 지정하는 것이 중요한 경우 해결 방법은 하위 수준을 추가로 도입하는 것입니다.선택, 전체 행 변수가 하위를 참조하도록선택'의 출력이며 일반 테이블이 아닙니다. 그런 다음 변수는 유형입니다.기록처음에는 문제가 없습니다.

  • 유형에 대한 잘못된 출력 수정timestamptz그리고timetztable_to_xmlschema()및 관련 기능(Renan Soares Lopes)§

    이러한 유형에 대한 xmlschema 출력에는 잘못된 정규 표현식이 포함되어 있습니다.

  • 다음에 대한 파서에서 코어 덤프를 방지0개의 열이 있는 절(Tom Lane)§

  • 플래너 오류 수정그룹화()외부 쿼리 수준을 참조하는 구성(Richard Guo, Tom Lane)§

  • 반환 가능한 열과 반환 불가능한 열이 모두 있는 인덱스에 대한 인덱스 전용 스캔에 대한 계획 생성 수정(Tom Lane)§

    이전 코딩에서는 반환 가능한 열 외에 반환 불가능한 열을 읽으려고 시도할 수 있었습니다. 이는 가짜 값으로 실제로 아무 작업도 수행하지 않았기 때문에 상당히 무해했지만, 그러한 계획을 거부하는 최근 추가된 오류 검사에 위배되었습니다.

  • EvalPlanQual 중에 오래된 튜플을 잠그려고 시도하는 동안 더 이상 고정되지 않은 공유 버퍼에 액세스하지 마십시오(Tom Lane)§

    코드는 핀을 놓은 후 버퍼를 몇 번 더 터치했습니다. 이론적으로 다른 프로세스는 핀이 사라지자마자 버퍼를 재활용할 수 있습니다(또는 여유 공간 조각 모음을 시도할 가능성이 높음). 그러면 아마도 최신 버전의 튜플을 찾지 못할 수 있습니다.

  • 재정렬을 수행하는 IndexScan 노드배트맨 토토 쿼리 수명 메모리 누수 수정(Aliaksandr Kalenik)§

  • 수정함수 변경함수의 병렬 처리 속성 및 해당 변경을 지원하기 위해SET-동일 명령의 변수 목록(Tom Lane)§

    동일한 명령이 함수의 속성도 업데이트한 경우 병렬 처리 속성 변경이 손실되었습니다.SET절.

  • 테이블의 시스템 열을 변경하려는 시도로 인한 가짜 오류 수정(Tom Lane)§

    시스템은 당신이 그것을 할 수 없다고 말해야 하지만 때로는 보고할 수도 있습니다.소유된 시퀀스를 찾을 수 없습니다.대신.

  • 다음과 같은 경우 테이블 행의 잘못된 정렬 수정클러스터선행 키가 표현식인 인덱스를 사용 중(Peter Geoghegan, Thomas Munro)§

    테이블은 올바른 데이터로 다시 작성되지만 색인 순서와 거의 관련이 없는 순서입니다.

  • 분할된 인덱스 삭제 시 교착 상태 실패 위험 수정(Jimmy Yih, Gaurab Dey, Tom Lane)§

    필요한 테이블 및 인덱스 잠금이 표준 순서(하위 이전의 상위, 인덱스 이전의 테이블)로 수행되는지 확인하십시오. 이전 코딩은인덱스 삭제다르게 수행했기 때문에 표준 순서에 따라 이러한 잠금을 사용하는 동시 쿼리에 대한 교착 상태가 발생할 수 있습니다.

  • 사이의 경합 상태 수정드롭 테이블스페이스그리고 체크포인트(Nathan Bossart)§

    다음에 의해 강제된 체크포인트드롭 테이블스페이스때때로 테이블스페이스의 디렉토리배트맨 토토 죽은 파일을 모두 제거하지 못해 가짜로 이어질 수 있음테이블스페이스가 비어 있지 않습니다.오류.

  • 다음 이후 충돌 복구에서 발생할 수 있는 문제 수정잘라내기체크포인트와 겹치는 명령(호리구치 쿄타로, 헤이키 린나칸가스, 로버트 하스)§ §

    잘라내기체크포인트가 완료되기 전에 테이블의 디스크 파일이 잘리는지 확인해야 합니다. 그렇지 않으면 해당 체크포인트배트맨 토토 재생을 시작하면 제거된 것으로 추정되는 페이지배트맨 토토 예기치 않은 데이터가 발견되어 재생 실패가 발생할 수 있습니다.

  • 임시 개체 정리 중 안전하지 않은 토스트 데이터 액세스 수정(Andres Freund)§

    서버 프로세스 종료 중 임시 개체 삭제가 실패할 수 있음치명적: 활성 스냅샷 없이는 토스트 데이터를 가져올 수 없습니다.. 다음에 해당 임시 스키마를 사용하면 성공적으로 정리되므로 일반적으로 무해합니다.

  • RegisterSyncRequest의 대기 로직 개선(Thomas Munro)§

    체크포인터 동기화 요청 대기열의 공간이 부족하면(실제 시스템배트맨 토토는 드물기를 바라지만 매우 작은 버퍼 풀로 테스트할 때 일반적임) 공간이 소모될 때까지 기다립니다. 기다리는 동안 사용자가 무슨 일이 일어나고 있는지 알 수 있도록 대기 이벤트로 보고하고 포스트마스터 사망도 감시해야 합니다. 그렇지 않으면 체크포인터가 이미 종료된 경우 루프가 종료되지 않을 수 있기 때문입니다.

  • 수정패닉: xlog 플러시 요청이 충족되지 않음WAL 연속 레코드가 누락되어 대기 승격 중 실패(Sami Imseih)§

  • 상시 대기 충돌 처리 시 자체 교착 상태 가능성 수정(Andres Freund)§ § §

    불운한 타이밍으로 인해 다른 프로세스가 버퍼 잠금을 해제할 때까지 기다리는 동안 WAL 적용 프로세스가 중단될 수 있습니다.

  • (Tomas Vondra, Hou zj, Amit Kapila)를 통해 논리적 복제 변경 사항을 게시하기 위해 올바른 조상 관계의 잘못된 식별 가능성을 수정합니다.§

    만약publish_via_partition_root이 활성화되어 있고 현재 수정된 관계의 다른 상위 항목을 명명하는 여러 게시가 있는 경우 변경 사항을 보고하기 위해 잘못된 상위 항목이 선택될 수 있습니다.

  • 논리적 복제 적용 작업자가 문제에 봉착했을 때에도 다시 시작할 수 있는지 확인하세요.max_sync_workers_per_subscription한도(아미트 카필라)§

    한도 확인의 잘못된 코딩으로 인해 다시 시작된 작업자가 즉시 종료되어 필요한 것보다 적은 수의 작업자가 남게 되었습니다.

  • 라인 외부에 저장된 경우 업데이트를 위해 WAL 로그에 변경되지 않은 복제본 ID 키 열을 포함합니다(Dilip Kumar, Amit Kapila)§

    그렇지 않으면 구독자는 값을 볼 수 없으며 업데이트 복제에 실패합니다.

  • 서버 프로세스의 디스플레이 변경을 지원하지 않는 플랫폼에 올바르게 대처하십시오.ps(1)(앤드류 던스턴)§

    이런 플랫폼은 거의 없으므로(지원되는 유일한 플랫폼은 Cygwin임) 리팩토링으로 인해 잠재적인 메모리 손상이 발생한다는 사실을 알아차리지 못했습니다.

  • PL/Perl 함수 컴파일 중 SPI 함수 실행 금지(Tom Lane)§

    Perl은 PL/Perl 함수를 컴파일하는 동안 사용자 정의 코드를 실행하도록 확신할 수 있습니다. 그러나 이러한 코드가 SPI를 통해 SQL 작업을 호출하는 것은 옳지 않습니다. 이로 인해 충돌이 발생하고 충돌이 발생하지 않으면 보안상 위험할 수 있습니다. 왜냐하면 우리는 함수 유효성 검사 중에 코드 실행을 정말로 원하지 않기 때문입니다. 대신에 더 친근한 오류 메시지를 표시하려면 체크 표시를 하세요.

  • 만들다libpq루트 소유 SSL 개인 키 파일 허용(David Steele)§ §

    이 변경 사항은 동기화됩니다.libpq20511_20741rw-r-----이하. 이는 키 파일을 시스템 전체배트맨 토토 관리하는 데 도움이 됩니다.

  • 다음 동작 수정libpq'sPQisBusy()연결 실패 후 기능(Tom Lane)§

    쓰기 실패를 감지했다면,PQisBusy()항상 true를 반환하는데 이는 잘못된 것입니다. 우리는 서버에서 사용 가능한 모든 내용을 읽을 때까지 입력 처리가 정상적으로 수행되기를 원합니다. 이 오류의 실제 효과는 다음을 사용하는 애플리케이션이 다음과 같다는 것입니다.libpq의 async-query API는 일반적으로 다음 경우에만 연결 손실을 감지합니다.PQconsumeInput()하드 실패를 반환합니다. 이 수정 사항을 사용하면 일반적으로 연결 끊김이 오류를 통해 보고됩니다.PGresult객체는 대부분의 애플리케이션배트맨 토토 훨씬 더 깔끔한 동작입니다.

  • 만들다pg_ctl중지/재시작/승격 작업을 기다리는 동안 포스트마스터의 활성 상태를 다시 확인합니다(Tom Lane)§

    pg_ctl정지 또는 승격 신호 전송의 부작용으로 포스트마스터가 살아 있는지 확인하지만 순진하게 디스크 상태 변경을 보기 위해 기다렸습니다. 포스트마스터가 PID 파일을 제거하거나 제어 파일을 업데이트하지 않고 부정하게 사망한 경우,pg_ctl시간 초과될 때까지 기다립니다. 대신 포스트마스터 프로세스가 여전히 존재하는지 자주 다시 확인하세요.

  • 오류 처리 수정pg_waldump(호리구치 쿄타로, 안드레스 프로인드)§ §

    WAL 세그먼트 크기를 결정하기 위해 WAL 파일을 읽으려고 시도하는 동안pg_waldump파일이 너무 짧은 경우 잘못된 오류를 보고합니다. 또한 이 메시지 및 관련 오류 메시지에 보고된 파일 이름은 가비지일 수 있습니다.

  • 다음을 확인하세요기여/페이지검사함수는 모두 0인 페이지에 대처합니다(Michael Paquier)§

    이것은 합법적인 극단적인 경우이지만 모듈은 대부분 이에 대한 준비가 되어 있지 않았습니다. 적절하게 null을 반환하거나 행을 반환하지 않도록 배열합니다. 오류를 발생시키는 것보다 더 유용한 것 같습니다.

  • 기여/페이지검사, 잘못된 페이지에 대한 방어 기능 추가특별한 공간내용, 올바른 페이지 크기에 대한 검사를 강화하고 인덱스가 예상 유형인지 확인하는 일부 누락된 검사를 추가합니다(Michael Paquier, Justin Pryzby, Julien Rouhaud)§ § §

    이러한 변경으로 인해 잘못된 데이터로 인해 모듈이 충돌할 가능성이 줄어듭니다.

  • contrib/postgres_fdw, 확인하세요주문 기준절은 원격 주문 쿼리를 요청하기 전에 배송되는 것이 안전하며 다음을 포함합니다.사용 중필요한 경우 절(Ronan Dunklau)§

    이 수정은 원격 서버가 우리가 의도한 것과 다른 순서로 정렬할 수 있는 상황을 방지합니다. 때로는 겉보기에 불과할 수도 있지만 원격 데이터가 로컬에서 수행되는 병합 조인의 입력으로 사용되면 완전히 잘못된 결과가 발생할 수 있습니다.

  • 업데이트JITLLVM 14와 함께 작동하는 코드(Thomas Munro)§

  • 아래의 여러 가지 실패를 정리삐걱거리는 소리's-fsanitize=정의되지 않음체크 (Tom Lane, Andres Freund, Zhihong Yu)§ § § § §

    이러한 변경 사항의 대부분은 C 및 POSIX 표준 문자를 형식적으로 준수하기 위한 것이며 프로덕션 빌드에는 영향을 미치지 않을 것입니다.

  • 식 내에 중첩된 명령문을 지원하지 않는 C 컴파일러를 기반으로 구축되도록 PL/Perl을 수정했습니다(Tom Lane)§

  • 다음의 빌드 실패 가능성 수정pg_dumpallWindows배트맨 토토 MSVC를 사용하여 빌드하지 않는 경우(Andres Freund)§

  • Windows 빌드에서는 다음을 사용하세요.젠데프대신에pexportsDEF 파일 빌드(Andrew Dunstan)§

    이것은 최신 MSys 도구 체인배트맨 토토 작동하도록 빌드 프로세스를 조정합니다.

  • MinGW(Andrew Dunstan)배트맨 토토 구축된 프로그램배트맨 토토 쉘 와일드카드 패턴의 추가 확장을 방지§

    어떤 이유로 MinGW가 제공하는 C 라이브러리는 기본적으로 프로그램의 명령줄 인수배트맨 토토 쉘 와일드카드 문자를 확장합니다. 특히 MSVC배트맨 토토는 발생하지 않기 때문에 혼란스럽습니다. 따라서 끄십시오.

  • 다음으로 시간대 데이터 파일 업데이트tzdata팔레스타인의 DST 법률 변경 사항과 칠레 및 우크라이나의 역사적 수정 사항에 대한 2022a 릴리스입니다. (톰 레인)§

수정사항 제출

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