출시 날짜 :2019-11-14
이 토토 결과에는 10.10의 다양한 수정 사항이 포함되어 있습니다. Major Release 10의 새로운 기능에 대한 정보는 참조섹션 E.24.
10.x.를 실행하는 사람들에게는 덤프/복원이 필요하지 않습니다.
그러나 사용하는 경우Contrib/Intarray
GIST 인덱스를 사용한 확장 및 인덱스 검색에 의존합니다<@
운영자, 아래의 항목 참조
또한 10.6 이전 버전에서 업그레이드하는 경우 참조섹션 E.18.
고장 실패Alter Table Set
사용자 지정 관계 옵션 (Michael Paquier)
모든 상위 테이블이 변경되지 않은 경우 곱셈 상속 열의 유형 변경을 허용하지 않습니다 (Tom Lane)
이전에, 이것은 허용되었는데, 지금은 동시대의 부모의 쿼리가 실패 할 것입니다.
예방진공
여전히 실행중인 거래와 관련된 오래된 다단계 ID를 동결 시키려고 시도한 것입니다 (Nathan Bossart, Jeremy Schneider)
이 경우진공
이전 트랜잭션이 종료 될 때까지 실패합니다.
Case-Foldable 문자에 대한 플래너의 테스트 수정ilike
ICU Collation (Tom Lane)
이 실수는 플래너가 패턴의 많은 부분을 고정 접두사로 취급하여에서 파생 된 인덱스 스캔이되었습니다.ilike
조항은 그들이 찾을 수있는 항목을 놓칠 수 토토 결과.
오프셋 표현식이 확인하십시오.창
쿼리의 표현이 조작 될 때 조항이 처리됩니다 (Andrew Gierth)
이 감독은 오프셋이 사소한 표현 일 때 분류가 발생할 수 토토 결과. 한 가지 예는 함수가 상환되면 그러한 표현식에서 함수 매개 변수 참조가 실패한다는 것입니다.
전체 열 변수의 처리 수정확인 옵션
표현 및 행 수준 보안 정책 표현 (Andres Freund)
이전에, 그러한 사용으로 인해 행 유형 불일치에 대한 가짜 오류가 발생할 수 있습니다.
Postmaster 실패 방지 Postmaster 실패 방지 Postmaster 아동 프로세스 배열 슬롯이없는 경우 병렬 쿼리가 백그라운드 작업자에게 요청하는 경우 (Tom Lane)
a이면 가능한 이중 무료 방지업데이트 전
트리거는 이전 튜플을 반환합니다.
병렬 작업자 시작 중에 GUC 매개 변수를 설정하는 동안 오류가 발생할 때 관련 오류 컨텍스트 줄을 제공합니다.
직렬화 가능한 모드에서는 행의 올바른 버전 (Thomas Munro, Heikki Linnakangas)에서 행 수준의 술어 잠금 장치가 획득되는지 확인하십시오.
행의 가시 버전이 핫 업데이트 된 경우 잠금 장치가 현재 중독자에서 취해져 직렬화를 보장하는 미묘한 실패가 발생할 수 토토 결과..
fsync ()
열기/쓰기 파일에만 적용됩니다 (Andres Freund, Michael Paquier)
일부 코드 경로는 파일을 읽은 후이를 수행하려고 시도했지만 일부 플랫폼에서“불량 파일 디스크립터”또는 유사한 오류.
인코딩 변환이 이전보다 더 긴 문자열에서 성공하도록 허용 (Álvaro Herrera, Tom Lane)
이전에는 입력 문자열에 0.25GB의 단단한 제한이 있었지만 이제 변환 된 출력이 1GB를 초과하지 않는 한 작동합니다..
힙 페이지 치기 중에 불필요한 카탈로그 조회를 피하십시오 (Thomas Munro)
여기에서 더 이상없는 인덱스를 확인할 필요가 없으며, 점검은 일부 워크로드에서 중대한 성능 문제를 일으켰습니다. 최소한 교착 상태의 이론적 가능성도있었습니다.
창 함수를위한 불필요하게 불필요한 튜플 매장 생성을 피하십시오 (Andrew Gierth)
경우에 따라 튜플 스토리지에는 쿼리에 필요한 것뿐만 아니라 소스 테이블의 모든 열이 포함됩니다..
허용Repalloc ()
큰 덩어리가 크기가 줄어들 때 공간을 돌려 주려면 (Tom Lane)
아카이브 복구가 끝날 때 임시 WAL 및 히스토리 파일이 제거되도록하십시오 (Sawada Masahiko)
아카이브 복구에 실패를 피하십시오복구 _min_apply_delay
활성화 (Fujii Masao)
복구 _min_apply_delay
일반적 으로이 구성에 사용되지는 않지만 작동해야합니다.
게시자와 가입자가 테이블의 복제 아이덴티티 칼럼 (Jehan-Guillaume de Rorthais, Peter Eisentraut)에 대한 아이디어가 다를 때 논리적 복제 실패 수정
가입자에 대한 복제 아이덴티티의 일부로 열을 선언하는 것은 게시자에 전혀 존재하지 않을 때“음수 비트 맵 세트 멤버가 허용되지 않음”오류.
논리적 복제 Walsender (Craig Ringer, Álvaro Herrera)의 종료 중에 원치 않는 지연을 피하십시오.
논리적 복제에서 시간 초과 처리 수정 Walreceiver 프로세스 (Julien Rouhaud)
잘못된 논리 방지Wal_Receiver_Timeout
논리적 복제 배포 작업에서.
논리적 디코딩을위한 시간을 올바르게 스탬프 복제 메시지 (Jeff Janes)
이 감독은 예를 들어과 같은 결과를 초래했습니다.pg_stat_subscription
.last_msg_send_time
보통 NULL으로 읽는다.
논리적 디코딩에서 스냅 샷 (Masahiko Sawada)을 재구성 할 때 하위 트랜잭션이 올바르게 설명되는지 확인하십시오.
이 오류는 주장 실패로 이어집니다. 생산 구축에 나쁜 영향이 있는지 확실하지 않습니다.
백엔드 종료 중에 레이스 조건을 수정합니다. 백엔드 프로세스가 이전에 동기 복제가 발생하기를 기다렸을 때 (Dongming Liu)
수정ALTER SYSTEM
중복 항목에 대처하려면to
(Ian Barwick)
ALTER SYSTEM
자체는 그러한 상태를 생성하지 않고 수정하는 외부 도구to
그렇게 할 수 토토 결과. 대상 변수의 중복 항목이 이제 제거되고 새 설정 (있는 경우)이 끝에 추가됩니다.
구성 파일에 빈 파일 이름이 포함 된 지시문 포함 및 보고서 포함 내용 재귀를보다 명확하게 포함시킵니다 (Ian Barwick, Tom Lane)
PAM 인증을 사용할 때 버려진 연결에 대한 불만을 기록하지 않습니다 (Tom Lane)
LIBPQ 기반 클라이언트는 일반적으로 비밀번호가 필요할 때 두 가지 연결 시도를합니다. 첫 번째 연결 시도가 실패 할 때까지 사용자에게 암호를 신뢰하지 않기 때문입니다. 따라서 서버는 클라이언트가 비밀번호를 요청할 때 연결을 닫을 때 쓸모없는 로그 스팸을 생성하지 않도록 코딩됩니다.
불완전한 날짜 사양이 감지되지 않은 경우시간대가있는 시간
입력 (Alexander Lakhin)
시간 변동 UTC 오프셋이있는 시간대가 지정되면 날짜도 오프셋을 해결할 수 있어야합니다. 사용 된 구문에 따라이 점검은 경우에 따라 시행되지 않았으므로 가짜 출력을 생산할 수 토토 결과.
의 오작동 수정bitshiftright ()
(Tom Lane)
비트 스트링 오른쪽 시프트 연산자는 비트 스트링 길이가 8의 배수가 아닐 때 결과의 마지막 바이트에 존재하는 패딩 공간을 제로화하지 못했습니다. 대부분의 작업에 보이지 않지만, 비 곤란 비트가 예기치 않은 비교 동작을 초래할 수 있기 때문에 비트 스트링 비교가 항상 비트를 무시하지 않기 때문에.
출력을 저장 한 결과 일치하지 않는 데이터가있는 경우bitshiftright ()
테이블에서와 같은 것을 고칠 수 토토 결과.
myTab set bitcol = ~ (~ bitcol) 여기서 bitcol! = ~ (~ bitcol); 업데이트
네임 스페이스 노드를 선택할 때 충돌을 피하십시오xmltable
(채프먼 플랙)
간격 곱셈에서 가장자리-신전 정수 오버플로의 감지 수정 (Yuya Watari)
메모리 누출 수정lower ()
, 어퍼 ()
및initcap ()
ICU 콜라이트를 사용할 때의 기능 (Konstantin Knizhnik)
충돌을 피하십시오Ispell
텍스트 검색 사전에는 잘못된 접미사 데이터가 포함되어 토토 결과 (Arthur Zakirov)
Gin 게시 목록에 대한 잘못된 압축 로직 수정 (Heikki Linnakangas)
인접한 인덱스 TID 사이의 거리가 16TB를 초과하는 경우 진 게시 목록 항목은 7 바이트가 필요할 수 토토 결과. 논리의 한 단계는 그것과 동기화되지 않았으며 값을 6 바이트 버퍼에 쓰려고 시도 할 수 토토 결과.
KNN-GIST (Alexander Korotkov)의 Infinity, NAN 및 NULL 값의 취급 수정
Query의 출력 순서가 잘못 될 수 토토 결과 (일반 정렬 결과와 다르면 널이 아닌 열 값에 대해 계산 된 일부 거리가 무한대 또는 Nan이면.
KNN-SP-GIST (Nikita Glukhov)에서 NULL 검색 취급 수정
Windows에서의 추가 철자를 인식하십시오.“노르웨이 (Bokmål)”로케일 이름 (Tom Lane)
ECPG 클라이언트에 포함 된 경우 실패 컴파일 방지ecpglib.h
enable_nls
정의 (Tom Lane)
이 위험은 잘못 배치 된 선언에 의해 만들어졌습니다 :ecpg_gettext ()
클라이언트 코드에 표시되지 않아야합니다.
inPSQL, 예기치 않은 연결 손실 및 성공적인 재 연결 후 서버에 대한 내부 상태를 다시 동기화합니다 (Peter Billen, Tom Lane)
일반적으로 이것은 국가가 어쨌든 동일하기 때문에 불필요합니다. 그러나 연결이 여러 서버 중 하나로 이어질 수있는 코너 케이스에서는 중요 할 수 토토 결과.PSQL예를 들어 SSL이 사용 중인지 여부에 대한 대화식 메시지를 다시 발행하려면
플랫폼 별 NULL 포인터 피해PSQL(Quentin Rameau)
inpg_dump
이전에, 다른 테이블의 두 트리거가 동일한 이름을 가진 경우, OID 기반 순서로 정렬되며 테이블 이름으로 정렬하는 것보다 바람직하지 않습니다. RLS 정책도 마찬가지로.
수정pg_dumpPre-8.3 소스 서버 (Tom Lane)에서 다시 작업하려면
이전 수정이 발생했습니다pg_dump항상 쿼리를 시도하려면pg_opfamily
, 그러나 해당 카탈로그는 버전 8.3 전에 존재하지 않습니다.
inPG_RESTORE, 취급-f-
의미로“stdout에 출력”(Álvaro Herrera)
동기화PG_RESTORE의 다른 응용 프로그램과의 동작, 특히 V12 Pre Branch가 버전 12와 유사하게 작동하게합니다PG_RESTORE, 다중에서 작동하는 덤프/복원 스크립트의 단순화토토 결과버전. 이 변경 전에PG_RESTORE그러한 스위치를 의미와 함께 해석“-
”, 그러나 그것을 원하는 사람은 거의 없습니다.
개선pg_upgrade's의 표현이 변경된 데이터 유형의 사용에 대한 확인line
(Tomas vondra)
이전 코딩은 관심있는 데이터 유형이 도메인 또는 복합 유형의 저장된 열에 기초한 경우에 속일 수 있습니다..
파일 감지 중pg_basebackup(Jeevan Chalke)
inpg_basebackup, 백업이 끝날 때까지 fsync 출력 파일을하지 마십시오 (Michael Paquier)
fsync가 느려지면 이전 코딩이 타임 아웃 실패를 초래할 수 있습니다.
inpg_rewind온라인 소스 클러스터를 사용하면 타임 아웃을 비활성화합니다.pg_dumpdo (Alexander Kukushkin)
실패 수정pg_waldumpwith-s
옵션, 연속 WAL 레코드가 페이지 경계 (Andrey Lepikhov)에서 정확히 끝나는 경우
inpg_waldump, 포함Newitemoff
Btree Page Split Records의 필드 (Peter Geoghegan)
inpg_waldumpwith--BKP-Details
옵션, 전체 페이지 쓰기 (Andres Freund)와 관련된 WAL 레코드에 대한 추가 최신 라인을 방출하지 마십시오
작은 메모리 누출 수정pg_waldump(Andres Freund)
수정VACUUMDB-jobs
파일 디스크립터를 더 잘 처리하는 옵션 (Michael Paquier)
수정Contrib/Amcheck
핫 스탠드 비기 중에 미등록 색인을 건너 뛰기 위해 (Andrey Borodin, Peter Geoghegan)
이 맥락에서 유효한 데이터가 반드시 유효한 데이터를 포함하지는 않으므로 확인하지 마십시오.
수정Contrib/Intarray
의 빈 배열에 대해 실패하지 않는 GIST OPCLASSES<@
(Tom Lane)
같은 조항
색인이 가능한 것으로 간주되지만 인덱스 검색은 빈 배열 값을 찾지 못할 수 토토 결과. 물론 그러한 항목은 검색과 사소하게 일치해야합니다.array_column
<@constant_array
이를위한 유일한 실용적인 역전 수정은 만들 필요가 있습니다<@
색인 검색이 전체 색인을 스캔하는데, 이것이이 패치가하는 일입니다. 이것은 불행한 일입니다. 즉, 쿼리 성능이 평범한 순차적 스캔보다 나빠질 수 있음을 의미합니다.
이 변경에 의해 성능이 악영향을받는 응용 프로그램에는 몇 가지 옵션이 토토 결과. 그들은이 버그가없는 진 지수로 전환 할 수 있거나 교체 할 수 토토 결과
witharray_column
<@constant_array
. 이는 이전과 동일한 성능을 제공 할 것이며, 주어진 상수 배열의 비어 있지 않은 서브 세트를 찾을 수 있습니다. 이는 이전에 쿼리에서 확실하게 기대할 수있는 모든 것입니다..array_column
<@constant_array
andarray_column
&& constant_array
수정구성의 최근 Red Hat Releases (Tom Lane)에서 작동하도록 libperl의 존재에 대한 테스트
이전에 사용자가 설정하면 실패 할 수 있습니다cflags
to-o0
.
PowerPC (Noah Misch)의 스핀 락에 대한 올바른 코드 생성 보장
이전 스핀 로크 코딩을 통해 컴파일러는 해당 레지스터를 허용하지 않는 어셈블리 명령어와 함께 사용하기 위해 레지스터 0을 선택할 수있게하여 빌드 실패가 발생했습니다. 우리는이 버그와 일치하는 오랜 보고서가 하나만 보였지만 수정을 구축하려는 사람들에게는 문제가 발생할 수 있습니다.토토 결과코드 또는 비정형 컴파일러 옵션을 사용하십시오.
PowerPC에서 XLC 컴파일러에 따라 피하십시오__fetch_and_add ()
기능 (Noah Misch)
XLC 13 and Newer는이 기능을 사용량과 호환되지 않는 방식으로 해석하여 사용할 수없는 빌드를 초래합니다.토토 결과. 대신 사용자 정의 어셈블리 코드를 사용하여 수정하십시오.
AIX에서 컴파일러 옵션을 사용하지 마십시오-QSRCMSG
(Noah Misch)
이것은 XLC v16.1.0의 내부 컴파일러 오류를 피하고 컴파일러 오류 메시지 형식을 변경하는 것 외에는 거의 결과가 거의 없습니다..
OpenSSL (Andrew Dunstan)의 파일 경로에서 공백에 대처하기 위해 MSVC 빌드 프로세스 수정
시간대 데이터 파일 업데이트TZDATA피지와 노퍽 섬의 DST 법률 변경을위한 2019C, 앨버타, 오스트리아, 벨기에, 브리티시 컬럼비아, 캄보디아, 홍콩, 인디애나 (페리 카운티), 칼리닌그라드, 켄터키, 미시간, 노퍽 섬, 남극의 역사적 교정에 대한 역사적 교정.