출시일: 2022-08-11
이 릴리스에는 10.21의 다양한 수정 사항이 포함되어 있습니다. 주요 릴리스 10의 새로운 기능에 대한 자세한 내용은 다음을 참조하세요.젠 토토 PostgreSQL : 문서 : 10 : E.24. 릴리스 10.
그포스트그레SQL커뮤니티는 2022년 11월에 10.X 릴리스 시리즈에 대한 업데이트 출시를 중단합니다. 사용자는 곧 최신 릴리스 브랜치로 업데이트하는 것이 좋습니다.
10.X를 실행하는 경우 덤프/복원이 필요하지 않습니다.
그러나 10.19 이전 버전에서 업그레이드하는 경우 다음을 참조하세요.스포츠 토토 결과 PostgreSQL : 문서 : 10 : E.5. 릴리스 10.19.
확장 스크립트가 아직 확장 프로그램에 속하지 않은 개체를 대체하도록 허용하지 않음(톰 레인)
이 변경으로 인해 확장 스크립트가 수행되지 않습니다.생성 또는 교체확장에 속하지 않는 기존 개체가 있는 경우. 또한 방지합니다존재하지 않는 경우 생성같은 상황에서요. 이는 적대적인 데이터베이스 사용자가 확장 개체의 소유자가 된 다음 확장 개체를 수정하여 나중에 다른 사용자가 해당 개체를 사용하는 것을 손상시킬 수 있는 트로이 목마 공격 형태를 방지합니다. 부가적인 이점으로 의도하지 않은 객체를 실수로 교체할 위험도 줄어듭니다.
그포스트그레SQL프로젝트는 이 문제를 보고한 Sven Klemm에게 감사드립니다. (CVE-2022-2625)
재생 수정데이터베이스 생성대기 서버의 WAL 레코드(Kyotaro Horiguchi, Asim R Praveen, Paul Guo)
대기 서버는 데이터베이스 생성 WAL 레코드를 재생할 때 테이블스페이스 디렉토리가 누락될 수 있습니다. 이 패치 이전에는 이러한 경우 대기가 복구되지 않았습니다. 그러나 그러한 디렉토리는 합법적으로 누락될 수 있습니다. 일반 디렉터리로 테이블스페이스를 생성한 다음 재생이 일관된 상태에 도달하면 테이블스페이스가 다시 삭제되었는지 확인하세요.
지원“제자리에”테이블스페이스(Thomas Munro, Michael Paquier, Álvaro Herrera)
일반적으로 Postgres 테이블스페이스는 다른 파일 시스템의 디렉토리에 대한 심볼릭 링크입니다. 이 변경을 통해 일반 디렉터리로 만들 수 있습니다. 이는 테이블을 다른 파일 시스템으로 분리하는 데는 쓸모가 없지만 테스트에는 편리한 설정입니다. 또한 다음을 지원해야 합니다.데이터베이스 생성누락된 테이블스페이스를 일시적으로 생성하는 재생 수정)“제자리에”테이블스페이스.
권한 확인 수정색인 생성(네이선 보사르, 노아 미쉬)
CVE-2022-1552에 대한 수정으로 인해 발생함색인 생성이전에는 호출 사용자의 권한이 사용되었던 연산자 클래스 및 기타 개체를 조회하는 동안 테이블 소유자의 권한을 적용합니다. 이로 인해 덤프/복원 시나리오가 중단되었습니다. 왜냐하면pg_dump문제색인 생성권한을 다시 부여하기 전에.
확장 쿼리 프로토콜무지개 토토는 이후에 즉시 커밋을 강제합니다.데이터베이스 생성및 트랜잭션 블록무지개 토토 실행할 수 없는 기타 명령(Tom Lane)
클라이언트가 이러한 명령 직후에 동기화 메시지를 보내지 않고 대신 다른 명령을 보내는 경우, 해당 명령의 실패로 인해 이전 명령이 롤백되며 일반적으로 디스크에 일관되지 않은 상태(예: 누락 또는 추가 데이터베이스 디렉토리)가 남게 됩니다. 이러한 상황을 방지하기 위한 메커니즘은 단순 쿼리 메시지의 여러 명령에 대해 작동하지만 일련의 확장 프로토콜 메시지에는 작동하지 않습니다. 현재 작동하는 사용 사례를 중단하지 않고 불일치를 방지하려면 해당 명령 뒤에 암시적 커밋을 강제 적용하세요.
트랜잭션 가시성을 확인할 때 경합 상태 수정(Simon Riggs)
TransactionIdIsInProgress보고할 수 있음거짓대상 트랜잭션이 표시되는 것으로 간주되기 전에 다양한 오작동이 발생합니다. 경쟁 조건 기간은 일반적으로 매우 좁지만 동기 복제를 사용하면 해당 기간무지개 토토 동기 복제본에 대한 대기가 발생하므로 훨씬 더 넓어집니다.
수정“하위 계획 대상 목록무지개 토토 변수를 찾을 수 없음”하위를 끌어올릴 때 플래너 오류-선택a무지개 토토 참조된 내용입니다.그룹화함수 (리차드 구오)
방지pg_stat_get_subscription()가비지 값을 포함하는 추가 행 반환 가능성(Kuntal Ghosh)
다음을 확인하세요pg_stop_backup()세션 상태를 적절하게 정리합니다(Fujii Masao)
이 누락은 나중에 세션무지개 토토 어설션 실패 또는 충돌로 이어질 수 있습니다.
다음에서 일치하는 조인 별칭 수정[키] 업데이트/공유용절 (딘 라시드)
특이한 경우에는 오해의 소지가 있는 오류가 보고될 수 있습니다.
열 별칭이 너무 많이 첨부된 경우 충돌 방지XMLTABLE또는JSON_TABLE구조물(알바로 에레라)
거부ROW()식 및 함수발신열이 너무 많습니다(Tom Lane)
약 1600개 이상의 열이 있는 사례는 지원되지 않으며 항상 실행에 실패했습니다. 그러나 일부 이전 코드는 32,000개가 넘는 열이 포함된 쿼리로 인해 어설션 실패 또는 충돌이 발생할 수 있다는 사실이 드러났습니다. 이를 방지하려면 구문 분석 시간 검사를 추가하세요.
뷰 또는 규칙을 디컴파일할 때 다음을 표시합니다.선택출력 열의AS "?열?"다른 곳무지개 토토 참조할 수 있는 경우 별칭 절(Tom Lane)
이전에는 자동 생성된 별칭이 항상 숨겨졌습니다. 하지만 그렇게 하면 복원할 수 없는 보기 또는 규칙 정의가 발생하는 특수한 경우가 있습니다.
함수를 사용하여 뷰 덤핑 수정발신뷰가 만들어진 이후 복합 유형의 열이 삭제된 경우 복합 유형을 반환하는 경우(Tom Lane)
이러한 감독으로 인해 덤프/다시 로드되거나pg_upgrade실패합니다. 덤프된 뷰에 함수에 대한 열 별칭이 너무 많기 때문입니다.
암시적으로 생성된 연산자 계열을 이벤트 트리거에 보고합니다(사와다 마사히코)
만약연산자 클래스 생성결과적으로 연산자 계열이 암시적으로 생성되며 해당 개체는 해당 이벤트를 캡처해야 하는 이벤트 트리거에 보고되지 않았습니다.
대기 서버 승격 중 재시작 지점이 실행 중일 때 제어 파일 업데이트 수정(호리구치 쿄타로)
이전에는 재시작 지점이 완료되면 제어 파일의 마지막 체크포인트 필드를 잘못 업데이트할 수 있었으며, 다음 일반 체크포인트가 완료되기 전에 서버가 충돌하면 패닉이 발생하고 재시작 실패가 발생할 수 있었습니다.
대기 트리거 방지wal_receiver_timeout대규모 트랜잭션의 논리적 복제 중(Wang Wei, Amit Kapila)
주 서버의 대규모 트랜잭션이 대기 서버에 데이터를 보내지 않으면(아마도 변경된 테이블이 게시되지 않았기 때문에) 대기 서버가 시간 초과될 수 있었습니다. 이러한 상황에서는 주기적으로 연결 유지 메시지를 보내 문제를 해결하세요.
논리 복제 Walsender무지개 토토 중첩된 백업 작업을 허용하지 않습니다(Fujii Masao)
논리적 복제 구독자의 메모리 누수 수정(Hou Zhijie)
논리적 복제의 구체화된 뷰에 대한 힙 재작성 임시 테이블 무시(Euler Taveira)
A 모든 테이블에 대해게시물은 자체 장치에 남겨진 경우 임시 테이블을 게시하려고 시도합니다. 이를 억제하는 경험적 방법이 있지만 구체화된 뷰를 다시 작성하는 동안 생성된 내부 임시 테이블을 처리하지 못했습니다. 이로 인해 다음과 같은 위험이 발생했습니다.“논리적 복제 대상 관계 ... 존재하지 않습니다.”실패 중구체화된 보기 새로고침.
잘못된 시간대 약어 파일을 읽을 때 열린 파일 누출 방지(호리구치 쿄타로)
이러한 경우에는 무해한 경고 메시지가 나타날 수 있습니다.
사용자 정의 서버 매개변수에 NULL인 간단한 설명이 있도록 허용(Steve Chavez)
이전에는 확장 프로그램이 이러한 설정을 생성하도록 선택할 수 있었지만 일부 코드 경로는 이를 처리하는 동안 충돌이 발생했습니다.
WAL 일관성 검사 로직을 올바르게 처리하도록 수정BRIN_EVACUATE_PAGE플래그 (왕 하이양)
잘못된 SSL 키 파일 소유권 체크인 제거libpq(톰 레인)
이전 마이너 릴리스에서는 SSL 개인 키 파일에 대한 서버 권한 확인 규칙을 libpq에 복사했습니다. 그러나 서버의 파일 소유권 확인도 복사해서는 안 되었습니다. 일반적인 사용 사례에서는 작동하지만 루트로 실행되는 클라이언트에 예상치 못한 오류가 발생할 수 있으며 다른 경우에도 발생할 수 있습니다.
보장ecpg제대로 서버 연결 끊김을 보고합니다(Tom Lane)
연결 끊김 보고서와 같은 libpq에서 생성된 오류 결과를 잘못 처리하면 인쇄될 수 있습니다.“(널)”유용한 오류 메시지 대신; 또는 이전 릴리스에서는 충돌이 발생할 수 있습니다.
코어 덤프 방지ecpglib예상치 못한 작업 순서로 (톰 레인)
다음과 같은 특정 작업EXEC SQL 준비데이터베이스 연결을 설정하기 전에 호출하면 예상대로 오류를 보고하지 않고 충돌이 발생합니다.
에ecpglib, 중복 방지newlocale()전화(노아 미쉬)
쿼리당 한 번씩 로케일 개체를 생성하고 해제하는 대신 처음 연결할 때 프로세스당 한 번씩 C 로케일 개체를 할당하십시오. 이는 AIX무지개 토토 libc 메모리 누수를 완화하고 모든 곳무지개 토토 성능상의 이점을 제공할 수 있습니다.
에psql's\watch명령, 취소 후 control-C를 사용하여 개행을 에코합니다(Pavel Stehule)
이것은 libedit(및 아마도 libreadline)가 커서가 어느 열에 있는지 혼동하는 것을 방지합니다.
수정contrib/pg_stat_statements32비트 플랫폼에서 매우 큰 쿼리 텍스트 파일 관련 문제를 방지하기 위해(Tom Lane)
다음을 확인하세요contrib/postgres_fdw다음의 상수를 보냅니다regconfig및 기타reg*적절한 스키마 한정이 있는 유형(Tom Lane)
Linux무지개 토토 동적 공유 메모리를 할당하는 동안 신호 차단(Thomas Munro)
이것은 신호가 중단될 때 문제를 방지합니다posix_fallocate().
예기치 않은 감지EEXIST오류 발생자shm_open()(토마스 먼로)
이것은 Solaris에서 발생할 수 있는 충돌을 방지합니다.
Perl 5.36무지개 토토 작동하도록 PL/Perl 테스트 케이스 조정(Dagfinn Ilmari MannsÃ\ker)
오래된 버전을 잘못 사용하지 마세요.libldap_r여러 개일 경우 라이브러리오픈LDAP빌드하는 동안 설치가 존재함포스트그레SQL(톰 레인)