출시 날짜 :2025-02-13
이 릴리스에는 17.2의 다양한 젠 토토 사항이 포함되어 있습니다. Major Release 17의 새로운 기능에 대한 정보는 참조하십시오.스포츠 토토 베트맨 PostgreSQL : 문서 : 17 : E.5. 릴리스 17.
17.x.를 실행하는 사람들에게는 덤프/복원이 필요하지 않습니다.
그러나 17.1 이전 버전에서 업그레이드하는 경우 참조PostgreSQL : 문서 : 17 : E.4. 토토 17.1.
HardenPQescapestring
및 유효하지 않은 입력 문자열에 대한 동맹 기능 (Andres Freund, Noah Misch)§ § § § § §
Data-Quoting 함수에 의해 제공libpq이제 입력의 인코딩 유효성을 완전히 확인하십시오. 잘못된 문자가 감지되면 가능한 경우 오류를보고합니다.
이 변경의 목적은 이러한 기능 중 하나가 제작 된 입력을 인용하는 데 사용될 경우 가능한 SQL 주입 공격을 방지하는 것입니다. 결과 문자열이 a로 직접 전송 될 때 위험이 없습니다.PostgreSQL서버 (어쨌든 인코딩을 확인할 것임)이지만 통과 할 때 위험이 있습니다PSQL또는 기타 클라이언트 측 코드. 역사적으로 그러한 코드는 신중하게 인코딩을 조사하지 않았으며, 많은 경우 그러한 문제를 감지했을 때 어떻게 해야하는지 명확하지 않습니다.
이 젠 토토은 데이터 인용 기능, 서버 및 중간 처리가 사용되는 문자 인코딩에 동의하는 경우에만 효과적입니다. 신뢰할 수없는 입력을 SQL 명령에 삽입하는 응용 프로그램은 그것이 사실인지 확인하기 위해 특별한주의를 기울여야합니다.
이들을 사용하지 않고 신뢰할 수없는 입력을 인용하는 응용 프로그램 및 드라이버libpq기능은 비슷한 문제가 발생할 수 있습니다. 먼저 서버에서 예상되는 인코딩에서 데이터가 유효한지 확인해야합니다.
thePostgreSQLProject Thanks Thanks Stephen이 문제를보고하는 데 더 적게. (CVE-2025-1094)
연결 요청 (Nathan Bossart)에 나타나는 데이터베이스 및 사용자 이름의 자동 처리 복원§
이것은 일부 사용자에게 문제를 일으키는 V17 변경 사항을 되 찾습니다. 오버 길이의 이름은 인코딩 인식 방식으로 잘라야하지만 지금은 맹인 절단의 이전 행동으로 돌아갑니다이름이 지정된 ATALEN-1
바이트
연결 권한 검사 및 제한에서 병렬 작업자 제외 (Tom Lane)§
확인하지 마십시오DatallowConn
, rolcanlogin
및acl_connect
병렬 작업자를 시작할 때의 특권 대신 리더 프로세스가 원래 비슷한 점검을 통과하기에 충분하다고 가정합니다. 예를 들어, 리더가 로그인 권한이없는 역할로 실행중인 경우 병렬 쿼리의 예기치 않은 실패를 피합니다.예비 연결
, datconnlimit
및rolconnlimit
정기적 인 백엔드에 대한 제한 만 제한되며, 한도에 이미 도달했는지 확인하는 동안 일반 백엔드 만 계산합니다. 이러한 제한은 일반 백엔드에 대한 프로세스 슬롯의 과도한 소비를 방지하기위한 것이지만, 평행 작업자 및 기타 특수 프로세스에는 자체 한계 점검이있는 자체 프로세스 슬롯 풀이 있습니다..
드롭“잠금”LWLOCK 대기 이벤트 이름 (Bertrand Drouvot)의 접미사§
의도하지 않은 원인pg_stat_activity
잠금 관련 대기 이벤트 이름을 표시하려면보기“잠금”접미사.pg_wait_events
.
scalararrayop (로 btree 색인 스캔을 위해 일치하는 모든 튜플을 반환하는 데 실패 할 수 있습니다.= Any
) 조건 (Peter Geoghegan)§
Window Agregates (David Rowley)에서 오래된 결과를 재사용 할 수있는 젠 토토§
a가있는 창 집계“실행 조건”최적화 및 추천 결과 유형이 새로운 계산을 수행하는 대신 이전 파티션에서 결과를 잘못 반환 할 수 있습니다.
유지TransactionXmin
|MyProc-> Xmin
(Heikki Linnakangas)§
이 감독은 프로세스가 이미 진공 청소 된 데이터에 액세스하려고 시도 할 수 있습니다. 알려진 결과 중 하나는 일시적입니다“거래 상태에 액세스 할 수 없음”오류.
카탈로그 캐시 목록 (Heikki Linnakangas)에 새로 삽입 된 카탈로그 항목을 추가하지 못할 수있는 레이스 조건을 젠 토토합니다.§
예를 들어 기존 세션 내에서 새로 만들어진 함수를 사용하지 않아 발생할 수 있습니다.
시스템 카탈로그가 업데이트 (Noah Misch)와 동시에 진공 상태로 진공 상태로 발생할 때 가능한 카탈로그 손상 방지§ §
관계 자리가 실패 할 때 데이터 손상 젠 토토 (Thomas Munro)§ § §
관계 자르기를 수행하는 데 필요한 파일 시스템 호출은 실패 할 수 있으며, 디스크에 일관성이없는 상태를 남깁니다 (예 : 삭제 된 데이터를 효과적으로 부활). 우리는 실제로 그것을 막을 수는 없지만, 그러한 실패를 당황에 빠뜨리는 것을 통해 복구 할 수 있으므로, 잘라 내기 직전까지 WAL에서 재생하여 일관성이 회복됩니다.
관계 자르기 중에 체크 포인트가 시작되는 것을 방지합니다 (Robert Haas)§
이것은 체크 포인트를 완료하기 전에 젠 토토 된 파일이 fsync't를 얻지 못할 수있는 레이스 조건을 피하기 때문에 조만간 운영 체제가 충돌하면 데이터 손상의 위험이 생깁니다..
업데이트를 잃지 않으면PG_DATABASE
.datfrozenxid
언제진공
a와 동시에 실행됩니다.소유 한 reassign
해당 데이터베이스 소유자 (Kirill Reshke)를 변경합니다§
잘못된 젠 토토tg_updatedcols
값이 전달됨업데이트 후
트리거 (Tom Lane)§
경우에 따라tg_updatedcols
비트 맵은 동일한 트랜잭션에서 이전 명령으로 업데이트 된 열 세트를 설명 할 수 있으며, 트리거가 잘못된 일을하는 데 속이는 것입니다.
또한 너무 많은 사본을 만들어서 메모리 부풀어 오른 방지tg_updatedcols
비트 맵.
파티션 된 테이블 (Amul Sul)을 참조하는 자체 외국 키 제약 조건이있는 파티션의 분리 젠 토토§
이 경우 외래 키는 분할 된 테이블의 최상위 레벨에 정의됩니다. 그러나 대신 파티션에 정의되고 분할 된 테이블을 참조하고 참조 파티션이 분리되면 관련pg_constraint
항목이 잘못 업데이트되었습니다. 이로 인해와 같은 오류가 발생했습니다.“삽입에서 찾을 수 없음 외국 키 제약 조건”.
젠 토토pg_get_constraintdef
의 지원NOT NULL
도메인의 제약 (Álvaro Herrera)§
의 잘못 처리 젠 토토TO_TIMESTAMP
'sff
형식 코드 (Tom Lane)§n
직전의 정수 형식 코드ff
사용 가능한 모든 숫자를 소비 할 것입니다.n
ff
.n
DEPARSING a통과
SQL/JSON 쿼리 함수의 조항, 필요할 때 가변 이름이 두 배로 인용되는지 확인하십시오 (Dean Rasheed)§
퇴거 할 때xmltable ()
expression, XML 네임 스페이스 이름이 필요할 때 두 배로 인용되도록하십시오 (Dean Rasheed)§
사전 소개의 계획 젠 토토Union
입력 열 데이터 유형이 모두 일치하지 않는 경우 (David Rowley).§
이 오류는 잘못된 정렬 연산자와 데이터를 정렬 할 수 있으며, 그 결과가 눈에 띄는 문제에서 코어 덤프에 이르기까지 결과가 발생할 수 있습니다.
합병하지 마십시오Union
열이 일관되지 않은 경우 작동 (Tom Lane)§
이전에 우리는 병합하기에 안전한지 결정할 때 콜라주를 무시했습니다Union
단일 n- 웨이로 들어가Union
작동. 이것은 비 결정적 콜라주가 도입되기 전에 논란의 여지가 있었지만, 사용중인 콜라이트가 독창성의 정의에 영향을 줄 수 있기 때문에 더 이상은 아닙니다..
예방“잘못된 varnullingrels”플래너 오류 외부 조인 (Tom Lane) 아래에있는 하위 쿼리를 끌어 올린 후 오류§ §
통계를 찾을 때 무시 무시 무시 무시 (Richard Guo)§
이 감독은 표현에 대한 관련 통계를 사용하지 않거나“부패한 mvndistinct entry”오류.
파티션 가지 치기 단계에 대한 놓친 표현 처리 젠 토토 (Tom Lane)§
이 감독은로 이어질 수 있습니다.“인식되지 않은 노드 유형”파티션 된 테이블에 액세스하는 쿼리에서 오류 및 기타 문제.
Slotsync 작업자 프로세스 자체 프로세스 슬롯 (Tom Lane, Hou Zhijie)§
이것은 Slotsync Worker의 추가에서 간과되었으며, 결과적으로 프로세스 슬롯이 수영장에서 효과적으로 나왔습니다. 이로 인해 작업자를 시작하지 못하거나 구성된 설정에 따라 성공 해야하는 연결 요청의 후속 실패가 발생할 수 있습니다.max_connections
.
dshash 테이블이 1GB를 지나서 성장하도록 허용 (Matthias van de Meent)§
이것은 같은 오류를 피합니다“잘못된 DSA 메모리 Alloc 요청 크기”. 예를 들어 수백만 개의 테이블을 처리하는 트랜잭션에서 발생할 수 있습니다.
가능한 정수 오버플로를 피하십시오BringetBitMap ()
(James Hunter, Evgeniy Gorbanyov)§
결과는 통계적 목적으로 만 사용되기 때문에이 오류의 효과는 대부분 미용 적이었습니다.
SLRU 은행 번호의 오해 (Yura Sokolov)§
이 오류는 의도 한 것보다 적은 수의 은행을 사용하여 더 많은 경합을 유발하지만 기능적 오해는 없습니다..
이미 설정된 프로세스 래치가 우체국이 소켓 이벤트에 알아 차리지 못하도록하지 않도록하십시오 (Thomas Munro)§
퇴직 한 근로자와 노동자를 빠져 나가는 극도로 많은 백업 작업을하면 우체국 장이 적시에 들어오는 클라이언트 연결에 응답하는 것을 방해 할 수 있습니다.
Pages를 건너는 WAL 레코드 (Kyotaro Horiguchi, Alexander Kukushkin)를 읽을 때 스트리밍 대기 서버가 무한히 반복되는 것을 방지합니다.§
이것은 레코드의 연속이 다른 WAL 소스에서 읽어야하는 페이지에있을 때 발생합니다.
초기 프로세스 스타트 업 동안 공황에 대한 치명적인 오류의 의도하지 않은 홍보 젠 토토§
이것은 가능성이없는 몇 가지 사례를 젠 토토하여“panic : proc_exit () 아동 프로세스에서 호출”.
운영자 제품군 운영자 또는 지원 절차가 매달려있는 참조가 될 수있는 사례를 젠 토토합니다 (Tom Lane)§ §
경우에 따라 OID에 대한 참조가 여전히 남아있는 동안 데이터 유형을 삭제할 수 있습니다pg_amop
또는pg_amproc
. 그로 인해 즉각적인 문제가 발생하지는 않지만 소유 사업자 제품군을 떨어 뜨리려는 시도는 실패하고pg_dump운영자 제품군을 버릴 때 가짜 출력을 생성합니다. 이 젠 토토은 운영자 패밀리/클래스의 생성 및 젠 토토을 유발하여 필요한 종속성 항목을 추가하여 데이터 유형을 삭제하면 종속 운영자 제품군 요소도 떨어집니다.드롭 운영자 가족
회원이 매달려있는 가족을 떨어 뜨릴 때 실패를 방지합니다.
논리적 디코딩 출력에서 다중 메모리 누출 젠 토토 (Vignesh C, Masahiko Sawada, Boyu Yang)§ § §
업데이트 할 때 작은 메모리 누출 젠 토토application_name
또는cluster_name
설정 (Tofig aliev)§
백그라운드 프로세스가 새로운 값을 확인하려고 할 때 충돌을 피하십시오synchronized_standby_slots
(Álvaro Herrera)§
테스트하는 동안 정수 오버플로를 피하십시오WAL_SKIP_THRESHOLD
조건 (Tom Lane)§
매우 큰 관계를 창출 한 트랜잭션은 실수로 관계를 fsync'ing 대신 WAL에 복사하여 내구성을 보장하기로 결정할 수 있습니다.WAL_SKIP_THRESHOLD
. (이것은 만 중요합니다Wal_level
로 설정되었습니다최소
, 그렇지 않으면 WAL 사본이 필요합니다.)
캐시 조회 중 안전하지 않은 작동 순서 젠 토토 (Noah Misch)§
유일한 알려진 결과는 일반적으로 harmless“당신은 type exclusivelock의 잠금을 소유하지 않습니다”경고 중그랜트 테이블 스페이스
.
병렬 진공 상태에서 잠재적으로 사용하지 않도록 피하십시오 (Vallimaharajan G, John Naylor)§
이 버그는 표준 빌드에 아무런 영향을 미치지 않는 것 같습니다. 그러나 이론적으로 위험입니다.
가능한 젠 토토“이름을 해결하지 못했습니다”오래된 ARM 플랫폼에서 JIT를 사용할 때의 실패 (Thomas Munro)§
이것은 기본 설정에 대한 불일치로 인해 발생할 수 있습니다.-moutline-acomics
GCC와 Clang 사이. 적어도 Debian과 Ubuntu는 ARMV8-A를 대상으로하지만 기본적으로 개요 원자의 사용에 따라 GCC 및 Clang 컴파일러를 배송하는 것으로 알려져 있습니다.
어설 션 실패 젠 토토재귀와 ... Union
쿼리 (David Rowley)§
정해진 조작 잎 쿼리에 설정된 작업 (Man Zeng, Tom Lane)이 포함 된 경우 규칙 퇴직에서 어설 션 실패 방지§
병렬 쿼리 시작 (Tom Lane)에서 에지 케이스 어설 션 실패 방지§
통계 파일 (Michael Paquier)을 작성할 때 종료시 어설 션 실패 젠 토토§
String Hashing Code (John Naylor)에 대한 Valgrind 불만을 피하십시오§
innullif ()
, 데이터 유형의 평등 함수 (Tom Lane)에 대한 읽기 낭비 확장 객체 포인터를 전달하지 마십시오.§
동등 함수는 객체가 읽기 쓰기 포인터가 주어지면 개체를 젠 토토하거나 삭제할 수 있습니다.nullif ()
결과. 내장 평등 함수에는 문제가 없지만 PL/PGSQL에 코딩 된 하나의 실패를 쉽게 입증하기가 쉽습니다.
표현 전처리가 기본 널 값에 적용되는지 확인하십시오.삽입
(Tom Lane)§
대상 열이 도메인 유형 인 경우 플래너는 널 상수가 아닌 코어스-도메인 단계를 삽입해야 하며이 표현식은 필요한 처리 단계를 거치게됩니다. 핵심 데이터 유형을 기반으로 도메인에는 알려진 결과는 없지만 이론적으로는 확장 유형을 기반으로 도메인에서 오류가 발생할 수 있습니다.
이미 데이터가 포함 된 관계 포크에 대량 쓰기를 시작할 때 데이터 손실을 피하십시오 (Matthias van de Meent)§
기존의 모든 데이터는 0으로 덮어 씁니다. 이것은 핵심 문제가 아닙니다PostgreSQL, 결코 그렇게하지 않습니다. 그러나 일부 확장은 원하는 것입니다.
서버 프로세스가 생성하지 않은 공유 라디습니다 (Masahiko Sawada)을 반복하려고 시도한 경우 충돌을 피하십시오.§
Core에는 코드가 없습니다PostgreSQL이것이 그렇게하지만 확장이 원할 수도 있습니다.
PL/Python (Mat Arye, Tom Lane)에서 메모리 누출 수리§
반복 사용plyplan.execute
또는또는
호출 PL/Python 기능 기간 동안 메모리 누출이 발생했습니다.
TCL 9 (Peter Eisentraut)로 컴파일하려면 pl/tcl을 젠 토토합니다.§
inECPG사전 처리기, 소외된 변수 (Tom Lane)를 참조하는 커서의 잘못 처리 가능한 젠 토토§
inECPG, 지원되지 않은 사용에 대한 컴파일 타임 경고 젠 토토COPY ... From Stdin
(Ryo Kanbayashi)§
이전에, 오타로 인해 의도 된 경고가 발행되지 않았습니다.
젠 토토PSQLSJIS (Tom Lane)에서 인코딩 된 파일 경로 이름을 안전하게 처리하려면§
SJI의 일부 2 바이트 문자는 ASCII BackSlash (와 동일한 두 번째 바이트가 있습니다.\
). 이 문자는 경로 이름 정규화에 의해 손상되어 이름이 포함 된 파일에 대한 액세스를 방지합니다.
addPSQL탭 완료COPY (merge inter)
(Jian HE)§
잘못된 버전의 사용 젠 토토pqsignal ()
inpgbenchandPSQL(Fujii Masao, Tom Lane)§
이 오류는를 사용할 때 오류가 발생할 수 있습니다.-t
옵션pgbench또는\ watch
명령PSQL
일부 중첩의 miigxecution 젠 토토\ if
구성pgbench(Michail Nikolaev)§
an\ if
거짓 내에 나타나는 명령 (사제가 아닙니다)\ if
지점이와 동일하게 잘못 처리되었습니다.\ elif
.
inpgbench, 테이블 초기화 중 진행중인 오해의 실수를 젠 토토합니다 (Yushi Ogiwara, Tatsuo Ishii, Fujii Masao)§ §
만들기PG_CONTROLDATA손상된 것에 대한 강력한 강력한PG_CONTROL
파일 (Ilyasov Ian, Anton Voloshin)§
이후PG_CONTROLDATA의 내용을 인쇄하려고 시도합니다PG_CONTROL
CRC 검사가 실패하더라도 잘못된 필드 값을 잘못 행동하지 않아야합니다. 이 패치는 유효하지 않은 타임 스탬프와 분명히 음성 WAL 세그먼트 크기로 트리거 된 일부 문제를 젠 토토합니다.
가능한 충돌 젠 토토pg_dumpExtension Members (Tom Lane) 인 테이블에 첨부 된 ID 시퀀스가있는§
메모리 누출 젠 토토PG_RESTOREZSTD- 압축 데이터 (Tom Lane)§
누출은 응축당 수술 이었으므로 많은 테이블이나 큰 물체를 포함하는 덤프에서 가장 눈에 띄게 될 것입니다.
젠 토토PG_BASEBACKUP올바르게 처리하려면pg_wal.tar
Windows에서 2GB를 초과하는 파일 (Davinder Singh, Thomas Munro)§ §
선언에서 SQL 표준 기능 본체 사용Contrib/Earthdistance
의 SQL 언어 함수 (Tom Lane, Ronan Dunklau)§
이 변경 사항은 참조를 허용합니다Contrib/Cube
확장 생성 중에 해결 되려면 검색-경로 기반 실패 및 가능한 공격의 위험을 줄입니다.
특히, 이것은 생성 된 열과 같은 상황에서 유용성을 복원합니다.PostgreSQLv17은 보안 기반의 검색 경로를 제한합니다. 우리는 그로 인해 V17로 업그레이드되지 않은 데이터베이스에 대한 보고서를 받았습니다.Earthdistance
이 버전으로의 확장 사전에 업그레이드가 성공할 수 있어야합니다.
간에 버전 불일치 감지Contrib/PageInspect
의 SQL 선언 및 기본 공유 라이브러리 (Tomas Vondra)§
이전에, 그러한 불일치는 전화하는 동안 충돌을 일으킬 수 있습니다brin_page_items ()
. 대신 확장 업데이트를 권장하는 오류를 던지십시오.
원격 쿼리를 취소하려고 할 때Contrib/Postgres_FDW
, 아무것도하지 않는 경우 취소 요청을 몇 번 재발행하십시오 (Tom Lane)§
이것은 원격 서버가 처리하기 시작하기 전에 방금 쿼리를 취소하려고 시도 할 수있는 레이스 조건을 젠 토토하여 초기 취소 요청이 무시되도록합니다..
ARM CRC 명령어 (Tom Lane)에 액세스하는 데 필요한 컴파일러 스위치를 결정하는 구성 프로브 업데이트§
기준 CPU 대상에 CRC 지침이 부족한 ARM 플랫폼에서 AR ARM 플랫폼에서 A를 제공해야합니다-march
컴파일러를 설득하여 그러한 지침을 컴파일하도록 설득하십시오. 최근 버전의 GCC는 우리가 시도한 가치를 거부하여 Software CRC로 조용히 떨어지게됩니다.
Windows에서 오래된 OpenSSL 라이브러리를 지원하기위한 Meson 빌드 시스템 젠 토토 (Darek Slusarczyk)§
레거시 라이브러리 이름에 대한 지원 추가SSLEAY32
andlibeay32
.
Meson을 사용하여 Windows 빌드에서 모든 libcommon 및 libpgport 함수가 내보야하는지 확인하십시오 (Vladlen Popolitov, Heikki Linnakangas)§ §
이것은 젠 토토“해결되지 않은 외부 기호”확장에 대한 오류 구축.
Meson 구성 프로세스를 젠 토토하여 OSSP의 올바르게 감지uuid.h
MSVC (Andrew Dunstan)의 헤더 파일§
Meson으로 건축 할 때 installpgevent
inpkglibdir
notbindir
(Peter Eisentraut)§
이것은 Make 기반 빌드 시스템 및 이전 MSVC 빌드 시스템의 동작과 일치합니다.
Meson으로 건축 할 때 installsepgsql.sql
undershare/contrib/
notshare/extension/
(Peter Eisentraut)§
이것은 Make Build 시스템이하는 일과 일치합니다.
시간대 데이터 파일 업데이트TZDATAParaguay의 DST 법률 변경을위한 릴리스 2025A 및 필리핀의 역사적 교정 (Tom Lane)§
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면