E.14. 릴리스 14.6

출시일: 2022-11-10

이 릴리스에는 14.5의 다양한 수정 사항이 포함되어 있습니다. 주요 릴리스 14의 새로운 기능에 대한 자세한 내용은 다음을 참조하세요.윈 토토 PostgreSQL : 문서 : 14 : E.18. 릴리스 14.

E.14.1. 버전 14.6으로 마이그레이션

14.X를 실행하는 경우 덤프/복원이 필요하지 않습니다.

그러나 14.4 이전 버전에서 업그레이드하는 경우 다음을 참조하세요.PostgreSQL : 문서 : 14 : E.14. 토토 꽁 머니 14.4.

E.14.2. 변경사항

  • 업데이트가 동시에 진행되는 동안 드문 패닉을 방지진공(톰 레인, 제프 데이비스)§ §

    동시인 경우진공페이지에 모두 표시되는 플래그 비트를 설정합니다.업데이트또는삭제수정 중입니다. 업데이트 명령은 해당 비트를 다시 지워야 합니다. 그러나 일부 코드 경로는 이를 수행하지 못하여 PANIC 종료 및 데이터베이스 재시작으로 끝났습니다.

    이는 버전 14 및 15에서 가능한 것으로 알려져 있습니다. 이전 브랜치에만 잠재되어 있을 수 있습니다.

  • 다음 처리 수정기본값여러 행에 나타나는 토큰an의 절삽입업데이트 가능한 보기(Tom Lane)§

    이러한 감독으로 인해 다음이 발생할 수 있습니다.유형에 대한 캐시 조회 실패오류 또는 이전 브랜치에서도 충돌이 발생합니다.

  • 이름이 지정된 규칙을 허용하지 않음_RETURN그렇지 않습니다ON 선택(톰 레인)§

    이것은 뷰 사이의 혼란을 방지합니다.선택 중규칙 및 여기에 있을 수 있는 기타 규칙.

  • 튜플 저장 시 자원 관리 버그 수정이후트리거(톰 레인)§

    적절한 상황이 주어지면 이것은 다음과 같이 나타났습니다.tupdesc 참조NNNN리소스 소유자가 소유하지 않음오류에 이어 PANIC 종료가 발생합니다.

  • 실패를 피하십시오자세한 설명다음을 사용한 쿼리의 경우폭 우선 검색초기값이 일정함(Tom Lane)§

  • 수행 중 파티션별 외래 키 제약 조건 구성 수정테이블 연결 파티션 변경(Jehan-Guillaume de Rorthais, 알바로 에레라)§ §

    이전에는 새로 추가된 파티션에 대해 올바르지 않거나 중복된 제약 조건이 구성될 수 있었습니다.

  • 파티션별 외래 키 제약 조건에 대한 제약 조건 이름 생성 수정(Jehan-Guillaume de Rorthais)§

    처음에 지정된 이름이 파티션의 일부 제약 조건에 이미 사용 중이라면 새 이름이 선택됩니다. but it wasn't being spelled as intended.

  • 분할된 인덱스를 생성할 때 인덱스 표현식과 조건자의 잘못된 일치 수정(Richard Guo, Tom Lane)§

    파티션된 인덱스를 생성하는 동안 우리는 파티션된 인덱스와 일치하는 파티션의 기존 인덱스를 식별하여 새 인덱스를 구축하는 대신 이를 하위 인덱스로 흡수할 수 있도록 노력합니다. 표현식 매칭이 제대로 이루어지지 않아 사용 가능한 하위 인덱스가 무시되어 중복 인덱스가 생성될 수 있습니다.

  • 대기 승격 후 WAL 손상 방지(Dilip Kumar, Robert Haas)§

    포스트그레SQL아카이브 복구를 수행하지만 대기 모드를 사용하지 않는 인스턴스가 승격되고 읽기를 시도한 마지막 WAL 세그먼트가 부분 레코드로 종료되면 인스턴스는 새 타임라인에 잘못된 WAL 세그먼트를 기록합니다.

  • GIN 인덱스의 빠른 삽입 경로에서 WAL 작업의 잘못된 순서 수정(Matthias van de Meent, Zhang Mingli)§

    이 실수는 코어 내젠 토토 부정적인 결과를 가져오는 것으로 알려져 있지 않습니다.포스트그레SQL, 하지만 일부 확장 프로그램젠 토토는 문제가 발생했습니다.

  • 트랜잭션 시작과 하위 트랜잭션 시작 사이의 지점젠 토토 재생이 시작될 때 논리적 디코딩 버그 수정 (Masahiko Sawada, Kuroda Hayato)§ §

    이러한 오류는 디버그 빌드젠 토토 어설션 실패로 이어질 수 있으며 그렇지 않으면 메모리 누수로 이어질 수 있습니다.

  • 논리적 디코딩 중 잘못된 스냅샷이 있는 시스템 카탈로그 검사 방지 (Masahiko Sawada)§

    디코딩이 시스템 카탈로그를 수정하는 트랜잭션 도중에 시작되면 디코더가 이를 인식하지 못할 수 있으며, 이로 인해 해당 트랜잭션을 카탈로그 조회를 위해 진행 중인 것으로 처리하지 못하게 됩니다.

  • 논리적 디코딩 중 더 많은 위치젠 토토 인터럽트를 허용합니다(Amit Kapila, Masahiko Sawada)§ §

    이는 복제 작업자의 느린 종료 문제를 개선합니다.

  • 복제 작업자의 외부 테이블 파티션으로 복제 시도 방지(Shi Yu, Tom Lane)§

    분할된 테이블은 외부 테이블을 파티션으로 가질 수 있지만 현재 이러한 파티션으로의 복제는 지원되지 않습니다. 논리적 복제 작업자 프로세스를 시도하면 충돌이 발생합니다. 이제 오류가 발생합니다.

  • 분할된 테이블의 복제본 ID 설정에 대한 무의미한 확인 제거(Hou Zhijie)§

    중요한 것은 리프 파티션의 복제본 ID 설정이므로 상위 파티션에 설정되어 있지 않으면 오류가 발생할 필요가 없습니다.

  • 복제 작업자의 함수 구문 오류 후 충돌 방지(Maxim Orlov, Anton Melnikov, Masahiko Sawada, Tom Lane)§

    SQL 언어 또는 PL/pgSQL 언어에서 구문 오류가 발생한 경우함수 생성또는DO명령이 논리적 복제 작업자에서 실행되면 작업자 프로세스는 널 포인터 역참조 또는 어설션 실패로 인해 충돌합니다.

  • SQL 함수에 전달된 읽기-쓰기 확장 데이텀 처리 문제 수정(Tom Lane)§

    인라인되지 않은 SQL 함수가 여러 위치젠 토토 매개변수를 사용하고 해당 함수 중 하나가 해당 위치젠 토토 읽기-쓰기 데이터를 수정할 수 있을 것으로 예상하는 경우 나중에 매개변수를 사용하면 잘못된 값이 관찰됩니다. (코어 내젠 토토)포스트그레SQL, 확장 데이텀 메커니즘은 배열 및 복합 유형 값에만 사용됩니다. 하지만 확장 프로그램은 다른 구조화된 유형에 이를 사용할 수 있습니다.)

  • 수정 유형14996_15061§

    왼쪽 원의 반경에 대해 부동 소수점 NaN이 있는 경우 중심과 반경이 모두 동일한 원과 동일한 것으로 간주됩니다.

  • Snowball 사전젠 토토는 지나치게 긴 단어를 줄이려고 하지 마십시오(Olly Betts, Tom Lane)§

    입력 단어가 1000바이트를 초과하는 경우 Snowball 코드를 통해 실행하려고 시도하는 대신 대소문자 구분 후 있는 그대로 반환합니다. 이 제한은 터키어 형태소 분석기의 알려진 재귀-스택 오버플로 문제로부터 보호하며 Snowball 형태소 분석기에 존재할 수 있는 다른 안전 또는 성능 문제에 대한 좋은 보험처럼 보입니다. 이렇게 긴 문자열은 인간 언어의 단어가 아니므로 어쨌거나 형태소 분석기가 이를 사용하여 바람직한 작업을 수행했을지는 의심스럽습니다.

  • 문자열 비교젠 토토 use-after-free 위험 수정(Tom Lane)§

    문자열 비교 함수의 부적절한 메모리 관리로 인해 더 이상 할당되지 않은 버퍼에 낙서가 발생하여 현재 해당 메모리를 사용하고 있는 모든 것이 잠재적으로 손상될 수 있습니다. 이는 상당히 긴 문자열(1kB 초과)과 ICU 대조가 사용 중인 경우에만 발생합니다.

  • 테이블 액세스 방법이 없는 테이블에 대한 액세스 시도에 대한 계획 시간 확인 추가(Tom Lane)§

    이것은 일부 카탈로그 손상 시나리오에서 충돌을 방지합니다(예: 다음과 같은 뷰 사용)선택 중규칙이 누락되었습니다.

  • 공유 메모리 상태가 손상된 경우 포스트마스터 충돌 방지(Tom Lane)§

    포스트마스터 프로세스는 공유 메모리가 손상된 경우 생존하고 데이터베이스를 다시 시작해야 하지만 코드의 한 비트가 이에 대해 충분히 주의하지 않았습니다.

  • 스택 오버런까지 재귀에 대한 방어 기능 추가(Richard Guo, Tom Lane)§ §

  • 아주 작은 해시 테이블 크기를 선택할 때 오작동을 피하세요.work_mem및 큰 튜플(Zhang Mingli)§

  • autovacuum 실행기 프로세스젠 토토 장기 메모리 누수 방지(Reid Thompson)§

    현장 보고서가 부족하다는 사실은 이 문제가 v15 이전 브랜치에만 잠재되어 있음을 시사합니다. 하지만 이유는 명확하지 않으므로 어쨌든 수정 사항을 백패치하세요.

  • 개선PL/pgSQL18395_18441기록(톰 레인)§

    에 전달된 각 구체적인 유형에 대해 별도의 함수 캐시 항목을 작성합니다.기록다형성 매개변수에 대해 하는 것과 마찬가지로 세션 중 매개변수입니다. 이를 통해 이전에 다음과 같은 오류로 인해 실패했던 일부 사용법이 작동할 수 있습니다.매개변수 유형이 계획을 준비할 때와 일치하지 않습니다..

  • libpq, 파이프라이닝 시 단일 행 모드를 올바르게 처리합니다(Denis Laxalde)§

    파이프라인 모드도 활성화된 경우 단일 행 플래그가 올바른 시간에 재설정되지 않았습니다.

  • 다음에 대한 누락된 경비원 추가NULL연결 포인터 입력libpq(다니엘레 바라조, 톰 레인)§

    관례가 있습니다libpq함수는 NULL PGconn 인수를 확인하고 충돌하는 대신 정상적으로 실패해야 합니다.PQflush()그리고PQisnonblocking()그 메모를 받지 못했으니 수정하세요.

  • ecpg, 변수 저장소 클래스가 여러 개일 때 누락되는 문제 수정varchar또는바이테아변수는 동일한 선언젠 토토 선언됩니다(Andrey Sokolov)§

    예를 들어,ecpg번역됨정적 varchar str1[10], str2[20], str3[30];그런 식으로만str1표시됨정적.

  • 다음에서 교차 플랫폼 테이블스페이스 재배치를 허용pg_basebackup(로버트 하스)§

    원격 경로 허용--테이블스페이스-매핑소스 서버가 로컬 시스템과 다른 OS에 있을 수 있으므로 Unix 스타일 또는 Windows 스타일 절대 경로입니다.

  • pg_stat_statements, 이미 해제된 메모리에 대한 액세스 수정(zhaoqigui)§

    다음과 같은 경우에 발생했습니다.pg_stat_statementsa를 추적했습니다롤백확장 쿼리 프로토콜을 통해 실행된 명령입니다. 디버그 빌드젠 토토는 지속적으로 어설션 오류가 발생했습니다. 프로덕션 빌드젠 토토는 눈에 띄는 부작용이 없는 경우가 많습니다. 그러나 해제된 메모리가 이미 재사용된 경우 쿼리 문자열에 대한 가비지가 저장될 가능성이 높습니다.

  • postgres_fdw, EvalPlanQual 계획을 위해 구성된 대상 목록에 모든 필수 열이 있는지 확인하십시오(Richard Guo, Etsuro Fujita)§

    이것은 방지합니다하위 계획 대상 목록젠 토토 변수를 찾을 수 없음드물게 오류가 발생합니다.

  • 플랫폼젠 토토 원하지 않는 출력을 거부uuid_create()기능 (Nazir Bilal Yavuz)§

    uuid-ossp모듈은 libc를 기대합니다uuid_create()버전 1 UUID를 생성하지만 최근 NetBSD 릴리스에서는 대신 버전 4(임의) UUID를 생성합니다. 확인해보시고, 그렇다면 항의하세요. NetBSD 구현을 사용할 수 있다는 문서의 주장을 삭제하세요.uuid-ossp. (버전 4 UUID가 귀하의 목적에 적합한 경우에는 필요하지 않습니다.uuid-ossp전혀; 그냥 사용하세요gen_random_uuid().)

  • 표준 설치에 새로운 Perl 테스트 모듈 포함(Álvaro Herrera)§

    추가PostgreSQL/테스트/Cluster.pm그리고PostgreSQL/테스트/Utils.pm15 이전 버전 브랜치에 설정된 표준 설치 파일에 추가됩니다. 이는 이전 브랜치에서 새로 작성된 테스트 코드를 사용하려는 확장 프로그램을 위한 것입니다.

  • NetBSD젠 토토는 포스트마스터 시작 시 동적 기호 확인을 강제합니다(Andres Freund, Tom Lane)§

    이것은 NetBSD 10의 동적 링커젠 토토 교착 상태의 위험을 방지합니다.

  • LLVM 15와의 비호환성 수정(Thomas Munro, Andres Freund)§

  • 사용 허용__sync_lock_test_and_set()모든 기계의 스핀록용(Tom Lane)§

    이것은 적어도 이 GCC 내장 기능을 지원하는 컴파일러를 사용하는 경우 새로운 기계 아키텍처로의 포팅을 용이하게 합니다.

  • 기호 이름 바꾸기REFREF_P최근 macOS젠 토토 컴파일 실패를 방지하기 위해(Tom Lane)§

  • 사용하지 마세요스프린트f, 컴파일 시간 지원 중단 경고를 방지하기 위해(Tom Lane)§

  • clang 15 이상젠 토토 다양한 컴파일러 경고 음소거(Tom Lane)§ § §

  • 다음으로 시간대 데이터 파일 업데이트tzdata25287_25460§

    또한 유럽/키예프 지역의 이름이 유럽/키예프로 변경되었습니다. 또한 다음 구역은 1970년 이후 시계가 일치하는 더 인구가 많은 인근 구역으로 병합되었습니다: 남극 대륙/보스토크, 아시아/브루나이, 아시아/쿠알라_룸푸르, 대서양/레이캬비크, 유럽/암스테르담, 유럽/코펜하겐, 유럽/룩셈부르크, 유럽/모나코, 유럽/오슬로, 유럽/스톡홀름, 인도/크리스마스, 인디언/코코스, 인디언/케르겔렌, 인디언/마헤, 인디언/리유니온, 퍼시픽/추크, 퍼시픽/푸나푸티, 퍼시픽/마주로, 퍼시픽/폰페이, 퍼시픽/웨이크 및 퍼시픽/월리스. (이는 이미 Arctic/Longyearbyen, Atlantic/Jan_Mayen, 아이슬란드, Pacific/Ponape, Pacific/Truk 및 Pacific/Yap 중 하나에 연결된 구역에 간접적으로 영향을 미칩니다.) America/Nipigon, America/Rainy_River, America/Thunder_Bay, Europe/Uzhgorod 및 Europe/Zaporozhye도 1970년 이후 주장된 구역과 차이점이 있다는 사실을 발견한 후 인근 구역으로 병합되었습니다. 오류였을 겁니다. 이러한 모든 경우에 이전 영역 이름은 별칭으로 유지됩니다. 하지만 실제 데이터는 병합된 영역의 데이터입니다.

    이러한 영역 병합으로 인해 병합된 영역에 대한 1970년 이전 시간대 기록이 손실되며 이는 일관성을 기대하는 응용 프로그램에 문제가 될 수 있습니다.timestamptz디스플레이. 예를 들어, 저장된 값1944-06-01 12:00 UTC이전에는 다음과 같이 표시되었습니다.1944-06-01 13:00:00+01유럽/스톡홀름 지역이 선택되었지만 이제 다음과 같이 읽혀지는 경우1944-06-01 14:00:00+02.

    이전 구역 데이터를 복원하는 옵션을 사용하여 시간대 데이터 파일을 구축하는 것이 가능하지만 그 선택은 또한 많은 다른 오래된(일반적으로 제대로 증명되지 않은) 구역 데이터를 삽입하므로 이러한 업스트림 변경 사항을 허용하는 것보다 이전 릴리스에서 더 많은 총 변경 사항이 발생합니다.PostgreSQL배송을 선택했습니다tzdb데이터는 권장 사항이며, 우리가 아는 한 대부분의 주요 운영 체제 배포판도 마찬가지입니다. 그러나 이러한 변경으로 인해 애플리케이션에 심각한 문제가 발생하는 경우 가능한 해결책은 다음을 사용하여 시간대 데이터 파일의 로컬 빌드를 설치하는 것입니다.tzdb의 이전 버전과의 호환성 옵션(해당 항목 참조패키지 데이터그리고패키지 목록옵션).

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.