토토 베이 노트

PostgreSQL

E.10. 토토 베이 9.5.16

출시 날짜 : 2019-02-14

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

E.10.1. 버전 9.5.16으로의 마이그레이션

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

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

E.10.2. 변화

  • 기본적으로, 이후에 재 시도하는 대신 공황fsync ()실패, 가능한 데이터 손상을 피하기 위해 (Craig Ringer, Thomas Munro)

    일부 인기있는 운영 체제는 쓸 수 없을 때 커널 데이터 버퍼를 폐기하여 이것을보고fsync ()실패. 우리가 재발행한다면fsync ()요청은 성공할 것이지만 실제로 데이터가 손실되었으므로 계속되는 위험 데이터베이스 손상이 손상되었습니다. 대신 공황 상태를 높이면 WAL에서 재생할 수 있습니다. WAL은 그러한 상황에서 나머지 데이터 사본을 포함 할 수 있습니다.

    새로운 서버 매개 변수data_sync_retry이것을 제어하기 위해 추가되었습니다. 그러한 시나리오에서 커널이 더러운 데이터 버퍼를 폐기하지 않는다고 확신하면 설정할 수 있습니다.data_sync_retrytoon오래된 행동을 복원하려면

  • 각 주요 릴리스 브랜치의 토토 베이 노트를 해당 지점이 아닌 해당 지점에 대한 문서에만 포함시킵니다.

    이전 정책에 의해 유발 된 복제는 손이 닿지 않았습니다. 우리의 계획은 프로젝트 웹 사이트에서 토토 베이 노트의 전체 아카이브를 제공하는 것이지만 각 릴리스 내에 복제하지는 않습니다.

  • 다중 버퍼 잠금 장치를 얻을 때 가능한 교착 상태를 피하십시오 (Nishant FNU)

  • 핫 스탠드 쿼리와 진 인덱스 삭제의 재생 사이의 교착 상태를 피하십시오 (Alexander Korotkov)

  • 인덱스 표현식 또는 전임자가 사용될 때 논리적 복제에서 가능한 충돌 수정 (Peter Eisentraut)

  • 테이블 재 작성 중에 토스트 데이터의 쓸모없고 값 비싼 논리적 디코딩을 피하십시오 (Tomas Vondra)

  • 동기 복제가 활성화 될 때 WAL 발신자의 서브 세트를 중지하기위한 로직 수정 (Paul Guo, Michael Paquier)

  • 튜플 삭제 WAL 레코드 (Stas Kelvich)에 잘못된 복제 아이덴티티 필드를 쓰지 않도록하십시오.

  • 아카이브가 Archive (David Steele)를 아카이브 할 파일을 선택하면서 WAL 데이터 파일을 통해 WAL 기록 파일을 우선 순위를 정하는 Archiver를 만듭니다

  • 가능한 충돌 수정업데이트다중set서브를 사용한 조항select소스 (Tom Lane)

  • 충돌을 피하십시오libxml2널 오류 메시지를 반환합니다 (Sergio Conde Gómez)

  • Collation 할당의 일관되지 않은 처리로 인한 가짜 그룹 관련 파서 오류 수정 (Andrew Gierth)

    경우에 따라 고려해야 할 표현식이 일치하는 것으로 간주되지 않았습니다. 콜라이트 가능한 데이터 유형에 대한 작업이 포함되어 있으면 일치하지 않았습니다.

  • 비교 기능이 기본이되는지 확인최소 ()또는Greatest ()(Tom Lane)이라고 가정하기보다는 누출이 있습니다.

    BTREE 비교 함수의 실제 정보 유출은 일반적으로 자발적이기가 어렵지만 원칙적으로는 일어날 수 있습니다.

  • 외국 테이블 스캔 (Tom Lane)에서 측면 참조를 평가 해야하는 쿼리의 잘못된 계획 수정

  • 합병 조인 비용의 코너 케이스 과소 평가 (Tom Lane)

    플래너는 외부 키 범위가 내부 키 범위보다 훨씬 작을 때 합병 결합을 선호 할 수 있습니다. 내면에 너무 많은 중복 키가있어서 선택이 좋지 않은 선택입니다..

  • 쿼리에 수천 개의 색인 성 조항 (Tom Lane)이 포함되어있을 때 O (n^2) 시간 성장을 피하십시오.

  • 개선분석의 동시에 업데이트 된 행의 취급 (Jeff Janes, Tom Lane)

    이전에, 진행중인 트랜잭션으로 삭제 된 행은 생략되었습니다분석의 샘플이지만, 이는 그들을 포함하는 것보다 더 많은 불일치로 이어지는 것으로 밝혀졌습니다. 사실상 샘플은 이제의 MVCC 스냅 샷에 해당합니다.분석의 시작 시간.

  • makeTruncate다른 세션의 임시 테이블 인 상속 자식 테이블을 무시합니다 (Amit Langote, Michael Paquier)

    이것은 가져옵니다Truncate다른 명령의 행동과 일치합니다. 이전에는 그러한 사례가 일반적으로 실패로 끝났습니다.

  • 수정Truncate오른쪽 테이블의 통계 카운터 업데이트 (Tom Lane)

    잘린 테이블에 토스트 테이블이 있으면 해당 테이블의 카운터가 대신 재설정되었습니다.

  • 허용Unlisten뜨거운 스탠드 비 모드 (Shay Rojansky)

    이것은 반드시 NO-OP입니다.듣기핫 스탠드 모드에서는 허용되지 않습니다. 그러나 더미 작업을 허용하면 클라이언트의 세션 상태 리 세트 로직이 단순화됩니다.

  • 일부 스키마 및 데이터 유형 권한 목록 (Tom Lane)의 역할 종속성 누락 수정

    경우에 따라 권한이 부여 된 역할을 삭제할 수있었습니다. 이로 인해 즉각적인 문제는 발생하지 않았지만 후속 덤프/재 장전 또는 업그레이드는 실패 할 수 있으며, 모든 수평선 역할 이름에 특권을 부여하려는 시도와 관련된 증상.

  • 제약 조건 이름 변경 후 관계 캐시가 올바르게 업데이트되도록하십시오 (Amit Langote)

  • 남은 임시 테이블을 제거하는 것에 대해 Autovacuum을보다 공격적으로 만들고 남은 임시 테이블을 제거하는 동안Temp(Álvaro Herrera)

    이것은 추락 된 세션의 잔재물이 더 즉시 정리되도록하는 데 도움이됩니다.

  • 빈 진 인덱스 페이지가 너무 빨리 회수되는 것을 방지하여 동시 검색의 실패 (Andrey Borodin, Alexander Korotkov)

  • Float-to-Integer 강제의 에지 사례 고장 수정 (Andrew Gierth, Tom Lane)

    최대 유효한 정수 값보다 약간 높은 값을 거부 한 다음 오버플로하여 대신 최소 유효한 정수를 생성합니다. 또한 최소 또는 최대 정수 값으로 반올림 해야하는 값이 잘못 거부 될 수 있습니다.

  • 허용 설정client_min_messages보다 높음오류(Jonah Harris, Tom Lane)

    이전 에이 변수를 설정할 수있었습니다치명적또는panic, 클라이언트에게 일반 오류 메시지의 전송을 억제하는 효과가 있습니다. 그러나 그것은에 주어진 보증과 상반됩니다.PostgreSQL와이어 프로토콜 사양, 일부 클라이언트가 매우 혼란스러워졌습니다. 해제 된 지점에서는 그러한 설정을 의미로 조용히 처리 하여이 문제를 해결하십시오.오류대신. 버전 12 이상은 그 대안을 모두 거부 할 것입니다.

  • 수정ecpglib사용하려면Uselocale ()또는_configthreadlocale ()선호하는setLocale ()(Michael Meskes, Tom Lane)

    이후setLocale ()는 스레드 로컬이 아니며 스레드-안전이 아닐 수도 있습니다. 이전 코딩은 다중 스레드에서 문제를 일으켰습니다ECPG응용 프로그램.

  • 숫자 데이터에 대한 잘못된 결과 수정ECPG SQLDA(SQL 디스크립터 영역) (Daisuke Higuchi)

    선행 제로가있는 값은 올바르게 복사되지 않았습니다.

  • 수정PSQL's\ G 대상Meta-Command와 함께 작업stdout에 복사(Daniel Vérité)

    이전에대상옵션이 무시되어 사본 데이터가 항상 현재 쿼리 출력 대상으로 이동했습니다.

  • makePSQL의 라텍스 출력 형식은 특수 문자를 올바르게 렌더링합니다 (Tom Lane)

    Backslash 및 일부 ASCII 구두점 문자가 올바르게 렌더링되지 않았으므로 출력의 문서 구문 오류 또는 잘못된 문자로 이어집니다..

  • 수정pg_dump의 기본 키 (Tom Lane)에 대한 간접 종속성으로 구체화 된 뷰 처리

    이것은 그러한 뷰의 덤프 아카이브 항목을 잘못 표현하여 무해한 경고를 유발했습니다"올바른 섹션 순서가 아닌 아카이브 항목"; 덜 무해한,와 같은 레이블에 따라-섹션, 오작동 할 수 있습니다.

  • 일부 플랫폼에서 널 포인터-회의 충돌을 피하십시오pg_dump또는PG_RESTORE오류를보고하려고합니다 (Tom Lane)

  • 수정Contrib/Hstore빈의 올바른 해시 값을 계산하려면hstore버전 8.4 또는 그 이전 (Andrew Gierth)에서 생성 된 값

    이전 코딩은 빈과 같은 결과를 제공하지 않았습니다hstore최신 버전으로 생성 된 값이므로 해시 조인 또는 해시 집계에 잘못된 결과가 발생할 수 있습니다. 구축 된 해시 인덱스를 다시 알리는 것이 좋습니다hstore열, 테이블에 원래 8.4까지 저장된 데이터가 포함되어 있고 그 이후로 덤프/다시로드되지 않은 데이터가 포함될 수 있습니다.

  • 큰 입력으로 충돌 및 과도한 런타임을 피하십시오Contrib/Intarray'sgist__int_ops색인 지원 (Andrew Gierth)

  • 조정구성의 스레딩 관련 컴파일러 플래그 및 라이브러리 선택이 나중에 일치합니다PostgreSQL토토 베이 DO (Tom Lane)

    9.4 및 9.5 지점에서 이전에 사용 된 코딩은 일부 새로운 플랫폼에서 완전히 실패하므로 9.6 이상이 수행 한 작업과 동기화됩니다..

  • 새로운 MakeFile 변수 지원PG_CFLAGS, PG_CXXFLAGSPG_LDFLAGSinPGXS빌드 (Christoph Berg)

    이것은 확장 빌드 프로세스의 사용자 정의를 단순화합니다.

  • 가정하지 않도록 Perl-Coded 빌드 스크립트 수정"."최근 Perl 버전에는 포함되지 않기 때문에 검색 경로에 있습니다 (Andrew Dunstan)

  • OpenBSD (Tom Lane)에서 문제를 해결하는 서버 명령 줄 옵션 수정

  • 시간대 데이터 파일 업데이트TZDATAKazakhstan, Metlakatla 및 Sao Tome 및 Principe의 DST 법률 변경에 대한 2018i 출시. Kazakhstan의 Qyzylorda Zone은 2로 나뉘어 일부 지역이 UTC 오프셋을 변경하지 않았기 때문에 새로운 구역 아시아/Qostanay를 만듭니다.