출시 날짜 :2020-08-13
이 릴리스에는 10.13의 다양한 수정 사항이 포함되어 토토 커뮤니티. Major Release 10의 새로운 기능에 대한 정보는 참조섹션 E.24.
10.x.를 실행하는 사람들에게는 덤프/복원이 필요하지 않습니다.
그러나 10.11 이전 버전에서 업그레이드하는 경우 참조섹션 E.13.
보안 설정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 모듈에 사용 된 카탈로그 조정 쿼리를 고정하여 안전하게 보장합니다.
논리적 복제 walsender에서 requalive 메시지 (Álvaro Herrera) 후 피드백 메시지를 보내지 않는 실패 수정
내장 된 Walreceiver가 어쨌든 피드백 응답 (잘못된 상태를 지우는)을 상당히 자주 보낼 수 있기 때문에 내장 논리 복제를 사용할 때 비교적 작은 문제입니다. 그러나 다른 복제 시스템과 같은pglogical, 상당한 성능 문제를 일으킨다.
열계의 발사 수정업데이트
논리적 복제 가입자 (Tom Lane)의 트리거
코드는 게시자와 가입자 테이블간에 열 숫자가 다를 가능성을 설명하기 위해 무시 하였으므로 실제로 다르면 어떤 발사가 발생하는지에 대한 잘못된 결정이 내려 질 수 토토 커뮤니티..
느린 실행 수정ts_headline ()
(Tom Lane)
이전의 사소한 릴리스 세트에 추가 된 문구 검색 수정이 발생할 수 있습니다ts_headline ()
긴 문서에 불합리한 시간을 소비하기 위해; 설상가상으로, 쿼리는 번거로운 루프 내에서 취소 할 수 없었습니다.
반복 ()
Query Cancel (Joe Conway)에 의해 기능을 중단 할 수 토토 커뮤니티.
수정pg_current_logfile ()
캐리지 리턴을 포함하지 않으려면 (\ r
) Windows (Tom Lane)의 결과에서
의 잘못 처리 수정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
그것이 null인지 확인하지 않고; 그것의 충돌은 불가능하지만 아마도 불가능하지는 않을 것입니다.
대처측면
undtended sub에 첨부 된 제한 조항의 참조select
inFrom
절 (Tom Lane)
이 감독은 쿼리 실행시 주장 실패 또는 충돌을 초래할 수 토토 커뮤니티.
절대 분석되지 않은 외국 테이블에는 튜플이 제로가 있다고 믿지 마십시오 (Tom Lane)
이것은 주로 획득 할 그룹 수에 대한 플래너의 추정치에 영향을 미쳤습니다그룹 by
.
가짜 경고 제거“남은 자리 표시 자 튜플”in brin index de-summarization (Álvaro Herrera)
케이스는 취소 된 진공 상태에서 합법적으로 발생할 수 있으므로 경고에 대한 경고가 지나치게 시끄 럽습니다.
서버의 오류 처리 개선Buffile
모듈 (Thomas Munro)
I/O 오류가 EOF에 도달 할 수 없거나 전혀보고되지 않은 경우를 수정하십시오. 또한 블록 번호 및 바이트 카운트와 같은 세부 사항을 추가하십시오.
갈등을 고치고SERIALIZABLE
격리 모드 (Peter Geoghegan)
동시 삽입 튜플이 다른 동시 트랜잭션으로 업데이트 된 경우, 튜플 버전은 현재 트랜잭션의 스냅 샷에 보이지 않았으며, 직렬화 충돌 점검은 튜플이 현재 트랜잭션 결과와 관련이 있는지에 대한 잘못된 결론을 도출 할 수 있습니다. 이를 통해 직렬화 오류로 실패했을 때 직렬화 가능한 트랜잭션이 커밋 될 수 있습니다.
죽은 BTREE 인덱스 항목의 반복적 인 표시를 피하십시오 (Masahiko Sawada)
기능적으로 무해하지만, 이로 인해 체크섬이 활성화 될 때 쓸모없는 WAL 트래픽이 발생했거나Wal_Log_hints
on.
수정하기 전에 올바른 잠금 장치를 얻기 위해 일부 코드 경로의 실패 수정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/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)
이것은 찾은 논리를 혼동 할 수 토토 커뮤니티구성
소스 트리의 최상위 레벨을 식별하려면