릴리스 노트

PostgreSQL

E.22. 릴리스 10.2

출시 날짜 :2018-02-08

이 릴리스에는 10.1의 다양한 수정 사항이 포함되어 있습니다. Major Release 10의 새로운 기능에 대한 정보는 참조섹션 E.24.

E.22.1. 버전 10.2로의 마이그레이션

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

그러나 사설 토토하는 경우Contrib/Cube's~>운영자, 아래의 항목 참조

또한 10.1 이전 버전에서 업그레이드하는 경우 참조섹션 E.23.

E.22.2. 변화

  • 여러 표현식을 포함하는 파티션 키의 처리 수정 (Álvaro Herrera, David Rowley)

    이 오류로 인해 충돌이 발생했거나 신중하게 제작 된 입력으로 임의의 백엔드 메모리가 공개되었습니다. (CVE-2018-1052)

  • |pg_upgradeWorld-Readable (Tom Lane, Noah Misch)

    pg_upgrade일반적으로 임시 파일을 호출 사설 토토자 만 읽을 수 있고 쓸 수 있도록 제한합니다. 그러나 포함하는 임시 파일PG_DUMPALL -Goutput은 그룹 또는 세계에서 읽을 수 있거나 쓸 수있는 경우Umask설정 허용. 다중 사설 토토자 기계에 대한 일반적인 사설 토토으로Umask및/또는 작업 디렉토리의 권한은 문제를 방지하기에 충분히 빡빡합니다. 그러나를 사설 토토하는 사람들이있을 수 있습니다.pg_upgrade이 감독이 비우호적 인 눈에 데이터베이스 암호를 공개 할 수있는 시나리오에서. (CVE-2018-1053)

  • 키 공유 잠긴 상태에서 업데이트 된 튜플의 진공 청소기 (Andres Freund, Álvaro Herrera)

    경우에 따라진공이제 죽었더라도 그러한 튜플을 제거하지 않아 데이터 손상 시나리오

  • 새 오버플로 페이지를 추가 한 후 해시 인덱스의 메타지를 더러운 표시로 표시하지 않아 INDEX 부패 (Lixian Zou, Amit Kapila)

  • 진공 청소기 진공 상태가 항상 보류중인 삽입 목록 (Masahiko Sawada)을 청소해야합니다.

    죽은 색인 항목이 제거되도록해야합니다. 이전 코드는 거꾸로 가져와 다른 프로세스가 동시에 정리를 실행하면 진공 청소를 건너 뛸 수 있으므로 인덱스에 잘못된 항목이 남아있을 위험이 있습니다..

  • 일부 LSN 페치에서 부적절한 버퍼 잠금 수정 (Jacob Champion, Asim Praveen, Ashwin Agrawal)

    이러한 오류는 동시 부하에서 오작동을 일으킬 수 있습니다. 잠재적 결과는 완전히 특성화되지 않았습니다.

  • 출력이 사설 토토되는 하위 쿼리의 평평한 사례에서 잘못된 쿼리 결과 수정그룹화 세트(Heikki Linnakangas)

  • 부울 또는 배열 유형의 파티션 키에 대한 목록 파티셔닝 제약 조건 처리 수정 (Amit Langote)

  • 상속 트리의 쿼리에서 불필요한 실패를 피하십시오.ALTER 테이블 없음 상속(Tom Lane)

  • 여러 세션이 실행될 때 가짜 교착 상태 실패 수정동시에 색인 생성(Jeff Janes)

  • 동안진공 Full, 테이블의 크기 필드 업데이트PG_CLASS더 빨리 (Amit Kapila)

    이것은 테이블에서 해시 인덱스를 재건 할 때 행동이 좋지 않습니다.PG_CLASS초기 해시 크기를 관리하는 통계.

  • 수정Union/Intersect/제외0 열 위 (Tom Lane)

  • 타이핑 테이블 및 파티션의 신분 열을 허용하지 않습니다 (Michael Paquier)

    이 사례는 현재 지원되지 않는 기능으로 취급됩니다.

  • ID 열에 삽입 할 때 올바른 기본값을 적용하기 위해 다양한 실패를 고정합니다 (Michael Paquier, Peter Eisentraut)

    여러 상황에서 특히COPYandAlter Table 추가 열, 예상 기본값이 적용되지 않았으며 널 값이 삽입되었습니다.

  • 상속 트리에 외국 어린이 테이블이 포함 된 경우 실패 수정 (Etsuro Fujita)

    상속 트리에 일반 테이블과 외국 테이블이 혼합되어 잘못된 계획이 생성되었습니다업데이트and삭제쿼리. 이로 인해 일부 경우에도 외국 아동 테이블에 줄 수준의 트리거가있을 때 경우에도 눈에 띄게 실패했습니다.

  • 상관 관계 서브의 수리 실패select내부내부측면서브 쿼리 (Tom Lane)

  • 수정주어진 쿼리에 대한 쿼리 계획을 수립 할 수 없습니다일부 경우 중첩과 관련된 경우 플래너 실패Union All내부 측면 서브 퀘리 (Tom Lane)

  • 부울 열 (Tom Lane)에 기능 의존성 통계를 사용하도록 허용

    이전에, 확장 된 통계를 부울 열에 선언하고 수집 할 수 있었지만 플래너는이를 적용하지 못했습니다.

  • 그룹화 열 (Tom Lane)에 설정된 회복 함수를 포함하는 하위 쿼리에 의해 방출되는 그룹의 수를 과소 평가하지 마십시오.

    유사한 경우별도의 Unnest (foo)를 선택하십시오이전 릴리스에서보다 10.0에서 출력이 낮은 RowCount 추정치를 얻었으므로 불리한 계획 선택이 발생할 수 있습니다. 이전 추정 동작을 복원하십시오.

  • 논리 복제 작업자 (PETR Jelinek)에서 트리거 사용 수정

  • 충돌 된 트랜잭션에 대한 디스크 파일을 올바르게 정리하려면 논리 디코딩 수정 (Atsushi Torikoshi)

    논리적 디코딩은 많은 WAL 레코드를 생성하는 트랜잭션을 위해 WAL 레코드를 디스크로 유출 할 수 있습니다. 일반적으로 이러한 파일은 거래의 커밋 또는 중단 기록이 도착한 후에 정리됩니다.

  • 대규모 트랜잭션을 처리 할 때 Walsender 타임 아웃 실패 및 인터럽트에 대한 응답 실패 수정 (PETR Jelinek)

  • 복제 원산지 낙하 중에 레이스 조건을 수정하여 드롭핑 프로세스가 무기한으로 대기 할 수 있습니다 (Tom Lane)

  • 멤버 허용PG_READ_ALL_STATSWalsender 통계를 볼 수있는 역할pg_stat_replicationView (Feike Steenbergen)

  • 기본 백업을 활성으로 전송하는 Walsenders 표시pg_stat_activityView (Magnus Hagander)

  • 보고 수정Scram-Sha-256인증 방법의PG_HBA_FILE_RULESView (Michael Paquier)

    이전에 이것은로 인쇄되었습니다.Scram-SHA256, 올바른 철자에 대해 혼란 스러울 수 있습니다.

  • 수정has_sequence_privilege ()지원하려면보조금 옵션다른 권한 테스트 기능과 마찬가지로 테스트 (Joe Conway)

  • UTF8 인코딩을 사설 토토하는 데이터베이스에서 다른 인코딩 (Pavel Stehule, Noah Misch)을 주장하는 XML 선언을 무시합니다.

    우리는 항상 데이터베이스 인코딩에 XML 문자열을 저장하므로 LIBXML이 다른 인코딩의 선언에 작용할 수있게하여 잘못된 결과를 얻었습니다. UTF8 이외의 인코딩에서 어쨌든 비 ASCII XML 데이터를 지원할 것을 약속하지 않으므로 버그 호환성에 대한 이전 동작을 유지하십시오.xpath ()및 관련 기능; 다른 XML 코드 경로는 이미 이런 식으로 행동했습니다.

  • 향후 작은 프로토콜 버전과의 전진 호환성 제공 (Robert Haas, Badrul Chowdhury)

    지금까지PostgreSQL서버는 단순히 프로토콜 버전을 3.0보다 새로 사설 토토하라는 요청을 거부하여 프로토콜 버전 번호의 주요 부분과 작은 부분 사이에 기능적 차이가 없었습니다. 클라이언트가 실패하지 않고 버전 3.x를 요청할 수 있도록 허용하여 서버가 3.0 만 이해한다는 메시지를 다시 보내십시오.

  • SCRAM 채널 바인딩을 지원하는 클라이언트 허용 (예 : V11 이상libpq) V10 서버 (Michael Paquier)에 연결하려면

    v10 은이 기능이 없으며 사설 토토 여부에 대한 연결 시간 협상이 잘못 완료되었습니다.

  • 라이브 잠금을 피하십시오ConditionVariableBroadcast ()(Tom Lane, Thomas Munro)

    반복적으로 운영되는 타이밍이 주어지면, 모든 웨이터를 조건 변수를 깨우려고 시도하는 과정은 무기한으로 루프 할 수 있습니다. V10의 조건 변수의 제한된 사설 토토으로 인해 이는 병렬 인덱스 스캔 및 복제 슬롯의 일부 작업에만 영향을 미칩니다.

  • 서브 트랜잭션 중단 중에 조건 변수를 올바르게 기다리십시오 (Robert Haas)

  • Postmaster 프로세스가 사라지면 조건 변수를 기다리는 아동 프로세스가 즉시 종료되도록하십시오 (Tom Lane)

  • 하나 이상의 수집 노드 (Thomas Munro)를 사설 토토하여 병렬 쿼리에서 충돌을 고치십시오

  • 삭제 된 또는 하프 데드 인덱스 페이지 (Amit Kapila)를 처리 할 때 병렬 인덱스 스캔을 수정하십시오.

  • 병렬 비트 맵 힙 스캔이 공유 메모리 세그먼트를 할당 할 수없는 경우 충돌을 피하십시오 (Robert Haas)

  • 병렬 작업자 프로세스를 시작하지 못하는 대처 (Amit Kapila, Robert Haas)

    병렬 쿼리는 이전에 작업자를 시작할 수없는 경우 무기한으로 매달려있는 경향이있었습니다.포크 ()실패 또는 기타 낮은 확률 문제.

  • 병렬 쿼리 시작 중에 병렬 작업자를 얻을 수없는 경우 불필요한 실패를 피하십시오

  • 수정 컬렉션설명병렬 작업자의 통계 (Amit Kapila, Thomas Munro)

  • 쿼리 문자열이 병렬 작업자에게 전달되는지 확인하십시오.

    이것은 그러한 근로자의 우체국 장 마스터 로그 출력에서 ​​방출 쓰레기를 방해하지 않습니다.

  • 작업 할 때 안전하지 않은 정렬 가정을 피하십시오__int128(Tom Lane)

    일반적으로 컴파일러는를 가정합니다.__int128변수는 16 바이트 경계에 정렬되지만 메모리 할당 인프라는 여러 가지 이유로 Maxalign 설정을 증가시킬 준비가되지 않은 것으로 보입니다. 를 허용하도록 코드를 조정하십시오.__int128컴파일러에 정렬이 적을 수 있다고 말할 수있는 경우에만. 지금 까지이 문제의 유일한 알려진 증상은 일부 병렬 집계 쿼리에서 충돌입니다.

  • 매우 깊게 중첩 된 세트 작업을 계획 할 때 스택 오버 플로우 충돌 방지 (Union/Intersect/제외) (Tom Lane)

  • Merge 조인 (Tom Lane)의 내부 자식 인 Indexscan을 평가하는 동안 충돌을 피하십시오

    이것은 업데이트 중에 만 발생할 수 있습니다업데이트 선택가입의 일부 선택한 행의 동시 업데이트가있을 때.

  • 테이블에 대한 확장 통계가 정의 될 때 Autovacuum의 충돌 수정 (Álvaro Herrera)

  • 일부 유형의 LDAP URL에 대한 널 포인터 충돌 수정pg_hba.conf(Thomas Munro)

  • 간단한 해시 테이블 (Tomas Vondra, Andres Freund)의 과도한 성장으로 인해 메모리 외 실패 방지

  • 샘플 수정instr ()PL/PGSQL 문서의 기능 (Yugo Nagata, Tom Lane)

    이 함수는라고 명시되어 있습니다.Oracle® 호환 가능하지만 정확하지는 않았습니다. 특히, 부정적인 세 번째 매개 변수의 해석에는 불일치가있었습니다. Oracle은 부정적인 값이 대상 서브 스트링이 시작될 수있는 마지막 장소를 나타내는 반면, 우리의 기능은 대상이 끝날 수있는 마지막 장소로 가져 갔다고 생각합니다.

    샘플 코드는 Oracle의 동작에보다 정확하게 일치하도록 조정되었습니다. 이 코드를 응용 프로그램에 복사 한 사용자는 사본을 업데이트 할 수 있습니다.

  • 수정pg_dumpACL (권한), 댓글 및 보안 레이블 항목을 아카이브 출력 형식 (Tom Lane)에서 안정적으로 식별 할 수 있습니다.

    thetagACL 아카이브 항목의 일부는 일반적으로 관련 객체의 이름 일뿐입니다. 대신 객체 유형으로 시작하여 ACL을 댓글 및 보안 레이블 아카이브 항목에 이미 사용한 컨벤션과 일치시킵니다.데이터베이스그래서 그들은 또한이 협약을 따릅니다. 이렇게하면 코드에서 거짓 일치가 표시되는 것을 방지하여 태그가 시작되는지 확인하여 대형 객체 관련 항목을 식별하려고 시도합니다.큰 개체. 이로 인해 스키마 전용 또는 데이터 전용 덤프에서 바람직하지 않은 결과를 얻은 스키마 대신 데이터로 항분을 잘못 분류 할 수있었습니다.

    이 변경 사항은 사설 토토자가 가상 ​​할 수있는 결과를 낳는다는 점에 유의하십시오.PG_RESTORE ---list.

  • Renamepg_rewind'sCOPY_FILE_RANGE새로운 Linux 시스템과의 충돌을 피하는 기능 (Andres Freund)

    이 변경 사항은 새로운 GLIBC 버전으로 빌드 실패를 방지합니다.

  • inECPG, 길이가 올바른 길이가없는 표시기 배열을 감지하고 오류를보고합니다 (David Rader)

  • 동작 변경Contrib/Cube's큐브 ~> int운영자는 KNN Search (Alexander Korotkov)와 호환 가능하게합니다.

    두 번째 인수 (차원 선택기)의 의미는 다양한 차원의 큐브를 다룰 때에도 어떤 값이 선택 될 수 있는지 예측할 수 있도록 변경되었습니다.

    이것은 양립 할 수없는 변화이지만, 운영자의 지점이 KNN 검색에서 사용 되었기 때문에 다소 쓸모없는 것 같습니다. 이 업데이트를 설치 한 후이 연산자를 사용하여 표현식 인덱스 또는 구체화 된 뷰는 다시 표시/새로 고침해야합니다.

  • LIBC 어설 션을 트리거하지 않으면Contrib/Hstore, 사설 토토으로 인해memcpy ()동등한 소스 및 대상 포인터 (Tomas Vondra)

  • 튜플의 잘못된 표시 수정 'null bitmaps inContrib/PageInspect(Maksim Milyutin)

  • 잘못된 출력 수정Contrib/PageInspect'shash_page_items ()기능 (Masahiko Sawada)

  • inContrib/Postgres_FDW, 피하기외부 Pathkeys는 mergeclauses와 일치하지 않습니다원격 조인 (Robert Haas)과 관련된 계획을 구성 할 때 플래너 오류

  • inContrib/Postgres_FDW, 중복이있을 때 플래너 실패를 피하십시오그룹 by출품작 (Jeevan Chalke)

  • MacOS (Tom Lane)에서 포스트 그레를 자동 시작하는 방법에 대한 현대적인 사례 제공

    스크립트Contrib/Start-Scripts/OSX10 년 이상 더 이상 사용되지 않은 인프라를 사용하고 지난 몇 년 동안 MACOS 릴리스에서 더 이상 작동하지 않는 인프라를 사용합니다. 새 하위 디렉토리 추가Contrib/Start-Scripts/MacOS새로운 것을 사용하는 스크립트 포함런치드인프라.

  • Windows (Andrew Dunstan)의 OpenSSL에 대한 구성 별 라이브러리의 잘못된 선택 수정

  • Libperl (Noah Misch)의 Mingw에서 제작 한 버전에 대한 링크 지원

    이것은 Windows 용 일반적인 Perl 분포로 PL/Perl을 구축 할 수 있습니다.

  • 32 비트 libperl이 필요한지 테스트하기 위해 MSVC 빌드 수정-d_use_32bit_time_t(Noah Misch)

    사설 토토 가능한 Perl 분포는 그들이 기대하는 것에 일치하지 않으며 신뢰할 수있는 신뢰할 수있는 수단이 부족하므로 사설 토토중인 라이브러리가 실제로 무엇을하는지에 대한 빌드 타임 테스트에 의지합니다..

  • Windows에서 우체국 마스터 스타트 업 (Takayuki Tsunakawa)의 일찍 충돌 덤프 핸들러를 설치하십시오

    이것은 이전에 덤프를 생성하지 않은 조기 시작 실패에 대한 코어 덤프를 수집 할 수 있습니다.

  • Windows에서 우체국 마스터 스타트 업 (Takayuki Tsunakawa)에서 매우 일찍 메시지를 방출 할 때 인코딩-수정 관련 충돌을 피하십시오

  • 16467_16555

  • Motorola 88K (David Carlier)의 스핀 락에 대한 지원 추가

  • 시간대 데이터 파일 업데이트TZDATA브라질, 사오 톰 및 프린 시프의 DST 법률 변경을위한 2018C, 볼리비아, 일본, 남 수단의 역사적 교정. 그만큼US/Pacific-New영역이 제거되었습니다 (그것은 별명 일뿐입니다America/Los_angeles어쨌든).