토토 노트

토토

E.3. 토토 9.5.23

출시 날짜 : 2020-08-13

이 토토에는 9.5.22의 다양한 수정 사항이 포함되어 있습니다. 9.5 주요 토토의 새로운 기능에 대한 정보는 참조섹션 E.26.

the토토Community는 2021 년 2 월 9.5.x 토토 시리즈의 업데이트 출시를 중단합니다. 사용자는 곧 새로운 토토 지점으로 업데이트하는 것이 좋습니다.

E.3.1. 버전 9.5.23으로의 마이그레이션

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

그러나 9.5.20 이전 버전에서 업그레이드하는 경우 참조섹션 E.6.

E.3.2. 변화

  • Contrib 모듈의 설치 스크립트를보다 안전하게 만듭니다 (Tom Lane)

    공격자가 Extension의 대상 스키마 또는 일부 전제 조건 확장 스키마에서 개체를 생성 할 수있는 경우 CVE-2018-1058에 설명 된 것과 유사한 공격은 확장 설치 스크립트에 대해 수행 될 수 있습니다. 확장자는 종종 슈퍼 업체 권한을 설치해야하므로 슈퍼 사용자 권한을 얻는 경로를 열 수 있습니다.search_path설치 스크립트를 실행하는 데 사용됩니다. 장애를 입히다​​check_function_bodies스크립트 내; 일부 Contrib 모듈에 사용 된 카탈로그 조정 쿼리를 고정하여 안전하게 보장합니다.

  • 논리적 복제 walsender에서 requalive 메시지 (Álvaro Herrera) 후 피드백 메시지를 보내지 않는 실패 수정

    내장 된 Walreceiver가 어쨌든 피드백 응답 (잘못된 상태를 지우는)을 상당히 자주 보낼 수 있기 때문에 내장 논리 복제를 사용할 때 비교적 작은 문제입니다. 그러나 다른 복제 시스템과 같은pglogical, 상당한 성능 문제를 일으킨다.

  • 반복 ()Query Cancel (Joe Conway)에 의해 기능을 중단 할 수 있습니다

  • 인덱스 이름의 이중 인용 실행 취소설명의 비 텍스트 출력 형식 (Tom Lane, Euler Taveira)

  • 제약 조건 재 방문 타이밍 수정Alter Table(David Rowley)

    ifAlter Table테이블의 내용을 완전히 다시 작성해야하며 (예 : 열의 데이터 유형 변경으로 인해) 테이블을 스캔하여 외래 키를 다시 검증하거나check제약 조건, 때로는 잘못된 순서로 작업을 수행하여와 같은 홀수 오류로 이어집니다."파일에서 블록 0을 읽을 수 없음"base/nnnnn/nnnnn ": 8192 바이트 0의 0 만 읽기".

  • 대처측면변형되지 않은 하위에 첨부 된 제한 조항의 참조selectinFrom절 (Tom Lane)

    이 감독은 쿼리 실행시 주장 실패 또는 충돌을 초래할 수 있습니다.

  • 절대 분석되지 않은 외국 테이블에는 튜플이 제로가 있다고 믿지 마십시오 (Tom Lane)

    이것은 주로 획득 할 그룹 수에 대한 플래너의 추정치에 영향을 미쳤습니다그룹 by.

  • 서버의 오류 처리 개선Buffile모듈 (Thomas Munro)

    I/O 오류가 EOF에 도달 할 수 없거나 전혀보고되지 않은 경우 일부 경우를 수정하십시오. 또한 블록 번호 및 바이트 카운트와 같은 세부 사항을 추가하십시오.

  • 충돌 수정SERIALIZALE격리 모드 (Peter Geoghegan)

    동시에 튜플이 다른 동시 트랜잭션으로 업데이트 된 경우, 현재 트랜잭션의 스냅 샷에 튜플 버전이 보이지 않았으며, 직렬화 충돌 점검은 튜플이 현재 트랜잭션의 결과와 관련이 있는지에 대한 잘못된 결론을 도출 할 수 있습니다. 이를 통해 직렬화 오류로 실패했을 때 직렬화 가능한 트랜잭션이 커밋 될 수 있습니다.

  • 죽은 Btree Index 항목의 반복적 인 표시를 피하십시오 (Masahiko Sawada)

    기능적으로 무해하지만, 이로 인해 체크섬이 활성화 될 때 쓸모없는 WAL 트래픽이 발생했거나Wal_log_hints켜져 있습니다.

  • 수정하기 전에 올바른 잠금 장치를 얻기 위해 일부 코드 경로의 실패 수정PG_CONTROL(Nathan Bossart, Fujii Masao)

    이 감독은 허용 할 수 있습니다PG_CONTROL일관되지 않은 체크섬으로 작성하려면 다음에 데이터베이스를 다시 시작할 때 데이터베이스를 다시 시작할 수 없음을 포함하여 나중에 문제를 일으킬 수 있습니다PG_CONTROL업데이트.

  • 오류 수정currtid ()currtid2 ()(Michael Paquier)

    이 기능 (문서화되지 않고 고대 버전의 ODBC 드라이버에서만 사용됨)은 충돌을 초래할 수있는 코딩 오류가 포함되어 있거나와 같은 오류 메시지가 혼란스러워집니다."파일을 열 수 없다"저장소가없는 관계에 적용될 때.

  • 전화 방지elog ()또는palloc ()스핀 록을 들고있는 동안 (Michael Paquier, Tom Lane)

    복제 슬롯과 관련된 논리는이 코딩 규칙을 여러 차례 위반했습니다. 문제가 발생할 확률은 상당히 낮지 만, 호출 된 함수의 오류는 스피 록이 고정 될 것입니다.

  • 디스크 외 공간 오류를 올바르게보고pg_dumpPG_BASEBACKUP(Justin Pryzby, Tom Lane, Álvaro Herrera)

    일부 코드 경로는와 같은 바보 같은 보고서를 생성 할 수 있습니다."파일을 쓸 수 없다 : 성공".

  • 테이블 레벨 권한과 컬럼 당 특권을 모두 갖는 테이블의 병렬 복원 수정 (Tom Lane)

    테이블 레벨 권한 보조금을 먼저 적용해야하지만 병렬 복원이 그렇게 할 수있는 방식으로 주문하지는 않았습니다. 이것은로 이어질 수 있습니다."튜플 동시에 업데이트 된"오류 또는 일부 열당 특권 보조금의 실종. 이에 대한 수정은 아카이브 파일의 이러한 항목간에 종속성 링크를 포함하는 것입니다. 즉, 새 덤프는 수정 된 상태에서 가져와야합니다pg_dump문제가 재발하지 않도록합니다.

  • pg_upgradeVACUUM_DEFER_CLEANUP_AGE대상 클러스터에서 0으로 설정 (Bruce Momjian)

    대상 클러스터의 구성이 설정되도록 수정 된 경우VACUUM_DEFER_CLEANUP_AGE0이 아닌 값으로, 시스템 카탈로그의 동결이 제대로 작동하지 않아서 업그레이드가 혼란스러운 방식으로 실패했습니다. 업그레이드 기간 동안 그러한 설정이 상정되는지 확인하십시오.

  • 수정PG_RECVLOGICAL종료하기 전에 보류중인 메시지를 배출하려면 (Noah Misch)

    이 없이는 복제 발신자가 복제 슬롯의 LSN 위치에 대한 최종 업데이트 없이는 전송 실패를 감지하고 종료 할 수 있습니다. 이로 인해 다음 연결 후 데이터를 다시 전송했습니다.PG_RECVLOGICAL소비를 원합니다.

  • 수정pg_rewind의 소스 데이터 디렉토리 (Justin Pryzby, Michael Paquier)에서 방금 삭제 된 파일 처리

    온라인 소스 데이터베이스로 작업 할 때 동시 파일 삭제가 가능하지만pg_rewind파일의 디렉토리 항목을보고 검사하는 사이에 삭제가 발생하면 혼란 스러울 것입니다stat ().

  • makePG_TEST_FSYNCWindows에서 이진 I/O 모드 사용 (Michael Paquier)

    이전에는 테스트 파일을 텍스트 모드로 썼는데, 이는 정확한 반영이 아닙니다토토의 실제 사용법.

  • 로컬 상태를 올바르게 초기화하지 못하는 수정Contrib/DBlink(Joe Conway)

    올바른 상황 조합을 통해 이것은로 이어질 수 있습니다.dblink_close ()예기치 않은 원격 발행커밋.

  • 수정contrib/pgcrypto의 오용deflate ()(Tom Lane)

    thepgp_sym_encrypt함수는 잘못된 압축 데이터를 생성 할 수 있습니다Zlib의 API 요구 사항. 우리는이 오류가 주식으로 나타나는 보고서가 없습니다Zlib, 그러나 IBM을 사용할 때 볼 수 있습니다Zlibnx구현.

  • 감압 로직에서 코너 케이스 수정contrib/pgcrypto'spgp_sym_decrypt기능 (Kyotaro Horiguchi, Michael Paquier)

    압축 스트림은 빈 패킷으로 유효하게 끝날 수 있지만, 압축 압력기는이를 처리하지 못했고 손상된 데이터에 대해 불평 할 것입니다..

  • posix-standardstrsignal ()BSD-ish 대신SYS_SIGLIST [](Tom Lane)

    이것은 매우 최근 버전의로 빌드 실패를 피합니다.glibc.

  • Microsoft Visual Studio 2015를 사용하여 NLS 코드 구축을 지원합니다 (Juan José Santamaría Flecha, Davinder Singh, Amit Kapila)

  • MSVC의 실패를 피하십시오.구성소스 코드 트리 위의 여러 레벨 (Arnold Müller)

    이것은 찾은 논리를 혼란스럽게 할 수 있습니다구성소스 트리의 최상위 레벨을 식별하려면