출시 날짜 :2025-05-08
이 릴리스에는 17.4의 다양한 수정 사항이 포함되어 있습니다. Major Release 17의 새로운 기능에 대한 정보는 참조하십시오.섹션 E.6.
6423_6479
그러나 파티션 된 테이블에 자체 참조 외부 키 제약이있는 경우 이러한 제약 조건을 제한하여 올바르게 시행되도록해야 할 수도 있습니다. 아래 두 번째 ChangeLog 항목을 참조하십시오.
또한 Brin Bloom 인덱스가 있으면 업데이트 후 다시 표시하는 것이 좋습니다. 아래 세 번째 ChangeLog 항목을 참조하십시오.
또한 17.1 이전 버전에서 업그레이드하는 경우 참조섹션 E.5.
GB18030 인코딩 (Noah Misch, Andres Freund)에 있다고 주장되는 잘못된 인코딩 된 문자열을 검사 할 때 1 바이트 버퍼 오버 읽기를 피하십시오.§ §
가능성은 낮지 만, 불완전한 멀티 바이트 문자가 메모리 끝에 나타나면 SIGSEGV 충돌이 발생할 수 있습니다. 이것은 서버와 모두에서 가능했습니다.libpq-사용 응용 프로그램. (CVE-2025-4207)
분할 된 테이블의 자체 참조 외래 키를 올바르게 처리합니다 (Álvaro Herrera)§
파티션 생성 또는 첨부 파티션 생성은 제약 조건에 의해 참조 된 테이블이 동일한 파티션 된 테이블 인 경우 외국 키 제약 조건에 필요한 카탈로그 항목을 만들지 못했습니다. 이로 인해 제약 조건을 완전히 시행하지 못했습니다.
이 문제를 해결하려면 제약 조건이 생성 된 후 파티션이 생성되거나 첨부 된 경우 파티션 된 테이블에 자체 참조 외부 키를 삭제하고 재현해야합니다. 행을 위반하는 행을 이미 존재할 수 있으며,이 경우 제약 조건을 재현하는 경우 다시 시도하기 전에 해당 행을 수정해야합니다..
압축 된 브린 요약을 병합시 데이터 손실을 피하십시오brin_bloom_union ()
(Tomas Vondra)§
코드는 입력 객체와 동일하지 않은 감압 결과를 설명하지 못해서 일부 데이터를 병합 된 요약에 추가하지 않아 인덱스 검색에서 누락 된 행으로 이어집니다..
9309_9534
예기치 않은 수정“속성이 잘못된 유형을 가지고 있습니다”오류업데이트
, 삭제
및병합
뷰 또는 함수에 대한 전체 열 테이블 참조를 사용하는 쿼리From
(cách đọc kèo bóng đá)§
수정병합
아무것도하지 않습니다
Actions (Tender Wang)§
일부 사례는“병합 될 때의 알려지지 않은 조치”errors.
실패 방지삽입
테이블이있는 경우 명령생성
도메인 데이터 유형의 열 및 도메인의 제약 조건은 널 값을 허용하지 않습니다 (Jian HE)§
생성 표현이 완벽하게 괜찮은 결과를 낳은 경우에도 제약 실패 가보고되었습니다.
a 내에 나타나는 외부 CTE 이름에 대한 참조를 올바르게 처리합니다with
조항에 첨부삽입
/업데이트
/삭제
/병합
내부에있는 명령with
(cách đọc kèo bóng đá)§
파서는 허용되지 않은 재귀 사건을 감지하지 못했으며 CTE를 사용 가능한 순서로 정렬 할 때 그러한 참조를 설명하지도 않았습니다..
JSON 생성자 표현식 (Amit Langote)의 키 내에서 캐스트의 잘못 처리 수정§
병렬화를 시도하지 마십시오array_agg ()
인수가 익명의 레코드 유형 인 경우 (Richard Guo, cách đọc kèo bóng đá)§
병렬 작업자와 의사 소통하기위한 프로토콜은 작업자가 돌아 오는 콘크리트 레코드 유형을 식별하는 것을 지원하지 않습니다.
수정배열 (
및SubQuery
)배열 [
입력이 유형 일 때 제정신 결과를 생성하기위한 구성표현, ...
]int2vector
또는oidvector
(cách đọc kèo bóng đá)§
이 패치는 이전에 존재했던 동작을 복원합니다12712_127249.5 : 결과는 유형입니다int2vector []
또는oidvector []
.
구문 분석하는 동안 유효하지 않은 부착에 대한 잘못된 보고서를 수정IspellDictionaries (Jacob Brazeal)§
수정ALTER 테이블 추가 열
기본값이있는 도메인 유형의 경우를 올바르게 처리하려면 (Jian He, cách đọc kèo bóng đá, Tender Wang)§ §
도메인 유형에 기본값이있는 경우 해당 유형의 열을 추가합니다 (명시 적없이기본값
clause)는 기존 행에 도메인의 기본값을 설치하지 못하고 대신 새 열을 늘립니다.
외국 키 제약 조건에 중복 열 이름이있을 때 오작동 수리ON 삭제 세트 기본값
또는SET NULL
액션 (cách đọc kèo bóng đá)§
외국 키 제약 조건 (Álvaro Herrera)의 속성을 변경하려는 허용되지 않은 시도에 대한 오류 메시지 개선§
14361_14394Relhassubclass
표시된 임시 테이블의 플래그커밋 삭제 행
(Noah Misch)§
누락 된 퇴거 추가들여 쓰기
옵션xmlserialize ()
(Jim Jones)§ §
이전, 뷰 또는 규칙을 사용하는 규칙xmlserialize (... Indent)
들여 쓰기
조항, 복원 후 잘못된 결과를 유발합니다.
15233_15318필터
and주문 by
(또는별도의
) 옵션 (David Rowley)§
있는 경우주문 by
또는별개의
, 우리는 AGG 계획 노드 내에서 정렬을 수행하는 대신 집계 입력 값을 사전에 미리 분류하는 것을 고려합니다. 그러나 집계 입력에 실패 할 수있는 표현식 (예 : 일부 입력 디바이저가 0이 될 수있는 구분)이 포함되어 있고 A가있는 경우 문제가 발생합니다.필터
그러한 실패를 방지하기위한 조항. 사전 소개는 표현 평가를 이전으로 향할 것입니다.필터
테스트, 어쨌든 실패가 발생할 수 있습니다. A가있는 경우 사전 분류하지 않음으로써 피하십시오.필터
그리고 입력 표현식은 단순한 var 또는 const보다 더 복잡합니다.
열에서 잘못된 공제 수정NOT NULL
외부 조인의 존재하에있는 제약 (Richard Guo)§
경우에 따라 플래너는를 폐기합니다.쿼리 조건, 외부 조인 후 조건이 적용되어 중복되지 않더라도.
잘못된 최적화를 기반으로is [not] null
복합 값에 적용되는 테스트 (Bruce Momjian)§
최상위 표현식 (David Geier) 내에서 하나 이상의 해시 가능한 ScalarArrayopexpr Sub Expression을 식별하지 못하는 플래너의 고정 실패§
이로 인해 해시 테이블로 처리 될 수있는 추가 하위 표현의 불필요하게 실행되었습니다 (즉,in
, 또는
= Any
17585_17632
낮은 충전 계수 (Tomas Vondra)가있는 잘못된 테이블 크기 추정치 수정§
플래너가 절대 분석되지 않은 테이블의 행 수를 추정하면 추정에서 테이블의 필로 트인 설정을 사용하지만 페이지 당 적어도 하나의 행으로 결과를 클램핑하는 것을 무시했습니다. 낮은 충전제는 불합리하게 작은 추정치를 초래할 수 있습니다.
비활성화“Skip Fetch”비트 맵 힙 스캔 최적화 (Matthias van de Meent)§
동시 진공이 페이지를 모두 볼 수있게 할 때이 최적화가 죽은 튜플을 반환 할 수 있음이 밝혀졌습니다.
검색 키가 많을 때 GIN 인덱스 검색 시작의 성능 문제 수정 (cách đọc kèo bóng đá, Vinod Sridharan)§ §
많은 키가있는 색인 조항 (예 :JSONBCOL? | 정렬[...]
수만 개의 배열 요소와 함께) O (N2) 시작 시간, 그 간격에 대해서도 발작 할 수 없었습니다.
Brin Index Operator 클래스에서 누락 된 지원 절차를 감지하고 충돌 대신 오류를보고합니다 (Álvaro Herrera)§
부속 계획 노드 (Heikki Linnakangas)의 비동기 서브 플랜을 기다리는 동안 인터럽트 (예 : 쿼리 취소)에 응답합니다.§
이전에는 하위 계획 중 하나가 준비 될 때까지 아무 일도 일어나지 않을 것입니다.
활성 WAL 발신자의 I/O 통계를 더 자주보고합니다 (Bertrand Drouvot)§
이전에,PG_STAT_IO
View는 해당 프로세스가 종료 될 때까지 WAL 발신자가 수행 한 I/O를 축적하지 못했습니다. 이제 그러한 I/O는 최대 1 초 지연 후에보고됩니다.
처리시 레이스 조건 수정synchronous_standby_names
시작 직후 (Melnikov Maksim, Michael Paquier)§
시스템 시작 후 짧은 기간 동안, 백엔드는 동기 커밋을 기다리지 못할 수 있습니다synchronous_standby_names
활성화되었습니다.
가능한 쿼리 내 변화에 대처하는io_combine_limit
(Thomas Munro)§
IF 무한 루프를 피하십시오.scram_iterations
로 설정되었습니다int_max(Kevin K Biju)§
이중 변환으로 인한 충돌 가능성을 피하십시오json_array ()
's 하위 쿼리 (cách đọc kèo bóng đá)§
수정pg_strtof ()
null endptr (Alexander Lakhin, cách đọc kèo bóng đá)와 충돌하지 않음§
특정 GUC 과제 (Daniel Gustafsson)에서 메모리 외부에서 사고 후 충돌 수정§
스노우 볼 스티머가 메모리 외 상태 (Maksim Korotkov)에 직면 할 때 충돌을 피하십시오.§
계획 중 SpecialJoinInfo Structs (Richard Guo)의 과도한 열정 무료 수정§
이로 인해 파티션 타이 결합이 활성화 된 경우 계획 중 충돌이 발생했습니다.
무효화 된 복제 슬롯의 복사 허용 (Shlok Kyal)§
이것은 잘못된 슬롯이 이미 제거 된 WAL을 가리킬 때 문제를 방지합니다.
22739_22856§
이것은 프로모션 후에도 슬롯이 유효 할 수있는 시나리오를 방지합니다.Wal_Level
너무 낮습니다.
카탈로그 XMIN의 과잉 발전 방지“빠른 전달”논리 디코딩 모드 (Zhijie Hou)§
이 실수는 Wal-Reading 프로세스에서 여전히 잠재적으로 필요했지만 삭제 된 카탈로그 항목을 진공 청소기에서 제거 할 수 있습니다..
강력한 잠금 장치를 사용하지 않는 DDL 작업이 논리적으로 복제되는 테이블에 영향을 미치는 경우 데이터 손실을 피하십시오 (Shlok Kyal, Hayato Kuroda)§ §
DDL 명령으로 인한 카탈로그 변경은 Wal-Decoding 프로세스에 반영되지 않았으므로 오래된 카탈로그 데이터를 사용하여 후속 변경 사항을 디코딩하여 데이터 손상을 초래할 수 있습니다..
24159_24323§
이 실수는 중복 데이터를 적용 할 수 있습니다.
가입자의 파티셔닝 테이블에 브린 색인 (cách đọc kèo bóng đá)이있는 경우 논리 복제에서 충돌 수정§
Mixed-Origin 구독의 탐지 개선 (Hou Zhijie, Shlok Kyal)§
구독 생성은 구독 테이블이 다른 간행물을 통해 추적되는 경우 경고를 제공합니다. 이로 인해 중복 데이터가 수신 될 수 있습니다. 이 변경 사항은 해당 논리를 향상시켜 파티션 부모 또는 자식 테이블이 다른 출판물을 통해 따르는 사례를 감지합니다.
25604_25708§
요청 된 복구 타임 라인에 도달 할 수 없으면보고 된 체크 포인트와 타임 라인은 백업이있는 경우 값을 읽는 값이어야합니다. 이 메시지는 이전에 제어 파일에서 값을보고한데, 이는 Backup_Label없이 제어 파일에서 복구 할 때 정확하지만 Backup_Label이있을 때는 그렇지 않습니다.
운영 순서 수정에서smgropen ()
(Andres Freund)§
SMGR_OPEN 콜백을 호출하기 전에 smgrrelation 객체가 완전히 초기화되어 있는지 확인하여 콜백이 실패하면 올바르게 정리할 수 있습니다..
잘못된 주장 제거pgstat_report_stat ()
(Michael Paquier)§
지나치게 강력한 주장 수정GistFindCorRectParent ()
(Heikki Linnakangas)§
병렬 진공 상태에서 어설 션 실패를 피하십시오maintenance_work_mem
매우 작은 가치가 있습니다 (Masahiko Sawada)§
기본이 다시 시작될 때 대기 서버에서 드문 어설 션 실패 수정 (Heikki Linnakangas)§
27568_27589“예기치 않은 계획 노드 유형”스크롤 가능한 커서가 간단한 상태에서 정의 된 경우select
쿼리 (Andrei Lepikhov)§표현
개별 색인 파티션을 삭제하려고하지 마십시오.pg_dump's-Clean
모드 (Jian HE)§
서버는 그러한 것을 거부합니다드롭
명령. 파티션이 어쨌든 후속에서 사라질 것이기 때문에 실제 결과는 없습니다.드롭
부모 테이블 또는 분할 된 색인 중 하나입니다. 그러나 시도 된 낙하에 대해보고 된 오류는 복원시에 문제가 발생합니다.--- 단일 전환
모드.
inpg_dumpall, 유효하지 않은 역할을 피하십시오grant
명령 ifpg_auth_members
유효하지 않은 역할 OID (cách đọc kèo bóng đá)§
대신 경고를 인쇄하고 항목을 건너 뜁니다. 이것은 카탈로그 부패에 더 잘 대처합니다.이 카탈로그 부패는 뒷면 지점에서 발생하는 것으로 보인다.grant
및드롭 역할
.
inPG_AMCHECK및pg_upgrade, 올바른 함수를 사용하여 무료 할당libpq(Michael Paquier, Ranier Vilela)§ § §
이러한 감독으로 인해 특정 Windows 빌드 구성에서 충돌이 발생할 수 있습니다.libpq호출 응용 프로그램의 비 데그 빌드에서 사용합니다.
고정ReindexDB의 병렬 리인덱스 작업 스케줄링 (Alexander Korotkov)§
원래 코딩은 예상되는 병렬 처리량을 달성하지 못했습니다.
손상된 입력 데이터로 충돌하지 않도록Contrib/PageInspect
's30444_30463
(Dmitry Kovalenko)§
어설 션 실패 방지Contrib/PG_FREESPACEMAP
'sPG_FREESPACEMAP ()
(Tender Wang)§
적용PG_FREESPACEMAP ()
스토리지가없는 관계 (예 :보기와 같은)는 어지럽지 않은 빌드에 영향을 미치지 않았지만 어설 션 실패를 일으켰습니다. 해당 케이스를 거부하려면 오류 점검을 추가하십시오.
incontrib/postgres_fdw
, 하위 쿼리 (Alexander Pyhalov)에서 제한 조건을 풀지 마십시오§
이 수정 사항은 드문 경우를 방지합니다“서브 쿼리 출력에서 예기치 않은 표현식”오류.
이전 버전의 경우 빌드 실패 수정libpq_fe.h
시스템에 포함되어 있습니다. 디렉토리 포함 (cách đọc kèo bóng đá)§
MacOS 15.4에서 빌드 실패 수정 (cách đọc kèo bóng đá, Peter Eisentraut)§
이 MACOS 업데이트는 구성 프로브를 깨뜨 렸습니다strchrnul ()
.
Read Streams (Thomas Munro)의 버퍼 당 데이터의 Valgrind 라벨링 수정§
이것은 릴리스 버전의 핵심 코드에 영향을 미치지 않습니다PostgreSQL, 그러나 버퍼 당 데이터 기능을 사용하는 확장은 Valgrind에서 테스트 될 때 가짜 실패에 직면했을 수 있습니다.
String Hashing Code (John Naylor)에 대한 Valgrind 불만을 피하십시오§
시간대 데이터 파일 업데이트TZDATA칠레의 DST 법률 변경을위한 릴리스 2025B,이란의 역사적 교정 (cách đọc kèo bóng đá)§
33047_33207
문서에 올바른 것이 없다면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면