릴리스 노트

PostgreSQL

E.14. 릴리스 11.9

출시 날짜 :2020-08-13

이 릴리스에는 11.8의 다양한 수정 사항이 포함되어 범퍼카 토토. Major Release 11의 새로운 기능에 대한 정보는 참조섹션 E.23.

E.14.1. 버전 11.9로의 마이그레이션

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

그러나 11.6 이전 버전에서 업그레이드하는 경우 참조섹션 E.17.

E.14.2. 변화

  • 보안 설정search_path논리적 복제에서 Walsenders와 노동자 (Noah Misch)를 적용합니다

    게시자 또는 가입자 데이터베이스의 악의적 인 사용자는 종종 슈퍼업자 인 역할 실행 복제에 의해 임의의 SQL 코드를 실행할 수 범퍼카 토토. 여기의 일부 위험은 CVE-2018-1058에 설명 된 것과 동일하며 복제 발신자와 수신기가 빈으로 실행되도록 함으로써이 패치에서 완화됩니다search_path설정. (CVE-2018-1058과 마찬가지로, 그 변화는 복제 된 테이블의 DDL에 사용되는 자격이없는 이름의 문제를 일으킬 수 범퍼카 토토.) 다른 위험은 신뢰할 수없는 역할에 속하는 객체를 복제하는 데 고유합니다.

  • Contrib 모듈의 설치 스크립트를보다 안전하게 만듭니다 (Tom Lane)

    공격자가 Extension의 대상 스키마 또는 일부 전제 조건 확장 스키마에서 개체를 생성 할 수있는 경우 CVE-2018-1058에 설명 된 것과 유사한 공격은 확장 설치 스크립트에 대해 수행 될 수 범퍼카 토토. 확장자는 종종 슈퍼 업체 권한을 설치해야하므로 슈퍼 사용자 권한을 얻는 경로를 열 수 범퍼카 토토.search_path설치 스크립트를 실행하는 데 사용됩니다. 장애를 입히다check_function_bodies스크립트 내; 일부 Contrib 모듈에 사용 된 카탈로그 조정 쿼리를 고정하여 안전하게 보장합니다.

  • 파티션 가지 치기의 에지 케이스 수정 (Etsuro Fujita, Dmitry Dolgov)

    여러 파티션 키 열이 있으면 일부 열이 제약이없는 경우 가지 치기 테스트 생성이 잘못 행동 할 수 범퍼카 토토어디조항 또는 다중 제약 조항. 이로 인해 서버 충돌, 잘못된 쿼리 결과 또는 어설 션 고장이 발생할 수 범퍼카 토토.

  • 파티션 별 NestLoop 조인 (Tom Lane) 내부의 매개 변수화 된 비트 맵 및 비트 맵 인덱스 스캔의 구성 수정

    그러한 스캔이 조인 외부에서 값을 사용하는 데 필요한 계획은 일반적으로 실행시 충돌합니다.

  • 논리적 복제 walsender에서 requalive 메시지 (Álvaro Herrera) 후 피드백 메시지를 보내지 않는 실패 수정

    내장 된 Walreceiver가 어쨌든 피드백 응답 (잘못된 상태를 지우는)을 상당히 자주 보낼 수 있기 때문에 내장 논리 복제를 사용할 때 비교적 작은 문제입니다. 그러나 다른 복제 시스템과 같은pglogical, 상당한 성능 문제를 일으킨다.

  • 열계의 발사 수정업데이트논리적 복제 가입자 (Tom Lane)의 트리거

    코드는 게시자와 가입자 테이블 사이에 열 숫자가 다를 가능성을 설명하기 위해 무시되어 실제로 다르면 어떤 발사가 발생하는지에 대한 잘못된 결정이 이루어질 수 범퍼카 토토..

  • 가장 오래된 Xmin 및 LSN 값을 업데이트하는 동안pg_replication_slot_advance ()(Michael Paquier)

    이 기능은 이전에 그렇게하지 않았으며, 복제 슬롯의 수동 발전 후 리소스 정리 (예 : 롱이 필요한 WAL 세그먼트 제거)를 방지 할 수 있습니다..

  • 느린 실행 수정ts_headline ()(Tom Lane)

    이전의 사소한 릴리스 세트에 추가 된 문구 검색 수정이 발생할 수 있습니다ts_headline ()긴 문서에 불합리한 시간을 소비하기 위해; 설상가상으로, 쿼리는 번거로운 루프 내에서 취소 할 수 없었습니다.

  • 반복 ()Query Cancel (Joe Conway)에 의해 기능을 중단 할 수 범퍼카 토토

  • 수정pg_current_logfile ()캐리지 리턴을 포함하지 않으려면 (\ r) Windows (Tom Lane)의 결과에서

  • pg_read_file ()및 관련 함수는 EOF에 도달 할 때까지 읽습니다 (Joe Conway)

    이전에, 특정 데이터 길이를 읽을 수 없다면,이 함수는 파일 길이가 어떤 파일 길이로보고stat (). 파이프 및 기타 종류의 가상 파일에 도움이되지 않습니다.

  • 의 잘못 처리 수정NAN병렬 집계 중 입력숫자-타입 열 (Tom Lane)

    일부 부분 집계 작업자가 만 발견 된 경우NANS는 비 만 발견했지만NANs, 결과가 잘못 결합되어 전체 결과가 잘못되었을 수 범퍼카 토토 (즉,NAN해야 할 때).

  • 24 시간보다 큰 시간 값 거부 (Tom Lane)

    DateTime 입력 코드의 의도는 허용하는 것입니다24 : 00 : 00또는 동등한23 : 59 : 60이지만 더 큰 값은 없습니다. 그러나 범위 점검은 수용 할 수 있도록 오해되었습니다23 : 59 : 60.NNN0이 아닌 분수 초NNN. 타임 스탬프 값에서는 다음 날 첫 번째 2 초로 포장됩니다.TimeandTIMETZ값, 저장된 값은 실제로 24 시간 이상이어서 덤프/재 장전 실패 및 기타 오해를 유발합니다.

  • index index index quoting설명의 비 텍스트 출력 형식 (Tom Lane, Euler Taveira)

  • 수정설명'의 자원 사용에 대한 회계, 특히 버퍼 액세스에 대한 계정합병 수집노드 (Jehan-Guillaume de Rorthais)

  • 제약 조건 재 방문 타이밍 수정Alter Table(David Rowley)

    ifAlter Table테이블의 내용을 완전히 다시 작성해야하며 (예 : 열의 데이터 유형 변경으로 인해) 테이블을 스캔하여 외래 키를 다시 검증하거나check제약 조건, 때로는 잘못된 순서로 작업을 수행하여와 같은 홀수 오류로 이어집니다.파일에서 블록 0을 읽을 수 없음 "base/nnnnn/nnnnn": 8192 바이트 만 읽기.

  • 잘못된 널 표시를 중심으로 작업pg_subscription.subslotnameandpg_subscription_rel.srsublsn(Tom Lane)

    부트 스트랩 카탈로그 데이터는이 두 카탈로그 열을 항상 널 비 널처럼 잘못 표시합니다. 기존 설치에서 그 실수를 수정하는 쉬운 방법은 없습니다 (v13 이상은 올바른 표시를 할 것입니다).srsublsn그것이 널인지 확인하지 않고; 그것의 충돌은 불가능하지만 아마도 불가능하지는 않을 것입니다.

  • 대처측면Un-Flattened 하위에 첨부 된 제한 조항의 참조selectinFrom절 (Tom Lane)

    이 감독은 쿼리 실행시 주장 실패 또는 충돌을 초래할 수 범퍼카 토토.

  • 절대 분석되지 않은 외국 테이블에는 튜플이 제로가 있다고 믿지 마십시오 (Tom Lane)

    이것은 주로 획득 할 그룹 수에 대한 플래너의 추정치에 영향을 미쳤습니다그룹 by.

  • 가짜 경고 제거남은 자리 표시 자 튜플in brin index de-summarization (Álvaro Herrera)

    케이스는 취소 된 진공 상태에서 합법적으로 발생할 수 있으므로 경고에 대한 경고가 지나치게 시끄 럽습니다.

  • 테이블 스페이스 선택 수정공유 파일 세트임시 파일 (Magnus Hagander, Tom Lane)

    iftemp_tablespaces비어 있거나 명시 적으로 데이터베이스의 기본 테이블 스페이스를 명시 적으로 이름을 지정했습니다. 그러한 파일은에 배치되었습니다.pg_default예상대로 데이터베이스의 기본 테이블 스페이스 대신 테이블 스페이스.

  • WAL 일관성 검사 중 SP-Gist 인덱스 페이지 마스킹시 코너 케이스 오류 수정 (Alexander Korotkov)

    이것은 허위 실패 보고서를 유발할 수 범퍼카 토토Wal_Consistency_checking활성화되었습니다.

  • 서버의 오류 처리 개선Buffile모듈 (Thomas Munro)

    I/O 오류가 EOF에 도달 할 수 없거나 전혀보고되지 않은 경우 일부 경우를 수정하십시오. 또한 블록 번호 및 바이트 카운트와 같은 세부 사항을 추가하십시오.

  • 갈등을 고치고Serializable격리 모드 (Peter Geoghegan)

    동시에 튜플이 다른 동시 트랜잭션으로 업데이트 된 경우, 현재 트랜잭션의 스냅 샷에 튜플 버전이 보이지 않았으며, 직렬화 충돌 점검은 튜플이 현재 트랜잭션 결과와 관련이 있는지에 대한 잘못된 결론을 도출 할 수 있습니다. 이를 통해 직렬화 오류로 실패했을 때 직렬화 가능한 트랜잭션이 커밋 될 수 있습니다.

  • 죽은 Btree Index 항목의 반복적 인 표시를 피하십시오 (Masahiko Sawada)

    기능적으로 무해하지만, 이로 인해 체크섬이 활성화 될 때 쓸모없는 WAL 트래픽이 발생했거나Wal_log_hintsis.

  • 백업 중에 JIT 컴파일이 활성화 될 때 비 독점적 인 백업을 정리하는 동안 문제를 피하십시오 (Robert Haas)

  • 수정하기 전에 올바른 잠금을 얻기 위해 일부 코드 경로의 실패 수정PG_CONTROL(Nathan Bossart, Fujii Masao)

    이 감독은 허용 할 수 범퍼카 토토PG_CONTROL일관되지 않은 체크섬으로 작성하려면 다음에 데이터베이스를 다시 시작할 수없는 경우 나중에 문제를 일으킬 수 있습니다.PG_CONTROL업데이트.

  • 오류 수정currtid ()andcurrtid2 ()(Michael Paquier)

    이 기능 (문서화되지 않고 고대 버전의 ODBC 드라이버에서만 사용됨)은 충돌을 초래할 수있는 코딩 오류가 포함되어 있거나 혼란스러운 오류 메시지가에 포함되어 범퍼카 토토.파일을 열 수 없음저장소가없는 관계에 적용될 때.

  • 전화 방지elog ()또는palloc ()스핀 록을 들고있는 동안 (Michael Paquier, Tom Lane)

    복제 슬롯과 관련된 논리는이 코딩 규칙을 여러 차례 위반했습니다. 문제가 발생할 확률은 상당히 낮지 만, 호출 된 함수의 오류는 스피 록이 고정 될 것입니다.

  • 논리적 복제 가입자의 어설 션 수정복제 아이덴티티 전체(Euler Taveira)

    이것은 단지 잘못된 주장 이었으므로 표준 생산 빌드에 영향을 미치지 않습니다.

  • |pg_dumpandPG_BASEBACKUP(Justin Pryzby, Tom Lane, Álvaro Herrera)

    일부 코드 경로는와 같은 바보 같은 보고서를 생성 할 수 범퍼카 토토.파일을 쓸 수 없음 : 성공.

  • 테이블 레벨 권한과 컬럼 당 특권을 모두 갖는 테이블의 병렬 복원 (Tom Lane)

    테이블 레벨 권한 보조금을 먼저 적용해야하지만, 병렬 복원이 그렇게 할 수없는 방식으로 주문하지는 않았다. 이것은로 이어질 수 범퍼카 토토.동시에 업데이트 된 튜플오류, 또는 일부 열당 특권 보조금의 실종. 이에 대한 수정은 아카이브 파일의 이러한 항목간에 종속성 링크를 포함하는 것입니다. 즉, 새 덤프는 수정 된 상태에서 가져와야합니다pg_dump문제가 재발하지 않도록합니다.

  • pg_upgradeVACUUM_DEFER_CLEANUP_AGE대상 클러스터에서 0으로 설정 (Bruce Momjian)

    대상 클러스터의 구성이 설정되도록 수정 된 경우VACUUM_DEFER_CLEANUP_AGE0이 아닌 값으로, 시스템 카탈로그의 동결이 제대로 작동하지 않아서 업그레이드가 혼란스러운 방식으로 실패했습니다. 업그레이드 기간 동안 그러한 설정이 상정되는지 확인하십시오.

  • 수정pg_recvlogical종료하기 전에 보류중인 메시지를 배출하려면 (Noah Misch)

    이 없으면 복제 발신자는 복제 슬롯의 LSN 위치에 대한 최종 업데이트 없이는 전송 실패를 감지하고 종료 할 수 있습니다. 이로 인해 다음 연결 후 데이터를 다시 전송했습니다.pg_recvlogical소비를 원합니다.

  • 수정pg_rewind의 소스 데이터 디렉토리 (Justin Pryzby, Michael Paquier)에서 방금 삭제 된 파일 처리

    온라인 소스 데이터베이스로 작업 할 때 동시 파일 삭제가 가능하지만pg_rewind파일의 디렉토리 항목을보고이를 검사하는 사이에 삭제가 발생하면 혼란 스러울 것입니다stat ().

  • 만들기PG_TEST_FSYNCWindows에서 이진 I/O 모드 사용 (Michael Paquier)

    이전에는 테스트 파일을 텍스트 모드로 썼는데, 이는 정확한 반영이 아닙니다PostgreSQL의 실제 사용법.

  • 수정Contrib/Amcheck비어있는 삭제 된 인덱스 페이지에 대해 불평하지 않음 (Alexander Korotkov)

    이 상황은 Wal Replay 동안 정상입니다.

  • 로컬 상태를 올바르게 초기화하지 못하는 수정Contrib/DBlink(Joe Conway)

    올바른 상황 조합을 통해로 이어질 수 범퍼카 토토.dblink_close ()예기치 않은 원격 발행커밋.

  • 수정Contrib/Pgcrypto의 오용deflate ()(Tom Lane)

    thepgp_sym_encrypt함수는 잘못된 압축 데이터를 생성 할 수 범퍼카 토토.Zlib의 API 요구 사항. 우리는이 오류가 주식으로 나타나는 보고서가 없습니다Zlib그러나 IBM을 사용할 때 볼 수 범퍼카 토토Zlibnx구현.

  • 감압 로직에서 코너 케이스 수정Contrib/Pgcrypto'spgp_sym_decrypt기능 (Kyotaro Horiguchi, Michael Paquier)

    압축 스트림은 빈 패킷으로 유효하게 끝날 수 있지만, 압축 압력기는이를 처리하지 못했고 손상된 데이터에 대해 불평 할 것입니다.

  • POSIX-Standard 사용strsignal ()BSD-ish 대신SYS_SIGLIST [](Tom Lane)

    이것은 매우 최근 버전의로 빌드 실패를 피합니다.glibc.

  • Microsoft Visual Studio 2015를 사용하여 NLS 코드 구축을 지원합니다 (Juan José Santamaría Flecha, Davinder Singh, Amit Kapila)

  • MSVC 설치 스크립트의 실패를 피하십시오.구성소스 코드 트리 위의 여러 레벨 (Arnold Müller)

    이것은 찾은 논리를 혼란스럽게 할 수 범퍼카 토토구성소스 트리의 최상위 레벨을 식별하려면