E.16. 릴리스 14.3

출시 날짜 :2022-05-12

이 릴리스에는 14.2의 다양한 수정 사항이 포함되어 있습니다. Major Release 14의 새로운 기능에 대한 정보는 참조윈 와이즈 토토 PostgreSQL : 문서 : 14 : E.18. 릴리스 14.

E.16.1. 버전 14.3으로의 마이그레이션

14.x.를 실행하는 사람들에게는 덤프/복원이 필요하지 않습니다.

그러나 유형의 열에 GIST 인덱스가있는 경우ltree( 제공Contrib/ltreeExtension), 업데이트 후 다시 표시해야합니다. 아래 두 번째 ChangeLog 항목을 참조하십시오.

또한 14.2 이전 버전와이즈 토토 업그레이드하는 경우 참조와이즈 토토 사이트 추천 PostgreSQL : 문서 : 14 : E.16. 릴리스 14.2.

E.16.2. 변화

  • 내와이즈 토토 추가 작업을 제한보안 제한 작업샌드 박스 (Sergey Shinderuk, Noah Misch)§ §

    autovacuum,클러스터, 색인 생성, Reindex, 상쾌한 뷰PG_AMCHECK활성화보안 제한 작업보호 메커니즘이 너무 늦거나 일부 코드 경로와이즈 토토도 전혀 그렇지 않습니다. 데이터베이스 내와이즈 토토 비 임시 객체를 생성 할 수있는 권한이있는 사용자는 다음 번에 AutoVacuum이 객체를 처리했거나 일부 수퍼 사용자가 영향을받는 명령 중 하나를 실행 한 후 슈퍼 사용자 권한으로 임의의 SQL 코드를 실행하는 객체를 정의 할 수 있습니다.

    thePostgreSQL프로젝트 감사합니다.이 문제를보고 한 Alexander Lakhin. (CVE-2022-1552)

  • 기본 서명 길이 수정gist_ltree_ops인덱스 (Tomas Vondra, Alexander Korotkov)§

    GIST 인덱스의 기본 서명 길이 (해시 크기)ltree열은 운영자 클래스 매개 변수를 지원하기 위해 해당 연산자 클래스를 업그레이드하는 동안 실수로 변경되었습니다. 처음 업그레이드하지 않고 그러한 색인와이즈 토토 작업이 수행 된 경우ltree버전 1.2로 확장하여, 서명 길이가 의도 된 8이 아닌 28 바이트라고 가정했을 때 완료되었습니다. 이는 이제 그러한 인덱스가 손상되었을 가능성이 매우 높다는 것을 의미합니다. 안전을 위해 모든 GIST 인덱스를 다시 표시하는 것이 좋습니다ltree이 업데이트를 설치 한 후 열. (GIST가 색인으로 표시됩니다ltree []열, 그것은 배열입니다ltree, 영향을받지 않습니다.)

  • 일반 테이블 (Tom Lane)을 참조하는 전체 열 변수 열에 대한 쿼리로 제공 된 열 별칭 사용 중지§

    전체 열 변수에 의해 생성 된 튜플의 열 이름 (예 :tbl.*A의 최상위 레벨 이외의 컨텍스트와이즈 토토selectList)는 이제 항상 관련된 Composite 유형이있는 경우 항상 관련된 Composite 유형의 것입니다. 우리는 이전에 그들에게 적용된 열 별칭을 추적하려고 시도했습니다.From변수가 참조합니다. 그러나 그것은 의미 적으로 모호합니다. 실제로 변수의 출력은 모든 복합 유형이 아니기 때문입니다. 그 불일치를 다루려는 이전의 시도는 읽을 수없는 데이터를 디스크에 저장하는 것을 포함하여 나쁜 결과를 얻었으므로 전체 아이디어를 포기하십시오.

    그러한 열을 다시 부를 수있는 것이 중요한 경우, 해결 방법은 추가 수준의 하위를 도입하는 것입니다selectselect의 출력은 일반 테이블이 아닙니다. 그런 다음 변수는 유형입니다레코드처음에는 문제가 없습니다.

  • 간격 (Peter Eisentraut)와이즈 토토 에포크 값을 추출 할 때 잘못된 라운드 오프 수정§

    새로운숫자-기반 코드Extract ()이전과 동등한 결과를 얻지 못했습니다float-기반 코드, 우연히 자르는 결과days_per_year정수에 대한 가치.

  • 방어pg_stat_get_replication_slot (null)(Andres Freund)§

    이 기능은 카탈로그 데이터에 엄격하게 표시되어야하지만 V14에 있지 않으므로 대신 런타임 확인을 추가하십시오.

  • 유형에 대한 잘못된 출력 수정TimesTamptzTIMETZintable_to_xmlschema ()및 동맹 기능 (Renan Soares Lopes)§

    이러한 유형의 XMLSCHEMA 출력에는 정규 표현이 포함되어 있습니다.

  • a의 코어 덤프를 피하십시오0 열이있는 조항 (Tom Lane)§

  • 결과 계획 노드가 부속 노드 바로 아래에 나타날 때 플래너 실패 수정§

    비동기 원격 쿼리를 지원하기위한 최근에 구세 된 코드이 케이스를 처리하지 못해서 인식되지 않은 노드 유형에 대한 충돌 또는 오류가 발생합니다.

  • 쿼리를 사용하는 경우 플래너 실패 수정검색또는사이클기능은 중복 CTE 이름을 포함합니다 (Tom Lane, Kyotaro Horiguchi)§

    재귀 이름의 이름 일 때with쿼리 자체가 재사용되면 플래너는 충돌하거나 홀수 오류를보고 할 수 있습니다.하위 쿼리 targetlist와이즈 토토 속성 2를 찾을 수 없습니다.

  • 플래너 오류 수정grouping ()외부 쿼리 레벨을 참조하는 구성 (Richard Guo, Tom Lane)§

  • 리턴 가능 및 회전식 열 (Tom Lane)을 사용하여 인덱스에 대한 인덱스 전용 스캔을위한 계획 생성 수정§

    이전 코딩은 리턴 가능한 열 외에도 회전 할 수없는 열을 읽을 수 있습니다. 이것은 실제로 가짜 값으로 아무것도하지 않았기 때문에 상당히 무해했지만, 그러한 계획을 거부 한 최근에 수용된 오류 검사를 파울했습니다..

  • 평가 플랜 퀴 (Tom Lane) 동안 구식 튜플을 잠그려고 시도하는 동안 곤란하지 않은 공유 버퍼에 액세스하지 마십시오§

    코드는 핀을 풀고 난 후에 버퍼를 몇 번 더 터치합니다. 이론적으로 다른 프로세스는 핀이 사라지 자마자 버퍼를 재활용 할 수 있습니다 (또는 더 많은 여유 공간을 탈취하려고합니다). 아마도 새로운 버전의 튜플을 찾지 못할 수도 있습니다..

  • 재주문을 수행하는 indexscan 노드에서 쿼리 리 플라이 스팬 메모리 누출 수정 (aliaksandr kalenik)§

  • 수정Alter Function함수의 병렬 처리 속성 변경을 지원하려면set같은 명령의 변수 목록 (Tom Lane)§

    동일한 명령이 함수의 업데이트 된 경우 병렬 처리 속성 변경이 손실되었습니다set절.

  • 인덱스 조회 조임소유제약 조건 (Tom Lane, Japin Li)§

    일부 코드 경로는 인덱스가 고유 또는 기본 키 제약 조건이 소유 한 외래 키 제약 조건에 의존하여 특정 동안 홀수 오류가 발생합니다.Alter Table외국의 주요 제약 조건이있는 테이블의 작업.

  • 테이블의 시스템 열을 변경하려는 시도에서 가짜 오류 수정 (Tom Lane)§

    시스템은 당신이 할 수 없다고 말해야하지만 때로는보고 할 것입니다소유 시퀀스 없음대신.

  • the클러스터주요 키가 표현 인 인덱스 사용 (Peter Geoghegan, Thomas Munro)§

    테이블은 올바른 데이터로 재건되지만 인덱스 순서와는 거의 관련이없는 순서로

  • 정렬 된 GIST 인덱스 빌드 (Heikki Linnakangas) 직후 시스템 충돌이 발생하는 경우 데이터 손실 방지§

    정렬을 사용하여 GIST 인덱스 구축을위한 코드 경로fsync완료시 파일. 이로 인해 운영 체제가 곧 추락하면 인덱스가 손상 될 수 있습니다.

  • 분할 된 지수를 떨어 뜨리는 동안 교착 상태 실패 위험 수정 (Jimmy Yih, Gaurab Dey, Tom Lane)§

    필요한 테이블과 인덱스 잠금이 표준 순서 (어린이 이전의 부모, 색인 전 테이블)로 가져 가는지 확인하십시오. 이전 코딩Drop Index다르게했으며, 이러한 잠금 장치를 표준 순서로 가져가는 동시 쿼리에 대한 교착 상태가 될 수 있습니다.

  • 드롭 테이블 스페이스및 체크 포인팅 (Nathan Bossart)§

    검사 점이드롭 테이블 스페이스때때로 테이블 스페이스 디렉토리와이즈 토토 모든 죽은 파일을 제거하지 못하여 가짜로 이어질 수 있습니다테이블 스페이스가 비어 있지 않습니다오류.

  • a 이후 충돌 회복와이즈 토토 가능한 문제 해결Truncate검문소와 겹치는 명령 (Kyotaro Horiguchi, Heikki Linnakangas, Robert Haas)§ §

    Truncate체크 포인트가 완료되기 전에 테이블의 디스크 파일이 잘립니다. 그렇지 않으면, 해당 체크 포인트와이즈 토토 시작하여 재생되는 페이지와이즈 토토 예상치 못한 데이터를 찾을 수 있으므로 재생 고장을 일으킬 수 있습니다.

  • 임시 객체 정리 중에 안전하지 않은 토스트 데이터 액세스 수정 (Andres Freund)§

    서버 프로세스 중에 임시 객체 삭제가 실패 할 수 있습니다Fatal : 활성 스냅 샷 없이는 토스트 데이터를 가져올 수 없습니다. 임시 스키마를 다음으로 사용하면 성공적으로 정리할 수 있기 때문에 일반적으로 무해했습니다.

  • 사용자 정의 매개 변수 이름 (japin li)의 첫 번째 문자로서 밑줄을 재발§

    그러한 이름은 V14와이즈 토토 의도하지 않게 허용되지 않았습니다.

  • add회귀옵션compute_query_id매개 변수 (Michael Paquier)§

    이것은 쿼리 ID를 계산할 수 있지만 표시되지 않도록하여 테스트를 용이하게하기위한 것입니다설명출력.

  • RegisterSyncRequest (Thomas Munro)와이즈 토토 대기 논리 개선§

    체크 포인터 동기화 요청 큐와이즈 토토 공간이 부족한 경우 (실제 시스템와이즈 토토는 희망적이지만 매우 작은 버퍼 풀로 테스트 할 때 일반적이면) 소모되기를 기다립니다. 대기 중에, 우리는 대기 이벤트로서 사용자가 무슨 일이 일어나고 있는지 알 수있게하고 포스트 마스터 사망을 지켜 볼 수 있도록보고해야합니다. 그렇지 않으면 체크 포인터가 이미 종료 된 경우 루프가 종료되지 않을 수 있기 때문입니다..

  • 체크 포인터가 Writes (Thomas Munro) 사이에 대기 할 때 래치 이벤트를 위해 일어나기§ §

    이것은 동기화 요청 전송에 대한 응답 성을 향상시킵니다. 이 변경은 또한이 대기에 대한 적절한 대기 이벤트 클래스를 만듭니다.

  • 수정panic : Xlog 플러시 요청이 만족스럽지 않습니다누락 된 WAL 연속 기록이있을 때 대기 프로모션 중 실패 (Sami Imseih)§

  • 뜨거운 대기 충돌 처리 (Andres Freund)에서 자체-사상의 가능성 수정§ § §

    운이 좋지 않은 타이밍으로 Wal-Applying 프로세스는 다른 프로세스를 버퍼 잠금 장치를 해제하기를 기다리는 동안 갇힐 수 있습니다.

  • 논리적 복제를 게시하기위한 올바른 조상 관계를 잘못 식별 할 수있는 수정 (Tomas Vondra, Hou ZJ, Amit Kapila)§

    ifpublish_via_partition_root가 활성화되어 있으며 현재 수정 된 관계의 다른 조상을 지명하는 여러 개의 출판물이 있으며, 그 변화를보고하기 위해 잘못된 조상이 선택 될 수 있습니다..

  • 논리적 복제 적용 근로자가 우리가 |max_sync_workers_per_subscriptionLimit (Amit Kapila)§

    한도 점검의 결함 코딩으로 인해 다시 시작 된 작업자가 즉시 종료되었으므로 근로자가 더 적어야합니다.

  • 업데이트를 위해 WAL 로그에 변경되지 않은 복제 아이덴티티 키 열을 포함 시키십시오 (Dilip Kumar, Amit Kapila).§

    그렇지 않으면 가입자는 값을 볼 수 없으며 업데이트를 복제하지 못할 것입니다.

  • 서버 프로세스의 디스플레이 변경에 대한 지원이없는 플랫폼으로 올바르게 대처하십시오PS (1)(Andrew Dunstan)§

    플랫폼은 거의 없습니다 (유일한 지원되는 것은 Cygwin입니다). 그래서 우리는 리팩토링이 잠재적 인 메모리 클로버를 도입했다는 것을 알지 못했습니다.

  • 누락 된 타이머 인터럽트 (Michael Harris, Tom Lane)에 대해 서버를 더 강력하게 만듭니다.§

    v14에 추가 된 최적화는 서버 프로세스가 어떻게 든 타이머 인터럽트를 놓친 경우 다시 커널을 다른 세션에 대해 묻지 않아서 나머지 세션의 시간 초과 감지를 깨뜨리지 않을 것임을 의미합니다. 이것은 부지런히 취약 해 보이므로 복구 경로를 추가하십시오.

  • PL/PERL 기능 컴파일 중 SPI 기능 실행을 허용하지 않습니다 (Tom Lane)§

    PERL은 PL/PERL 기능을 컴파일하는 동안 사용자 정의 코드를 실행하도록 확신 할 수 있습니다. 그러나 그러한 코드가 SPI를 통해 SQL 작업을 호출하려고 시도하는 것은 좋지 않습니다. 이로 인해 충돌이 발생하고 충돌이 발생하지 않으면 기능 검증 중에 코드 실행을 원하지 않기 때문에 보안 위험이됩니다. 대신 더 친근한 오류 메시지를 제공하기 위해 수표를 넣으십시오.

  • 만들기libpq루트 소유 SSL 개인 키 파일 (David Steele) 수락§ §

    이 변경은 동기화libpq의 안전한 소유권 및 SSL 키 파일의 안전한 규칙 및 릴리스 9.6 이후 서버가 사용한 규칙이있는 규칙. 즉, 현재 규칙 외에도 키 파일이 루트가 소유하고 권한이있는 경우RW-R -----이하. 이것은 주요 파일의 시스템 전체 관리에 도움이됩니다.

  • 행동 수정libpq'spqisbusy ()연결 고장 후 기능 (Tom Lane)§

    쓰기 실패를 감지 한 경우pqisbusy ()항상 True를 반환합니다. 이것은 잘못된 것입니다. 우리는 서버와이즈 토토 사용할 수있는 모든 것을 읽을 때까지 입력 처리가 정상적으로 수행되기를 원합니다. 이 오류의 실질적인 효과는를 사용한 응용 프로그램이라는 것입니다.libpq의 비동기 쿼리 API는 일반적으로 연결 손실을 감지 할 때만pqconsumeInput ()하드 실패를 반환합니다. 이 수정으로 연결 손실은 일반적으로 오류를 통해보고됩니다pgresult객체, 대부분의 응용 프로그램와이즈 토토 훨씬 더 깨끗한 동작입니다.

  • Realow데이터베이스.스키마.테이블패턴PSQL, pg_dumpPG_AMCHECK(Mark Dilger)§ §

    v14 전의 버전은 모든 것을 제외한 모든 것을 무시했습니다스키마and테이블하나 이상의 점을 포함하는 패턴의 조각. V14의 리팩토링은 우연히 그 사용 사례를 깨뜨 렸습니다. 그것을 복원하지만 이제 첫 번째 조각이 현재 데이터베이스의 이름이 아닌지 불평합니다.

  • makePG_CTL정지/재시작/홍보 조치를 기다리는 동안 우체국 장 마스터 생존을 다시 확인합니다 (Tom Lane)§

    PG_CTL우체국 장은 정지 또는 홍보 신호를 보내는 부작용으로 살아 있는지 확인하지만, 디스크 상태 변경을보기 위해 순진하게 기다렸다. Postmaster가 PID 파일을 제거하거나 제어 파일을 업데이트하지 않고 부정하게 사망 한 경우PG_CTL타임 아웃까지 기다릴 것입니다. 대신 포스트 마스터 프로세스가 여전히 존재하기 때문에 자주 재충전하게하십시오.

  • 오류 처리 수정pg_waldump(Kyotaro Horiguchi, Andres Freund)§ §

    WAL 세그먼트 크기를 결정하기 위해 WAL 파일을 읽으려고하는 동안pg_waldump너무 신고 파일의 경우 잘못된 오류를보고합니다. 또한이 파일 이름 및 관련 오류 메시지에보고 된 파일 이름은 쓰레기가 될 수 있습니다.

  • Contrib/PageInspect함수 all-zero 페이지 (Michael Paquier)에 대처하는 기능§

    이것은 합법적 인 가장자리 사례이지만 모듈은 대부분 준비되지 않았습니다. 적절하게 널을 반환하거나 줄이 없도록 준비하십시오. 오류를 높이는 것보다 더 유용한 것 같습니다.

  • inContrib/PageInspect, 잘못된 페이지에 대한 방어 추가특별 공간내용, 올바른 페이지 크기에 대한 검사를 조이고 인덱스가 예상 유형 인 경우 누락 된 점검을 추가합니다 (Michael Paquier, Justin Pryzby, Julien Rouhaud)§ § §

    이러한 변경 사항은 모듈이 잘못된 데이터에 충돌 할 가능성이 적습니다.

  • inContrib/Postgres_FDW, 배치 삽입 비활성화삽입 전 ... 각 행에 대해외국 테이블 (Etsuro Fujita)에 트리거가 존재합니다§

    이러한 트리거는 켜져있는 테이블을 쿼리하고 이전에 삽입 된 행을 볼 것으로 예상됩니다. 배치 삽입을 사용하면 해당 행이 아직 보이지 않을 수 있으므로 예상치 못한 동작을 피하기 위해 기능을 비활성화합니다.

  • inContrib/Postgres_FDW, 확인주문 by클로스는 원격 주문 쿼리를 요청하기 전에 배송하기에 안전하며 A 포함사용필요한 경우 조항 (Ronan Dunklau)§

    이 수정은 원격 서버가 의도 한 것과 다른 순서로 정렬 될 수있는 상황을 방지합니다. 때로는 화장품 일 뿐이지 만, 원격 데이터가 로컬로 성능이 좋은 병합 조인의 입력으로 사용되면 철저히 잘못된 결과를 얻을 수 있습니다..

  • 수정구성가지고있는 플랫폼을 처리하려면Sys/epoll.h하지만SYS/SILLFD.H(Tom Lane)§

  • 업데이트jitLLVM 14 (Thomas Munro)와 함께 작동하는 코드§

  • 분류 실패 청소Clang's-fsanitize = undefinedChecks (Tom Lane, Andres Freund, Zhihong Yu)§ § § § §

    이러한 변경 사항의 대부분은 C 및 Posix 표준의 편지를 준수하는 것이며 생산 빌드에 영향을 미치지 않을 것입니다.

  • OpenSSL 종속성을 추가하지 마십시오libpq'spkg-configOpenSSL (Fabrice Fontaine)없이 빌드시 파일§

  • PL/PERL을 수정하여 표현식 (Tom Lane) 내에 중첩 된 문장을 지원하지 않는 C 컴파일러를 구축합니다.§

  • 가능한 빌드 실패 수정pg_dumpallWindows에서 MSVC를 사용하여 빌드 (Andres Freund)를 사용하지 않을 때§

  • Windows 빌드에서 사용gendef대신PexportsDEF 파일을 작성하려면 (Andrew Dunstan)§

    이것은 최근 MSYS 도구 체인와이즈 토토 작동하도록 빌드 프로세스를 조정합니다.

  • Mingw (Andrew Dunstan) 아래에 구축 된 프로그램에서 쉘 와일드 카드 패턴의 추가 확장 방지§

    어떤 이유로 Mingw가 제공 한 C 라이브러리는 기본적으로 프로그램의 명령 줄 인수에서 쉘 와일드 카드 문자를 확장합니다. MSVC에서는 발생하지 않기 때문에 혼란 스러워요.

  • 시간대 데이터 파일 업데이트TZDATA팔레스타인의 DST 법률 변경에 대한 릴리스 2022A와 칠레와 우크라이나의 역사적 교정. (Tom Lane)§

정정 제출

올바르지 않은 문서에 아무것도 표시되면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면