출시 날짜 :2022-11-10
이 릴리스에는 12.12의 다양한 수정 사항이 포함되어 있습니다. Major Release 12의 새로운 기능에 대한 정보는 참조섹션 E.23.
덤프/복원은 12.x.를 실행하는 사람들에게는 필요하지 않습니다.
그러나 12.10 이전 버전에서 업그레이드하는 경우 참조하십시오.섹션 E.13.
동시에 업데이트 중에 드문 공황을 피하십시오진공
(Tom Lane, Jeff Davis)§ §
동시에진공
페이지에 가시 가능한 플래그 비트를 설정합니다.업데이트
또는삭제
수정 중이며, 업데이트 명령은 해당 비트를 다시 지워야합니다. 그러나 일부 코드 경로는 공황 출구 및 데이터베이스 재시작으로 끝나는 데 실패했습니다.
이것은 버전 14 및 15에서 가능하다고 알려져 있습니다. 이전 지점에서는 잠재적 일 수 있습니다.
수정진공
BTREE 인덱스의 시도 된 페이지 삭제가 페이지의 상위 다운 링크 (Peter Geoghegan)를 찾지 못하는 경우 켜기를 누르십시오.§
오류를 던지지 않고 문제를 기록하고 빈 페이지를 삭제하지 않고 계속하십시오. 이전에는 버그가 많은 운영자 클래스 또는 손상된 인덱스는 무기한으로 인덱스 진공 청소기의 완료를 방지 할 수있어 결국 트랜잭션 랩 어라운드 문제로 이어질 수 있습니다..
| 수정기본값
멀티 로우에 나타나는 토큰값
조항삽입
업데이트 가능한보기 (Tom Lane)§
이 감독은로 이어질 수 있습니다.“캐시 조회가 유형에 실패했습니다”오류 또는 구형 지점에서 충돌 할 때도.
규칙을 허용하지_return
그렇지 않습니다ON SELECT
(Tom Lane)§
이것은보기 간의 혼란을 피합니다ON SELECT
규칙 및 기타 규칙이 있습니다.
튜플 저장에 대한 자원 관리 버그 수정이후
트리거 (Tom Lane)§
올바른 상황이 주어지면로 나타납니다.“Tupdesc 참조nnnn
자원 소유자가 소유하지 않습니다”오류 뒤에 공황 출구가 이어집니다.
상속 업데이트에서 MultiexPr_Sublink 하위 플랜의 희귀 실패 (Tom Lane)§ § §
구문 사용업데이트 탭 세트 (C1, ...) = (select ...)
하위 테이블이 충분히 다른 경우 상속되거나 분할 된 대상 테이블이 실패 할 수 있습니다. 이것은 일반적으로 집행자의 일관성 검사 실패로 나타납니다.
수행 중에 정당화 당 외국의 주요 제약 조건의 구성 수정Alter Table Attation Partition
(Jehan-Guillaume de Rorthais, Álvaro Herrera)§ §
이전에, 새로 구매 된 파티션을 위해 잘못 또는 중복 제약 조건을 구성 할 수 있습니다.
파티션 당 외국 키 제약에 대한 제약 제약 이름의 생성 수정 (Jehan-Guillaume de Rorthais)§
처음 입자 한 이름이 파티션의 일부 제약에 이미 사용중인 경우 새 이름이 선택됩니다. 그러나 그것은 의도 한대로 철자가 아니었다.
분할 된 인덱스를 생성 할 때 인덱스 표현식의 잘못된 일치 및 홍보를 수정합니다 (Richard Guo, Tom Lane)§
파티션 된 인덱스를 작성하는 동안 파티션 된 인덱스와 일치하는 파티션의 기존 인덱스를 식별하여 새 인덱스를 구축하는 대신 자식 색인으로 흡수 할 수 있습니다. 표현의 일치는 제대로 수행되지 않았으므로 사용 가능한 아동 지수가 무시되어 복제 지수를 만들 수 있습니다.
대기 프로모션 후 WAL 손상 방지 (Dilip Kumar, Robert Haas)§
a배트맨 토토인스턴스 인스턴스 아카이브 복구 (대기 모드를 사용하지 않음)가 홍보되고 읽기를 시도한 마지막 WAL 세그먼트가 부분 레코드로 종료되면 인스턴스는 새로운 타임 라인에 유효하지 않은 월 세그먼트를 작성합니다..
GIN 인덱스를위한 빠른 삽입 경로에서 WAL 작업의 잘못 주문 (Matthias van de Meent, Zhang Mingli)§
이 실수는 핵심 내배트맨 토토 부정적인 결과를 가져 오는 것으로 알려져 있지 않습니다배트맨 토토, 그러나 일부 확장에 문제가 발생했습니다.
트랜잭션의 시작과 하위 트랜잭션 시작 시점에서 재생이 시작될 때 논리 디코딩의 버그 수정 (Masahiko Sawada, Kuroda Hayato)§ §
이러한 오류는 디버그 빌드배트맨 토토 어설 션 실패로 이어질 수 있으며, 그렇지 않으면 메모리 누출로 이어질 수 있습니다.
논리 디코딩 중에 잘못된 스냅 샷으로 시스템 카탈로그 검사 방지 (Masahiko Sawada)§
디코딩이 시스템 카탈로그를 수정하는 트랜잭션을 통해 파트 웨이를 시작하면 디코더는 그 트랜잭션을 카탈로그 조회에 대한 진행중인 것으로 취급하지 못하게 할 수 있습니다..
논리적 디코딩 중에 더 많은 장소배트맨 토토 인터럽트를 수락합니다 (Amit Kapila, Masahiko Sawada)§ §
이것은 복제 작업자의 느린 종료로 문제를 개선합니다.
복제 작업자의 기능 구문 오류 후 충돌을 피하십시오 (Maxim Orlov, Anton Melnikov, Masahiko Sawada, Tom Lane)§
SQL-LANGURAGE 또는 PL/PGSQL-LANGUAGE에서 구문 오류가 발생한 경우기능 생성
또는do
논리적 복제 작업자에서 실행 된 명령은 노동자 프로세스가 널 포인터 피해 또는 어설 션 실패로 충돌합니다.
SQL 함수 (Tom Lane)로 전달되는 읽기 낭비 확장 기준의 취급 수정§
감염되지 않은 SQL 기능이 둘 이상의 장소에서 매개 변수를 사용하고 해당 함수 중 하나가 읽기 쓰기 데이텀을 수정할 수있을 것으로 예상하면 나중에 매개 변수의 사용이 잘못된 값을 관찰 할 수 있습니다. (핵심 내에서배트맨 토토, 확장 된 다투 메커니즘은 배열 및 복합 유형 값에만 사용됩니다. 그러나 확장자는 다른 구조화 된 유형에 사용할 수 있습니다.)
수정 유형Circle
의 평등 비교기 NANS를 올바르게 처리하기위한 평등 비교기 (Ranier Vilela)§
왼쪽 원에 반경에 대한 부동 소수점 Nan이 있으면 동일한 중심과 반경이있는 원과 동일하게 간주됩니다..
Snowball Dictionaries배트맨 토토는 과도한 단어를 줄이려고하지 마십시오 (Olly Betts, Tom Lane)§
입력 단어가 1000 바이트를 초과하면 눈덩이 코드를 통해 실행하려고하지 않고 케이스 폴딩 후에 반환하십시오. 이 제한은 터키어 스티머에서 알려진 재귀 대 스택-오버 플로우 문제로부터 보호하며, 눈덩이 줄기에 존재할 수있는 다른 안전 또는 성능 문제에 대한 좋은 보험처럼 보입니다.
문자열 비교에서 사용하지 않아야 할 위험 (Tom Lane)§
문자열 비교 함수의 부적절한 메모리 관리는 할당되지 않은 버퍼배트맨 토토 낙서를 초래할 수 있으며, 지금 해당 메모리를 사용하는 모든 것에 대해 잠재적으로 물건을 깨뜨릴 수 있습니다. 이것은 상당히 긴 줄 (1KB 이상)배트맨 토토만 발생하며 ICU 콜레이션이 사용되는 경우에만 발생합니다.
테이블 액세스 방법이없는 테이블에 대한 액세스 시도에 대한 계획 시간 점검 추가 (Tom Lane)§
이것은 일부 카탈로그-부패 시나리오배트맨 토토 충돌을 방지합니다 (예 : view).ON SELECT
규칙이 누락되었습니다.
공유 메모리 상태가 손상 될 때 우체국 장 마스터 충돌 방지 (Tom Lane)§
Postmaster 프로세스는 공유 메모리가 손상되면 생존하고 데이터베이스 재시작을 시작해야하지만 한 가지 코드가 충분히 조심스럽게 조심스러워했습니다..
Stack Overrun (Richard Guo, Tom Lane)까지 재귀에 대한 더 많은 방어 추가 추가§ §
Autovacuum 런처 프로세스배트맨 토토 장기 메모리 누출 방지 (Reid Thompson)§
필드 보고서의 부족은이 문제가 V15 이전 지점에서만 잠재적이라고 제안합니다. 그러나 왜 그 이유는 분명하지 않습니다. 어쨌든 수정을 뒤로 chatch하십시오.
개선pl/pgsql의 매개 변수를 처리하는 능력레코드
(Tom Lane)§
전달 된 각 콘크리트 유형에 대한 별도의 기능 캐시 항목 구축레코드
다형성 파라미터에 대해하는 것처럼 세션 중 매개 변수. 이를 통해 일부 사용량은와 같은 오류로 이전에 실패한 작동을 가능하게합니다.“매개 변수 유형은 계획을 준비 할 때 이와 일치하지 않습니다”.
누락 된 가드 추가NULL
연결 포인터배트맨 토토libpq(Daniele Varrazzo, Tom Lane)§
협약이 있습니다.libpq함수는 널 pgconn 인수를 확인하고 충돌하는 대신 우아하게 실패해야합니다.pqflush ()
andpqisnonBlocking ()
그 메모를 얻지 못하므로 고치십시오.
inECPG, 다중 일 때 가변 스토리지 클래스의 누락 수정Varchar
또는BYTEA
변수는 동일한 선언 (Andrey Sokolov)배트맨 토토 선언됩니다.§
예를 들어ECPG번역정적 Varchar str1 [10], str2 [20], str3 [30];
그런 식으로str1
표시정적
.
크로스 플랫폼 테이블 스페이스 재배치 허용PG_BASEBACKUP(Robert Haas)§
원격 경로 허용--- 테이블 스페이스 맵핑
소스 서버가 로컬 시스템과 다른 OS에있을 수 있으므로 Unix 스타일 또는 Windows 스타일 절대 경로입니다..
inpg_stat_statements, 이미 프리드 메모리 (ZhaoQigui)에 대한 액세스 수정§
이것은 IF 발생했습니다.pg_stat_statements추적 a롤백
확장 쿼리 프로토콜을 통해 발행 된 명령. 디버그 빌드배트맨 토토는 일관되게 어설 션 실패로 이어졌습니다.
inPostgres_FDW, 평가 플랜 Qual 계획을 위해 구성된 대상 목록이 필요한 모든 열 (Richard Guo, Etsuro Fujita)을 갖도록하십시오.§
이것은 피합니다“변수 대상 목록배트맨 토토 찾을 수없는 변수”드문 경우의 오류.
플랫폼배트맨 토토 원치 않는 출력 거부uuid_create ()
기능 (Nazir Bilal Yavuz)§
theuuid-sossp모듈은 LIBC의 기대uuid_create ()
버전 -1 UUID를 생성하려면 최근 NETBSD 릴리스는 대신 버전 -4 (Random) UUID를 생성합니다. 그것을 확인하고 그렇다면 불만을 제기하십시오.uuid-sossp. (버전 -4 UUID가 귀하의 목적에 맞는 경우 필요하지 않습니다uuid-sossp전혀; 그냥 사용gen_random_uuid ()
.)
표준 설치에 새로운 Perl 테스트 모듈 포함 (Álvaro Herrera)§
add배트맨 토토/test/cluster.pm
and배트맨 토토/test/utils.pm
전처리 -15 분기의 표준 설치 파일에. 이것은 오래된 지점배트맨 토토 새로 작성된 테스트 코드를 사용하려는 확장의 이점을위한 것입니다.
NetBsd배트맨 토토 포스트 마스터 스타트 (Andres Freund, Tom Lane)배트맨 토토 동적 기호 해상도를 강제§
이것은 NetBsd 10의 동적 링커배트맨 토토 교착 상태의 위험을 피합니다.
LLVM 15 (Thomas Munro, Andres Freund)와 비 호환성 수정§
사용 허용__sync_lock_test_and_set ()
모든 기계의 스핀 락 (Tom Lane)§
적어도이 GCC 내장 기능을 지원하는 컴파일러를 사용하는 경우 새로운 머신 아키텍처로의 포트가 완화됩니다.
이름 바꾸기 기호Ref
toref_p
최근 MACOS (Tom Lane)에서 컴파일 실패를 피하려면§
사용하지 않으면Sprintf
, 컴파일 타임 감가 상각 경고를 피하기 위해 (Tom Lane)§
시간대 데이터 파일 업데이트TZDATA칠레, 피지,이란, 요르단, 멕시코, 팔레스타인 및 시리아의 DST 법률 변경을위한 릴리스 2022F와 칠레, 크리미아,이란 및 멕시코의 역사적 교정. (Tom Lane)§
또한 유럽/키예프 구역의 이름이 유럽/Kyiv로 바뀌 었습니다. Also, the following zones have been merged into nearby, more-populous zones whose clocks have agreed with them since 1970: Antarctica/Vostok, Asia/Brunei, Asia/Kuala_Lumpur, Atlantic/Reykjavik, Europe/Amsterdam, Europe/Copenhagen, Europe/Luxembourg, Europe/Monaco, Europe/Oslo, Europe/Stockholm, Indian/Christmas,
이 구역 합병은 합병 된 구역의 1970 년 이전 시간대 이력을 잃어 버리며, 이는 일관성을 기대하는 응용 분야에서 문제가 될 수 있습니다TimesTamptz
디스플레이. 예를 들어, 저장된 값1944-06-01 12:00 UTC
이전에 이전에 표시됩니다1944-06-01 13 : 00 : 00 00+01
유럽/스톡홀름 구역이 선택된 경우, 이제로 표시됩니다.1944-06-01 14 : 00 : 00 00+02
.
이전 구역 데이터를 복원하는 옵션으로 시간대 데이터 파일을 빌드 할 수 있지만, 그 선택은 또한 다른 오래된 (일반적으로 불완전한) 영역 데이터를 삽입하여 이러한 상류 변경을 수락하는 것보다 이전 릴리스에서 더 많은 변화를 가져옵니다..배트맨 토토배송을 선택했습니다TZDB데이터가 권장되는 경우, 대부분의 주요 운영 체제 분포가 마찬가지로 알고있는 한. 그러나 이러한 변경 사항이 응용 프로그램에 중대한 문제를 일으키는 경우 가능한 솔루션은를 사용하여 시간대 데이터 파일의 로컬 빌드를 설치하는 것입니다.TZDB의 후진 호환성 옵션 (참조packratdata
andpackratlist
옵션).