출시 날짜 :2020-08-13
이 릴리스에는 11.8의 다양한 수정 사항이 포함되어 범퍼카 토토. Major Release 11의 새로운 기능에 대한 정보는 참조섹션 E.23.
11.x.를 실행하는 사람들에게는 덤프/복원이 필요하지 않습니다.
그러나 11.6 이전 버전에서 업그레이드하는 경우 참조섹션 E.17.
보안 설정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)
일부 부분 집계 작업자가 만 발견 된 경우NAN
S는 비 만 발견했지만NAN
s, 결과가 잘못 결합되어 전체 결과가 잘못되었을 수 범퍼카 토토 (즉,NAN
해야 할 때).
24 시간보다 큰 시간 값 거부 (Tom Lane)
DateTime 입력 코드의 의도는 허용하는 것입니다“24 : 00 : 00”또는 동등한“23 : 59 : 60”이지만 더 큰 값은 없습니다. 그러나 범위 점검은 수용 할 수 있도록 오해되었습니다“23 : 59 : 60.NNN
”0이 아닌 분수 초NNN
. 타임 스탬프 값에서는 다음 날 첫 번째 2 초로 포장됩니다.Time
andTIMETZ
값, 저장된 값은 실제로 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
.subslotname
andpg_subscription_rel
.srsublsn
(Tom Lane)
부트 스트랩 카탈로그 데이터는이 두 카탈로그 열을 항상 널 비 널처럼 잘못 표시합니다. 기존 설치에서 그 실수를 수정하는 쉬운 방법은 없습니다 (v13 이상은 올바른 표시를 할 것입니다).srsublsn
그것이 널인지 확인하지 않고; 그것의 충돌은 불가능하지만 아마도 불가능하지는 않을 것입니다.
대처측면
Un-Flattened 하위에 첨부 된 제한 조항의 참조select
inFrom
절 (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_hints
is.
백업 중에 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_AGE
0이 아닌 값으로, 시스템 카탈로그의 동결이 제대로 작동하지 않아서 업그레이드가 혼란스러운 방식으로 실패했습니다. 업그레이드 기간 동안 그러한 설정이 상정되는지 확인하십시오.
수정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)
이것은 찾은 논리를 혼란스럽게 할 수 범퍼카 토토구성
소스 트리의 최상위 레벨을 식별하려면