출시 날짜 :2020-02-13
이 릴리스에는 12.1의 다양한 수정 사항이 포함되어 있습니다. Major Release 12의 새로운 기능에 대한 정보는 참조섹션 E.23.
덤프/복원은 12.x.를 실행하는 사람들에게는 필요하지 않습니다.
그러나 파티션 된 테이블을 참조하는 외국의 주요 제약 조건이있는 경우 해당 기능의 버그에 대해 아래 두 항목을 참조하십시오..
누락 된 권한 추가Alter ... 확장에 따라 다릅니다
(Álvaro Herrera)§
확장자에 따라 객체를 표시하는 것은 권한을 확인하지 않았습니다. 이 감독을 통해 모든 사용자는 확장을 삭제할 수있는 사람이 하락 가능한 것으로 표시, 트리거, 구체화 된보기 또는 색인을 표시 할 수있었습니다.
수정Truncate ... Cascade
모든 관련 파티션이 잘립니다 (Jehan-Guillaume de Rorthais)§
분할 된 테이블의 파티션이와 잘린 경우캐스케이드
옵션 및 파티션 된 테이블에는 다른 테이블토토 결과 외국 키 참조가 있으므로 해당 테이블도 잘라야합니다. 참조 테이블 자체가 분할 된 경우 이것을 확인해야 할 필요성이 없어서 외국 키 제약을 위반하는 행이 생존 할 수 있습니다.
따라서 분할 된 테이블 사이에 외국의 주요 제약 조건이 있고 파티션 수준을 수행 한 경우Truncate
참조 테이블토토 결과 외국의 주요 위반이 있는지 확인해야합니다. 가장 간단한 방법은 외국의 주요 제약 조건의 새로운 인스턴스를 추가하는 것입니다 (성공하면 원래의 제약 조건을 삭제하십시오).
외국의 주요 제약 조건을 하위 파티션 (Jehan-Guillaume de Rorthais)에 첨부하지 않는 실패 수정§
다단계 파티션 테이블의 첫 번째 레벨 아래의 레벨에 파티션을 추가 할 때, 상단 분할 된 테이블을 참조하는 외국 주요 제약 조건은 새 파티션으로 클로닝되지 않았으며 나중에 제약 위반이 가능합니다. 새로운 파티션을 분리하고 다시 붙잡는 것이 이것을 고치는 가장 저렴한 방법입니다.
파티션 된 테이블 또는 상속 트리 (Tom Lane)에서 동시 업데이트 중 가능한 충돌 수정§
적절한 경우 파티션 된 테이블의 행 트리거가 하위 파티션으로 올바르게 복제되는지 확인하십시오 (Álvaro Herrera)§
파티션을 만들거나 첨부 할 때 사용자 정의 트리거 (외국 키 또는 이연 고유 한 제약 조건을위한 트리거는 아님)를 놓칠 수 있습니다..
논리적 복제 가입자 코드를 수정하여 컬럼 당 실행업데이트
적절한 경우 트리거 (Peter Eisentraut)§
대규모 트랜잭션이 여러 개의 개별 임시 파일 (Amit Khandekar)에 쏟아져야 할 때 논리 디코딩의 실패를 피하십시오§ §
논리적 복제 가입자가 행 업데이트를 처리 할 때 가능한 충돌 또는 데이터 손상 수정 (Tom Lane, Tomas Vondra)§
이 버그는 가입자의 테이블에 게시자토토 결과 복사되지 않았고 회의 별 데이터 유형이있는 열이 포함 된 경우에만 눈에 띄는 문제를 일으켰습니다.
가입 관계에서 DDL을 변경 한 후 논리 복제 가입자의 충돌 수정 (Jehan-Guillaume de Rorthais, Vignesh C)§
데이터베이스 충돌 후 논리 복제 게시자의 실패 수정 및 재시작 (Vignesh C)§
pg_replication_slot_advance ()
물리적 복제 슬롯은 다시 시작됩니다 (Alexey Kondratov, Michael Paquier)§ §
논리 복제 효율성 향상복제 아이덴티티 전체
(Konstantin Knizhnik)§
업데이트 또는 삭제 작업 중에 기존 튜플을 검색 할 때 마지막 튜플이 마지막 튜플을 반환합니다.
데이터베이스 백업을 수정하여 데이터베이스 OID를 처리하려면int32_max
(Peter Eisentraut)§
병렬 계획이 정확한 시간에 항상 종료되도록하십시오 (Kyotaro Horiguchi)§
이 감독은“임시 파일 누출”멀티 배치 병렬 해시 조인의 경고.
한계 노드 아래에있는 수집 또는 Gathermerge 계획 노드의 조기 종료 방지 (Amit Kapila)§
예를 들어 NestLoop 내부에있는 경우와 같이 그러한 계획 노드를 두 번 이상 스캔 해야하는 경우 고장을 피합니다..
많은 코어 (Gang Deng, Thomas Munro)와 함께 CPU토토 결과 병렬 해시의 효율 향상§
동시에 충돌을 피하십시오색인 생성
무료 동적 공유 메모리 슬롯이 없으면 (Thomas Munro)§ §
대신 비 평면 인덱스 빌드로 돌아갑니다.
무료 동적 공유 메모리 슬롯이 없을 때 메모리 누출을 피하십시오 (Thomas Munro)§
무시동시에
임시 테이블에서 색인 생성, 드롭 또는 재건을 수행 할 때 옵션 (Michael Paquier, Heikki Linnakangas, Andres Freund)§
임시 테이블에가 있으면 이상한 실패를 피합니다.on Commit
행동. 사용에 이점이 없습니다동시에
어쨌든 임시 테이블의 경우 다른 세션이 테이블에 액세스 할 수 없으므로 추가 처리가 무의미하게 만듭니다.
표시된 임시 테이블에서 표현식 인덱스를 재설정 할 때 가능한 실패 수정커밋 삭제 행
(Tom Lane)§
브린 색인 작업에서 가능한 충돌 수정Box
, 범위
andinet
데이터 유형 (Heikki Linnakangas)§
Gin Indexes (Alexander Korotkov)에서 삭제 된 페이지의 처리 수정§ § § §
가능한 교착 상태를 피하고, 삭제 된 페이지의 상태의 잘못된 업데이트 및 최근에 삭감 된 페이지를 통과하지 못한다.
하위 플랜으로 가능한 충돌 수정 (sub-select
) multi-row 내토토 결과값
List (Tom Lane)§
실패 수정Alter Table
열이 a에 참조 된 경우생성
표현식이 더 일찍 유형이 추가되거나 변경되었습니다Alter
명령 (Tom Lane)§
기본값 값을 삽입하지 못하는 수정“누락”튜플 변환 중 속성 (Vik Fearing, Andrew Gierth)§
값이 추가 된 열토토 결과 나올 때 값을 잘못 읽을 수 있습니다.ALTER 테이블 추가 열
일정한 기본값이있는
fileclose () 실패 (Noah Misch) 이후 충돌 수정§
이 문제는 만 관찰 할 수 있습니다.data_sync_retry
enabled, 그렇지 않으면 fileclose () 실패가 공황 상태로보고되므로
다중의 취급 수정After Row
외국 테이블토토 결과 트리거 (Etsuro Fujita)§
Pass-by-reection 집계 전이 상태와의 충돌 가능성 수정 (Andres Freund, Teodor Sigaev)§
오류보고 개선to_date ()
andTO_TIMESTAMP ()
(Tom Lane, Álvaro Herrera)§ §
입력 문자열의 부정확 한 달 또는 주일 이름에 대한 보고서는 다중 바이트 문자의 중간에 입력을 자르면 후속 실패를 유발할 수있는 부적절하게 인코딩 된 오류 메시지로 이어질 수 있습니다. 대신 다음 공백에서 잘립니다.
Off-By-One 결과 수정추출물 (isoyear from
BC 날짜 (Tom Lane)§타임 스탬프
)
<
타입의 연산자char
|“캐시 조회 실패 Collation 0”(Tom Lane)§
TID 스캔을 순차적 스캔으로 취급하지 마십시오 (Tatsuhito Kasahara)§ §
리팩토링 감독 감독으로 인해 TID 스캔 (CTID 선택)이 통계 뷰토토 결과 순차적 스캔으로 계산되고 순차적 스캔과 같이 전체 테이블 술어 잠금 장치를 가져옵니다. 후자의 동작은 직렬화 가능한 트랜잭션 모드토토 결과 불필요한 직렬화 오류를 유발할 수 있습니다.
스택 오버플로를 피하십시오Information_Schema
시스템 카탈로그 (Tom Lane)에 자체 참조 관점이있는 경우§
자기 참조 관점은 효과가 없습니다. 항상 무한 재귀를 초래합니다.
Walsender 프로세스가 항상 트랜잭션 시작 시간에 null을 표시하는지 확인하십시오.pg_stat_activity
(Álvaro Herrera)§ §
이전에xact_start
열이 때로는 프로세스 시작 시간을 표시합니다.
해시의 성능 향상 매우 큰 내부 관계 (Thomas Munro)§
활성 Walsender Processes (Pierre Ducroquet)가 많을 때 스핀 락 경합 감소§
배치 수정“하위 계획 제거”필드설명
출력 (Daniel Gustafsson, Tom Lane)§
텍스트가 아닌 출력 형식 으로이 필드는 내부에서 방출되었습니다.“계획”하위 그룹, 구문 적으로 유효하지 않은 출력을 초래합니다. 의도 한대로 부모 부록에 첨부하거나 계획 노드를 첨부하십시오.“하위 계획 제거”이제 그 앞에 나타납니다.
수정설명
's설정
비 텍스트 출력 형식 (Tom Lane)에서 비어있는 옵션§
텍스트가 아닌 출력 형식에서는 비어 있거나 값이 0이 있더라도 요청시 필드가 나타나야합니다.
사용자가 실제로 쿼리 (Dilip Kumar, Amit Langote)에 명명 된 테이블의 해당 열을 읽을 수있는 경우 플래너가 어린이 테이블 통계에 잠재적으로 누워있는 테스트를 적용 할 수 있도록합니다.§
이 변경은 CVE-2017-7484 용 수정으로 작성된 파티션 된 테이블의 성능 문제를 수정합니다. 해당 보안 수정은 유출 연산자 적용을 현재 사용자가 직접 읽을 권한이없는 열에 대한 통계에 적용 할 수 없었습니다.
단일 줄 서브 퀘스트 (Tom Lane)에 조인의 지나치게 공격적인 붕괴로 유도 된 플래너 오류 수정§
이 실수는와 같은 오류로 이어졌습니다.“조인 관계를 구성하지 못했습니다”.
수정“아니오 = Opfamily의 연산자nnnn
”A와 일치하려고 할 때 플래너 오류Like
또는 이진 호환 인덱스 opclass (Tom Lane)에 대한 정규 패턴 매치 연산자§
선택성 계산에서 가장자리 사고 충돌 및 오해를 수정하십시오<@
and@>
범위 운영자 (Michael Paquier, Andrey Borodin, Tom Lane)§
대부분의 공통 가치 확장 통계 (Tomas Vondra)를 적용 할 때 시스템 열 무시§
이것은 방지“음수 비트 맵 세트 멤버가 허용되지 않음”영향을받는 쿼리에 대한 플래너 오류.
가상의 브린 지수를 지원하기 위해 브린 색인 로직 수정 (Julien Rouhaud, Heikki Linnakangas)§
이전에“색인 고문”Extension은 플래너 비용 추정 코드가 항상 인덱스의 미터지에 물리적으로 액세스하려고 시도하기 때문에 플래너가 가상의 브린 지수와 관련된 계획을 생성하도록 시도했습니다. 이제 인덱스가 가상이 있는지 확인하고 인덱스 매개 변수에 대한 기본 가정을 사용합니다.
조건부와 함께 뷰의 자동 업데이트를 사용하려는 시도에 대한 오류보고 향상대신
규칙 (Dean Rasheed)§
이것은 지원되지 않았지만 이전에는 실행 시간에만 오류가 발생하여 플래너 오류로 마스킹 할 수 있습니다.
범위 유형 (Tom Lane, Julien Rouhaud)을 통해 복합 유형 자체가 간접적으로 포함되는 것을 방지합니다.§ §
vseudo 유형을 반환하는 파티션 키 표현을 허용하지 않습니다.레코드
(Tom Lane)§
금지 된 유형의 인덱스 표현식에 대한 오류보고 수정 (Amit Langote)§
a 만 포함하는 뷰의 덤핑 수정값
보기 출력 열의 이름이 바뀌는 경우 (Tom Lane).§
사용 된 데이터 유형 및 콜라이트 확인xmltable
view 또는 규칙의 종속성을 계산할 때 구성이 설명됩니다 (Tom Lane)§
이전에는 뷰를 깰 수있었습니다xmltable
유형을 삭제하여 뷰에서 유형이 참조되지 않은 경우. 이 수정 사항은 기존 뷰에 대해 이미 기록 된 종속성을 수정하지 않으며 새로 만들어진 뷰에 대해서만 수정합니다.
반경 인증 매개 변수 (Marcos David)의 원치 않는 다운 케이스 및 잘리지 않음§
thepg_hba.conf
Parser는이 필드를 실수로 SQL 식별자로 취급했으며 일반적으로 그렇지 않습니다.
전송Notify
보내기 전에 클라이언트에게 메시지ReadyForquery
, 이후가 아닌 (Tom Lane)§
이 변경은 LIBPQ 및 이와 유사하게 작동하는 기타 클라이언트 라이브러리를 사용하면 거래 중에 수신 된 알림이 고객이 트랜잭션이 완료되었다고 생각할 때까지 사용할 수 있도록합니다. 이것은 아마도 실제 응용 분야에 차이가 없을 것입니다 (어쨌든 비동기 알림에 대처해야 함).
GSSAPI 암호화 (Tom Lane)를 사용할 때 비 블로킹 I/O 처리시 버그 수정§
이러한 오류는 데이터를 삭제할 수 있습니다 (일반적으로 후속 와이어 프로토 콜로화 오류로 이어질 수 있음) 또는 A“Livelock”모든 데이터가 전송 된 것은 아니지만 전송 프로세스가 잠들 수있는 상황. 게다가,libpq각 연결에 대해 별도의 암호화 상태를 유지하지 못하여 여러 암호화 된 데이터베이스 연결을 사용하여 응용 프로그램의 실패 가능성을 만듭니다.
허용libpqGSSAPI 코드가 컴파일되지 않은 경우에도 모든 GSS 관련 연결 매개 변수를 구문 분석하려면 (Tom Lane)§
이것은 우리의 SSL 지원과 유사하게 행동을 만듭니다. 오래 전부터 특정 빌드에서 기능이 없기 때문에 일부는 무시되거나 제한 되더라도 항상 모든 관련 매개 변수를 받아들이는 것이 좋은 아이디어로 간주되었습니다..
잘못된 처리 수정%B
and%B
형식 코드토토 결과ECPG'spgtypestimestamp_fmt_asc ()
함수 (Tomas vondra)§
OFF-BY-ONE 오류로 인해이 코드는 잘못된 달 이름을 인쇄하거나 충돌 할 수 있습니다.
메모리 외 실패 후 충돌을 피하십시오ecpglib(Tom Lane)§
병렬 수정pg_dump/PG_RESTORE작업자 프로세스 생성 실패 (Tom Lane) 더 우아하게 처리하려면§
병렬 종료를 시도 할 때 충돌 또는 잠금 가능성을 방지pg_dump/PG_RESTORE신호를 통해 실행 (Tom Lane)§
inpg_upgrade, 테이블에서 업그레이드 할 수없는 데이터 유형을 검색하는 동안 배열과 범위 내부를보십시오 (Tom Lane)§
더 철저한 구문 확인CreateUser's-연결-리미트
옵션 (Álvaro Herrera)§
더 많은 경우에 PL/PGSQL 복합 유형 변수가 참조하는 특정 유형의 변경에 대처합니다 (Ashutosh Sharma, Tom Lane)§
PL/PGSQL 변수에 의해 참조 된 복합 유형 삭제 및 재창조“OID와 관계를 열 수 없음nnnn
”오류.
충돌을 피하십시오postgres_fdw
명령을 보내려고 할 때업데이트 remote_tab set (x, y) = (select ...)
원격 서버 (Tom Lane)§
inContrib/Dict_int
, 거부Maxlen
1보다 작은 설정 (Tomas Vondra)§
이것은 해당 매개 변수에 대한 바보 같은 설정에서 충돌이 발생할 수 있습니다.
님의 숫자 값을 허용하지 않음Contrib/TableFunc
'scrosstab ()
기능 (Joe Conway)§
이 케이스는 유용하게 작동하지 않았으며 일부 플랫폼토토 결과 충돌 할 것입니다.
수정구성의 OpenSSL에 대한 프로브ssl_clear_options ()
1.1.0 (Michael Paquier, Daniel Gustafsson) 이전의 OpenSSL 버전에서 작동하도록 기능§
이 문제는 원하는대로 SSL 압축 옵션을 설정하지 못하게 될 수 있습니다.PostgreSQLOpenSSL의 이전 버전에 대해 구축되었습니다.
약간의 시간 초과 및 통계 추적 GUC 변수를 표시하십시오.pgdllimport
, 확장자가 Windows (Pascal Legrand)에서 액세스 할 수 있도록§
이것은에 적용됩니다idle_in_transaction_session_timeout
, lock_timeout
, station_timeout
, track_activities
, track_counts
및Track_Functions
.
정신 검사토토 결과 메모리 누출을 피하십시오“슬래브”메모리 컨텍스트 (Tomas Vondra)§
이것은 일반적으로 메모리 컨텍스트 확인을 활성화하지 않기 때문에 생산 빌드에 문제가되지 않습니다. 그러나 디버그 빌드토토 결과는 누출이 상당히 심할 수 있습니다.
LWLOCK 통계 메커니즘 (Fujii Masao)에 의해보고 된 여러 통계 항목 수정§
LWLOCK 통계 코드 (기본적으로 구축되지 않았으며 컴파일이 필요합니다-dlwlock_stats
) 해시 가능한 키 생성 결함으로 인해 동일한 LWLOCK 및 백엔드 프로세스에 대한 여러 항목을보고 할 수 있습니다.
Windows (Amit Kapila)에서 간호 신호 전달이 지연되는 레이스 조건을 수정했습니다.§
이것은 눈에 띄는 타이밍 이상의를 유발했습니다Notify
및 아마도 다른 오작동.
Windows '에서 코너 케이스 오류 처리 수정readfile ()
기능 (Thomas Munro, Juan José Santamaría Flecha)§
알려진 한,이 감독은 실제 쿼리 오해가 아니라 시끄러운 로그 메시지를 초래했습니다.
Windows에서 후 몇 번 다시 시도하십시오.ERROR_ACCESS_DENIED
파일 액세스 실패 (Alexander Lakhin, Tom Lane)§ §
이것은 대상 파일이 삭제되기 위해 표시되지만 아직 사라지지 않았기 때문에 파일 오픈 시도가 실패하는 경우에 대처하는 데 도움이됩니다.PG_CTL, 예를 들어, 우체국이 아직 종료되었는지 확인하기 위해 조사 할 때 그러한 오류로 인해 종종 실패했습니다.
Windows에서 우체국 마스터의 로그 파일 위반을 공유하는 일에 대해PG_CTL예를 들어과 같이 우체국 장을 시작하는 데 사용됩니다.PG_CTL 재시작
(Alexander Lakhin)§