출시 날짜 :2024-05-09
이 릴리스에는 15.6의 다양한 수정 사항이 포함되어 있습니다. 주요 릴리스 15의 새로운 기능에 대한 정보는 참조섹션 E.13.
덤프/복원은 15.x.를 실행하는 사람들에게는 필요하지 않습니다.
그러나 시스템보기에서 보안 취약점이 발견되었습니다PG_STATS_EXT
andPG_STATS_EXT_EXPRS
, 잠재적으로 인증 된 데이터베이스 사용자가하지 말아야 할 데이터를 볼 수 있도록 허용합니다. 이것이 설치에서 우려되는 경우 아래의 첫 번째 ChangeLog 항목의 단계를 따라이를 수정하십시오..
또한 15.6 이전 버전에서 업그레이드하는 경우 참조섹션 e.7.
가시성 제한PG_STATS_EXT
andPG_STATS_EXT_EXPRS
테이블 소유자의 출품작 (Nathan Bossart)§
이러한 뷰는 열이 포함 된 표현식에 대한 통계를 숨기지 못했습니다. 액세스 사용자는 읽을 권한이 없습니다. 와 같은 열보기most_common_vals
보안 관련 데이터를 노출시킬 수 있습니다. 여기서 잠재적 인 상호 작용은 완전히 명확하지 않으므로 안전 측면에서 오류를 일으키기 위해 이러한 견해에서 행을 관련 테이블의 소유자에게만 볼 수있게합니다..
the스포츠 토토이 문제를보고 한 프로젝트 감사 Lukas Fittl. (CVE-2024-4317)
그 자체로는이 수정 사항은 새로 Intdb'd 데이터베이스 클러스터의 동작 만 수정합니다. 이 변경 사항을 기존 클러스터에 적용하려면 다음을 수행해야합니다.
스포츠 토토 스크립트 찾기fix-CVE-2024-4317.스포츠 토토
in공유
디렉토리스포츠 토토설치 (일반적으로 어딘가에 위치한/usr/share/스포츠 토토/
). 귀하에게 적합한 스크립트를 사용하십시오스포츠 토토메이저 버전. 이 파일이 표시되지 않으면 버전이 취약하지 않거나 (v14 – v16 만 영향을 받는지) 또는 마이너 버전이 너무 오래되어 수정을하기에는
in각클러스터의 데이터베이스, 실행fix-CVE-2024-4317.스포츠 토토
슈퍼 사용자로서 스크립트. 안에P스포츠 토토이것은
\ i/usr/share/스포츠 토토/fix-cve-2024-4317.sql
(파일 경로를 적절하게 조정). 모든 오류는 아마도 잘못된 스크립트 버전을 사용했음을 나타냅니다.
포함하는 것을 잊지 마십시오Template0
andtemplate1
데이터베이스 또는 취약점은 나중에 만든 데이터베이스에 여전히 존재합니다. 수정하려면Template0
, 일시적으로 연결을 수락하도록해야합니다.
allow_connections true를 사용하여 데이터베이스 템플릿을 변경합니다.
그런 다음 수정 후Template0
, undo with
allow_connections가있는 데이터베이스 템플릿을 Alter Alter Alter Alter Alter Alter Alter Alter Alter Alter Alter Alter Alter Alter Alter Database Template;
수정삽입
다중값
배열 또는 복합 유형 (Tom Lane)의 도메인 인 대상 열로의 행§
이러한 경우는 불일치 한 데이터 유형에 대한 놀라운 불만으로 실패하거나 이상한 결과로 이어질 수있는 예기치 않은 강요를 삽입합니다..
요구select
대상 테이블의 특권병합
with아무것도하지 않습니다
절 (Álvaro Herrera)§
select
어쨌든 모든 실제 경우에 권한이 필요하지만 쿼리에 대상 테이블의 열이 없어도 요구합니다. 이것은 가장자리 케이스를 피합니다병합
아무것도 권한이 필요하지 않을 것입니다.
자기 수정 튜플의 취급 수정병합
(Dean Rasheed)§
SQL 표준에 따라 대상 행이 둘 이상의 소스 행에 조인되는 경우 오류를 던집니다. (이전 코딩은 동시 업데이트가 관련된 경우이 조건을 조용히 무시할 수 있습니다.) 또한 대상 행이 현재 트랜잭션에서 나중에 명령에 의해 이미 업데이트 된 경우,.전
쿼리에 사용되는 트리거 또는 휘발성 함수.
테이블이 부울 열에 분할되고 쿼리에 부울이있는 경우 NULL 파티션의 잘못된 가지 치기 수정절 (David Rowley)§
널 값은와 같은 조항을 만족시킵니다.
, 따라서 널이 포함 된 파티션을 가지 치기 잘못된 답변을 얻었습니다.부울
거짓이 아니다
만들기외국 테이블 세트 스키마 변경
소유 한 시퀀스를 새 스키마 (Tom Lane)로 이동합니다§
일반 테이블을 새 스키마로 이동하면 테이블이 소유 한 시퀀스가 해당 스키마로 이동하여 (인덱스 및 제약 조건과 함께). 그러나 이것은 외국 테이블에 대해 간과되었습니다.
만들기ALTER 테이블 ... 열 추가
소유 테이블과 동일한 끈기를 가진 신원/직렬 시퀀스를 만듭니다 (Peter Eisentraut)§
무제성 테이블 만들기
소유의 시퀀스도 신경 쓰지 않게합니다.Alter Table
그 고려 사항을 놓쳤으므로 추가 된 ID 열에 기록 된 시퀀스가있을 수 있도록 무의미해 보입니다.
개선ALTER 테이블 ... ALTER 열 유형
의 종속 함수 또는 출판물이있을 때의 오류 메시지 (Tom Lane)§ §
in데이터베이스 생성
, 전략 키워드 인식 다른 옵션과의 일관성 (Tomas Vondra)§
수정설명
의 비트 맵 힙 스캔 (Melanie Plageman)에서 액세스하는 힙 페이지 계산§
이전에 눈에 보이는 튜플이 포함되지 않은 힙 페이지는 계산되지 않았습니다. 그러나 비트 맵 인덱스 스캔으로 반환 된 모든 페이지를 계산하는 것이 더 일관된 것 같습니다.
수정설명
의 하위 계획 출력병합
(Dean Rasheed)§
설명
때로는 계획 트리의 다른 부분에 변수를 참조하는 하위 플랜 매개 변수를 제대로 표시하지 못할 것입니다.
고아가있는 임시 테이블 제거 중 교착 상태를 피하십시오 (Mikhail Zhilin)§
테이블을 제거하지 않고 임시 테이블을 생성하는 세션이 충돌하는 경우 Autovacuum은 결국 고아 테이블을 제거하려고합니다. 그러나 동일한 임시 네임 스페이스가 할당 된 들어오는 세션도이를 수행합니다.
균열 당 냉동-Xid 값 (Noah Misch)을 검사하는 동안 인종 상태를 피하십시오§
진공
의 릴 타베 바이스 당 냉동-XID 값의 계산은 다른 값에 의해 해당 값의 동시 업데이트에 의해 혼란스러워 질 수 있습니다진공
.
병렬 진공 청소기 (Anthonin Bonnefoy)에 대한 버퍼 사용 보고서 수정§
병렬 작업자가 수행 한 버퍼 액세스는보고 된 통계에서 계산되지 않았습니다Verbose
모드.
테이블 (Tom Lane)을 사용하는 외부 스포츠 토토 명령 내에서 테이블을 뷰로 변환하지 못함§
이것은 가능한 충돌을 피합니다.
동등성 클래스에서 생성 된 조건이 올바른 계획 수준 (Tom Lane)에서 적용되는지 확인하십시오.§
이전 버전스포츠 토토16, 외부 조인 위에서 (이후) 위를 평가해야 할 때 외부 결합 아래에서 생성 된 조건을 평가할 수 있으므로 쿼리 결과가 잘못 초래됩니다. 모든 버전은 결합을 고려할 때 비슷한 위험이 있습니다Union All
일부의 조인 열에 대한 일정한 출력이있는 나무select
ARMS.
일부 창 함수 (David Rowley)의 잠재적으로 확정되지 않은 최적화 방지§
비활성화“실행 조건”최적화ntile ()
andcount ()
논쟁의 여지가없는 인수. 이것은 하위 선택이있는 오해를 피하며 일반적으로와 같은 오류로 이어집니다.“subplan 대상 목록에서 찾을 수 없음”.
움직이지 않는 창 프레임 (Vallimaharajan g)과 함께 이동 응집 모드의 불필요한 사용을 피하십시오§
일반 집계가 창 함수로 사용되고 창 프레임 시작이로 지정됩니다.미리 알려지지 않은
, 프레임의 헤드는 움직일 수 없으므로 특수 (그리고 더 비싼) 이동 응집 모드를 사용할 필요가 없습니다. 이 최적화는 모두 의도되었지만 코딩 오류로 인해 결코 트리거되지 않았습니다.
GEQO (Tom Lane) 하에서 파티션 별 조인을 계획하는 동안 이미 프리 드 데이터 사용을 피하십시오§
이것은 일반적으로 충돌 또는 예기치 않은 오류 메시지로 끝납니다.
Memoize (Tender Wang, Andrei Lepikhov)에서 아직 사용하지 않는 데이터를 제거하지 마십시오§
생산 에서이 오류는 자주 사용되기 전에 해체 된 데이터가 덮어 쓰지 않을 가능성이 높기 때문에이 오류는 자주 문제를 일으키지 않았습니다..
잘못보고 된 통계를 수정하십시오.“요청 된 통계 종류X
아직 구축되지 않았습니다”오류 메시지 (David Rowley)§
더 조심하십시오레코드
-함수의 반환From
(Tom Lane)§ §
그러한 함수 호출의 출력 열은 AN에 의해 정의되어야합니다.as
열 이름 및 데이터 유형을 지정하는 조항. 실제 함수 출력 값이 일치하지 않으면 런타임에 오류가 발생합니다.
SQL-Language Procedures의 반환 행 유형에 대한 혼란 수정 (Tom Lane)§
단일 복합 유형 열을 반환하는 스포츠 토토 언어로 구현 된 절차는 어설 션 실패 또는 코어 덤프를 유발합니다..
일부 재귀 함수에 보호 스택 깊이 검사 추가 (Egor Chindyaskin)§
잘못된 라운드 및 오버플로 위험 수정date_bin ()
(Moaaz Assali)§
소스 타임 스탬프가 Origin 타임 스탬프 이전에있는 경우, 그 차이는 이미 정확한 보폭의 보폭 인 경우, 코드는 어쨌든 보폭을 잘못 빼 냈습니다. 또한 잘못된 결과를 낳은 정수 오버 플로우 케이스를 감지합니다.
추가 또는 빼기에 정수 오버플로 감지간격
to/from a타임 스탬프
(Joseph Koshakow)§
범위 외 오류를 유발 해야하는 경우 대신 잘못된 결과를 얻었습니다.
인종 조건을 피하십시오pg_get_expr ()
(Tom Lane)§
인수에 의해 언급 된 관계가 동시에 삭제되면, 함수의 의도는 null을 반환하는 것이지만 때로는 대신 실패합니다..
XID 상태 기능 (Karina Litskevich)에서 이전 트랜잭션 ID의 탐지 수정§
트랜잭션 ID가 2 이상31과거의 거래는 최근에 잘못 식별되어의 오작동으로 이어질 수 있습니다.pg_xact_status ()
또는TXID_STATUS ()
.
테이블의 프리 스페이스 맵이 테이블 끝을 지나는 페이지를 반환하지 않도록하십시오 (Ronan Dunklau)§
프리 스페이스 맵은 Wal-Logged가 아니기 때문에 OS 충돌, 복제 홍보 또는 PITR 복원과 관련된 모서리의 경우 가능했습니다. 결과는입니다.“블록을 읽을 수 없음”오류.
대기 중에 오류가 발생하면 파일 디스크립터 누출 수정Waiteventsetwait
(Etsuro Fujita)§
FDW가 비동기 부록을 구현하지만 Append Plan Node가 대기 할 대기 조건 (Alexander Pyhalov)에 대한 대기 조건을 구성하지 않으면 손상된 예외 스택을 피하십시오.§
인덱스에 액세스하는 동안 인덱스에 액세스하는 경우 오류를 던져 (Tom Lane)§
이전에는 주장 점검 일 뿐이지 만 일반 런타임 오류로 홍보하십시오. 이렇게하면 자체 테이블에 액세스하려고 시도하는 사용자 정의 인덱스 표현식을 다시 표시 할 때 더 많은 지점 오류 메시지가 제공됩니다.
인덱스 전용 스캔 확인이름
열은 완전히 패딩 된 값을 반환합니다 (David Rowley)§
인덱스에 물리적으로 저장된 값은 잘 렸으며, 이전에는 해당 값에 대한 포인터가 발신자에게 반환되었습니다. 이것은 Valgrind에서 테스트 할 때 불만을 유발했습니다.
논리적 복제에서 테이블 동기 조작이 필요한지 여부를 결정할 때 레이스 조건을 고정합니다 (vignesh c)§
가입자가 동기화 해야하는 테이블을 식별하는 동안 가입자가 도착하는 무효화 이벤트가 도착하므로 신규 식별이 필요한 테이블이 적시에 처리되지 않을 수 있습니다.
4GB보다 큰 DSM 할당으로 충돌 수정 (Heikki Linnakangas)§
새로운 서버 세션의 클라이언트 소켓을 비 블로킹 모드 (Heikki Linnakangas)에 넣을 수없는 경우 연결 해제§
한 번 이론적으로 우리는 차단 모드에있는 소켓으로 작동 할 수있었습니다. 그러나 그것은 오랫동안 완전히 작동하지 않았으므로 나중에 잘못 행동하는 대신 연결 시작시 실패합니다.
부적절한 오류보고 수정OpenSSL3.0.0 이상 (Heikki Linnakangas, Tom Lane)§
OpenSSL에 의해 통과 된 시스템보고 오류는 읽을 수있는 것이 아니라 숫자 오류 코드로보고되었습니다.
동시 호출을 피하십시오bindTextDomain ()
inlibpqandecpglib(Tom Lane)§ §
gnugetText'의 구현은 동시 호출과 함께 괜찮은 것 같습니다. Windows에서 사용 가능한 버전은 그렇지 않습니다.
충돌 수정ECPG의 사전 처리기 프로그램이 전처리 명령 줄 (Tom Lane)에 정의 된 매크로를 재정의하려고하는 경우§ § §
inECPG, 거짓 발행을 피하십시오“지원되지 않는 기능이 서버로 전달됩니다”경고 (Tom Lane)§
문자열의 결과가ECPG'sintoasc ()
함수는 제로 종료되었습니다 (Oleg tselebrovskiy)§
inP스포츠 토토, 쿼리가 취소 된 후 쿼리 결과 누출을 피하십시오 (Tom Lane)§
이것은 쿼리 문자열에서 일상적인 쿼리를 취소 할 때만 발생했습니다\;
분리기.
수정pg_dumpall존재하는 경우 역할 주석이 |의 설정에 관계없이 버려집니다--롤-파스 워드
(Daniel Gustafsson, Álvaro Herrera)§
파일 건너 뛰기.DS_STORE
inPG_BASEBACKUP, PG_CHECKSUMS및pg_rewind(Daniel Gustafsson)§
이것은 파인더가 그러한 파일을 생성 할 수있는 MacOS의 문제를 피합니다.
수정pl/pg스포츠 토토의 단일 라인 주석의 구문 분석 (--
-스타일 댓글) 다음 표현 (Erik Wienhold, Tom Lane)§
이 실수는 그러한 의견이 A를 따르는 경우 구문 분석 오류를 일으켰습니다.언제
a 표현pl/pg스포츠 토토 CASE
진술.
inContrib/Amcheck
, 단거리 대 장거리 값으로 인한 허위 경기 실패를보고하지 마십시오 (Andrey Borodin, Michael Zhilin)§ §
힙 튜플 또는 인덱스 튜플의 가변 길이 기준은 제조 될 때 적용되는 압축 매개 변수에 따라 짧거나 긴 헤더를 가질 수 있습니다. 차이가있는 경우 불만을 제기하기보다는 이러한 사례를 동등하게 취급하십시오.
브린 출력 함수의 버그 수정 (Tomas Vondra)§
이러한 출력 기능은에 인덱스 항목을 표시하는 데만 사용됩니다.Contrib/PageInspect
, 오류는 실질적인 관심사가 제한적입니다.
inContrib/Postgres_FDW
, Constant (David Rowley)에 의해 정렬하라는 요청을 피하십시오§
이것은 관련된 경우에 발생할 수 있습니다Union All
상수 방출 하위 쿼리. 상수로 정렬하는 것은 물론 쓸모가 없지만 원격 서버에 의해 잘못 해석 될 위험이 있습니다.“위치 별 주문N
선택 목록에 있지 않음”오류.
만들기Contrib/Postgres_FDW
원격 세션의 시간대를 설정GMT
notUTC
(Tom Lane)§
이것은 실제 목적으로 동일한 결과를 가져야합니다. 하지만,GMT
서버에서 하드 유선 코드로 인식되는 동안UTC
는 TimeZone 데이터베이스에서 조회됩니다. 따라서 원격 서버의 TimeZone 데이터베이스에 항목이 없을 가능성이없는 이벤트에서는 이전 코드가 실패 할 수 있습니다.
inContrib/XML2
, 최근 버전에서 더 이상 사용되지 않은 라이브러리 기능 사용을 피하십시오libxml2(Dmitry Koval)§
LLVM 18 (Thomas Munro, Dmitry Dolgov)과 비 호환성 수정§
허용확인
무슬림C 도서관 (Thomas Munro, Bruce Momjian, Tom Lane)§