릴리스 노트

PostgreSQL

E.20. 릴리스 10.4

출시 날짜 :2018-05-10

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

E.20.1. 버전 10.4로의 마이그레이션

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

그러나 사용하는 경우adminpackExtension, 아래의 첫 번째 ChangeLog 항목에 따라 업데이트해야합니다.

또한 아래 두 번째 및 세 번째 변경 사항에 언급 된 기능 표시 실수가 귀하에게 영향을 미치면 데이터베이스 카탈로그를 토토 캔하기위한 단계를 수행하려면

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

E.20.2. 변화

  • 공개 실행 특권 제거Contrib/Adminpack'spg_logfile_rotate ()기능 (Stephen Frost)

    pg_logfile_rotate ()핵심 함수의 감가 상각 래퍼입니다pg_rotate_logfile (). 해당 기능이 하드 코딩 된 슈퍼 유저 확인보다는 액세스 제어를위한 SQL 권한에 의존하도록 변경되면pg_logfile_rotate ()또한 업데이트되어야했지만 이에 대한 필요성은 누락되었습니다. 따라서, ifadminpack설치되면 모든 사용자가 로그 파일 회전을 요청하여 경미한 보안 문제가 발생할 수 있습니다.

    이 업데이트를 설치 한 후 관리자는 업데이트해야합니다adminpack공연Alter Extension AdminPack 업데이트각 데이터베이스에서adminpack가 설치되었습니다. (CVE-2018-1115)

  • 몇 가지 내장 기능 (Thomas Munro, Tom Lane)에서 잘못된 변동성 표시 토토 캔

    함수query_to_xml, cursor_to_xml, cursor_to_xmlschema, query_to_xmlschemaquery_to_xml_and_xmlschema휘발성 작업이 포함될 수있는 사용자 공급 쿼리를 실행하기 때문에 휘발성으로 표시해야합니다. 그들은 쿼리 최적화가 잘못된 위험을 초래하지 않았습니다.PG_PROC항목, 예를 들어ALTER 기능 PG_CATALOG.QUERY_TO_XML (텍스트, 부울, 부울, 텍스트) 휘발성. (설치의 각 데이터베이스에서 수행해야합니다.) 또 다른 옵션은입니다.pg_upgrade토토 캔 된 초기 데이터를 포함하는 버전의 데이터베이스.

  • 몇 가지 내장 함수 (Thomas Munro, Tom Lane)에서 잘못된 평행 안전 마크 토토 캔

    함수brin_summarize_new_values, brin_summarize_range, brin_desummarize_range, gin_clean_pending_list, cursor_to_xml, cursor_to_xmlschema, TS_REWRITE, TS_STAT, binary_upgrade_create_empty_extensionpg_import_system_collations평행 미공개로 표시되어야합니다. 일부는 데이터베이스 토토 캔을 직접 수행하고 다른 일부는 사용자가 제공 한 쿼리를 실행하기 때문에 다른 일부를 수행하기 때문입니다.force_parallel_mode가 켜져 있습니다. 문제가 발생하면 이러한 기능을 수동으로 업데이트하여 토토 캔할 수 있습니다. 'PG_PROC항목, 예를 들어ALTER 기능 PG_CATALOG.BRIN_SUMMARIZE_NEW_VALUUES (regclass) 병렬 불안한. (설치의 각 데이터베이스에서 수행해야합니다.) 또 다른 옵션은입니다.pg_upgrade토토 캔 된 초기 데이터를 포함하는 버전의 데이터베이스.

  • 죽음이지만 예전이 아닌 토스트 항목 (Pavan Deolasee)과 일치하는 토스트 가치 OID를 재사용하지 마십시오.

    일단 OID 카운터가 포장되면 OID가 동일한 토스트 테이블에서 이전에 삭제 된 항목과 일치하는 토스트 값을 할당 할 수 있습니다. 해당 항목이 아직 진공 청소기가 없으면 결과가 발생했습니다.예기치 않은 청크 번호 0 (예상 1) 토스트 값의 경우nnnnn오류, 죽은 항목이 제거 될 때까지 지속되는 오류진공. 새 토스트 항목을 만들 때 그러한 OID를 선택하지 않음으로써 토토 캔하십시오.

  • 올바르게 시행check동안 개별 파티션에 대한 제약copy분할 된 테이블 (Etsuro Fujita)

    이전에, 전체적으로 분할 된 테이블에 대해 선언 된 제약 조건 만 확인되었습니다.

  • 수락trueandfalse파티션 바운드 값으로 (Amit Langote)

    이전에는 부울 파티셔닝 열에 대해 문자열 라이터 값 만 허용되었습니다. 하지만pg_dump그러한 값과 같은 값을 인쇄 할 것입니다true또는false, 덤프/재 장전 실패로 이어지는 것.

  • 파티션 키 비교 기능에 대한 메모리 관리 토토 캔 (Álvaro Herrera, Amit Langote)

    이 오류는 파티션 키에 사용자 정의 연산자 클래스를 사용할 때 충돌로 이어질 수 있습니다.

  • 쿼리가 분할 된 테이블의 여러 파티션에 튜플을 삽입 할 때 가능한 충돌 토토 캔 및 해당 파티션에는 동일한 행 유형이 없습니다 (Etsuro Fujita, Amit Langote)

  • 변경분석의 업데이트 알고리즘PG_CLASS.reltuples(David Gould)

    이전에, 실제로 스캔하지 않은 페이지분석는 오래된 튜플 밀도를 유지하는 것으로 가정되었습니다. 큰 테이블에서분석샘플 페이지의 작은 부분 만 샘플링하면 전체 튜플 밀도 추정치가 크게 변할 수 없으므로reltuples테이블의 물리적 크기의 변화에 ​​거의 비례하여 변경 될 것입니다 (Relpages) 실제로 테이블에서 무슨 일이 있었는지에 관계없이. 이것은 결과로 관찰되었습니다reltuples자가 경작을 효과적으로 차단하기 위해 현실보다 훨씬 커지는 것. 고치려면분석의 샘플은 통계적으로 편견이없는 표 샘플이며 (그대로) 해당 페이지 내에서 관찰 된 밀도를 전체 테이블에 외삽하십시오..

  • 테이블 속성 세트에 확장 상태 객체 포함테이블 작성 ... 좋아요 ... 모두 포함(David Rowley)

    또한 추가통계 포함옵션, 이런 일이 발생하는지에 대한 더 미세한 제어를 허용합니다.

  • 토토 캔테이블 생성 ... 좋아요withbigintIdentity Columns (Peter Eisentraut)

    플랫폼에서Long는 32 비트입니다 (64 비트 창과 대부분의 32 비트 기계 포함), 복사 된 시퀀스 매개 변수는 32 비트로 잘릴 것입니다.

  • 동시 교착 상태를 피하십시오동시에 색인 생성아래에서 실행되는 명령SERIALIZALE또는반복 가능한 읽기트랜잭션 격리 (Tom Lane)

  • 가능한 느린 실행 토토 캔동시에 구체화 된보기를 새로 고침(Thomas Munro)

  • 토토 캔업데이트/삭제 ... 현재 위치참조 된 커서가 인덱스 전용 스캔 계획 (Yugo Nagata, Tom Lane)을 사용할 때 실패하지 않음

  • 파라미터 화 된 경로로 밀려난 조인 조항의 잘못된 계획 토토 캔 (Andrew Gierth, Tom Lane)

    이 오류는 조건을 A로 잘못 분류 할 수 있습니다결합 필터평범 해야하는 경우 외부 조인의 경우필터조건, 잘못된 결합 출력으로 이어집니다.

  • 동일한 테이블 열이 여러 인덱스 열에 나타날 때 인덱스 전용 스캔 계획의 잘못된 생성 토토 캔 및 해당 인덱스 열 중 일부만 열 값 (Kyotaro Horiguchi)을 반환 할 수있는 연산자 클래스를 사용합니다.

  • 오해 최적화 토토 캔check최상위 수준의 하위 클레어를 입증 한 제약 조건and/또는조건 (Tom Lane, Dean Rasheed)

    예를 들어, 쿼리에서 제외되어서는 안되는 아동 테이블을 제외 할 수있는 제약 제외가 가능합니다..

  • 쿼리에 다중 일 때 플래너 충돌 방지그룹화 세트, 정렬 (Andrew Gierth)을 통해 구현할 수는 없습니다.

  • 일부에서 더블 프리로 인한 집행자 충돌 토토 캔그룹화 세트사용법 (Peter Geoghegan)

  • 전이 테이블에서 자체 요인의 동성애를 토토 캔합니다 (Thomas Munro)

  • 테이블 rewrite 이벤트 트리거가 그러한 방아쇠를 호출 할 수있는 명령과 동시에 추가되는 경우 충돌을 피하십시오 (Álvaro Herrera, Andrew Gierth, Tom Lane)

  • 준비된 거래를 저지르는 동안 쿼리 탄 또는 세션 종료 인터럽트가 발생하는 경우 고장을 피하십시오 (Stas Kelvich)

  • 반복적으로 실행 된 해시 조인 (Tom Lane)에서 Query-Lifespan 메모리 누출 토토 캔

  • 가시성 맵 버퍼 핀 (Amit Kapila) 가능 해제 또는 이중 무료 토토 캔 가능

  • 가시적으로 페이지를 가시적으로 표시하지 않으면 (Dan Wood, Pavan Deolasee, Álvaro Herrera)

    일부 튜플이 잠겨 있지 않지만 삭제되지 않은 경우 발생할 수 있습니다. 쿼리는 여전히 올바르게 작동하지만 진공은 일반적으로 그러한 페이지를 무시할 것입니다.발견 된 다중 공장nnnnnrelminmxid 이전에서nnnnn.

  • 지나치게 엄격한 정신 체크인 토토 캔heap_prepare_freeze_tuple(Álvaro Herrera)

    이것은 잘못 될 수 있습니다커밋 된 xmax 동결 할 수 없습니다데이터베이스의 실패pg_upgrade'D에서 9.2 이상에서.

  • C-Coded 이전의 행 트리거 트리거가 반환 할 때 끊임없이 매달린 포인터 피해 방지old튜플 (Rushabh Lathia)

  • Autovacuum 근로자 일정 (Jeff Janes) 중 잠금 감소

    이전 동작은 많은 테이블이있는 데이터베이스에서 잠재적 인 작업자 동시성의 급격한 손실을 일으켰습니다.

  • 복사하는 동안 클라이언트 호스트 이름이 복사되는지pg_stat_activity로컬 메모리에 대한 데이터 (Edmund Horner)

    이전에 로컬 스냅 샷에는 공유 메모리에 대한 포인터가 포함되어있어 클라이언트 호스트 이름 열이 기존 세션이 분리 된 경우 예기치 않게 변경할 수 있습니다..

  • 핸들pg_stat_activity보조 프로세스에 대한 정보 (Edmund Horner)

    theapplication_name, client_hostname쿼리필드는 그러한 프로세스에 대한 잘못된 데이터를 표시 할 수 있습니다.

  • 여러 화합물 부착의 잘못된 처리 토토 캔Ispell사전 (Arthur Zakirov)

  • 텍스트 열 (Tom Lane)의 SP-Gist 인덱스에서 Collation-Aware Search (즉, 불평등 연산자를 사용하는 인덱스) 토토 캔 토토 캔

    이러한 검색은 대부분의 비 C 지역에서 잘못된 행 세트를 반환합니다.

  • Traversal 값 (Anton Dignös)을 사용하는 SP-Gist 연산자 클래스를 사용한 쿼리 리피 메모리 누출 방지

  • SP-Gist 지수 (Tomas Vondra)의 초기 빌드 중에 인덱스 튜플 수를 올바르게 계산합니다.

    이전에, 튜플 카운트는 기본 테이블과 동일하다고보고되었으며, 인덱스가 부분적이면 잘못되었습니다.

  • Gist Index (Andrey Borodin)의 진공 청소기 동안 인덱스 튜플의 수를 올바르게 계산합니다

    이전에는 힙 튜플의 추정 수를보고했는데, 이는 부정확 할 수 있으며 지수가 부분적이면 확실히 잘못되었습니다.

  • 스트리밍 대기가 WAL 연속 기록 (Kyotaro Horiguchi)에 갇히는 코너 케이스 토토 캔

  • 논리적 디코딩에서 Walsender가 다시 시작될 때 WAL 데이터의 이중 처리를 피하십시오 (Craig Ringer)

  • 로컬 서버와 원격 서버 (Masahiko Sawada)간에 유형 OID가 일치한다고 가정하지 않도록 논리적 복제를 토토 캔합니다.

  • 허용ScalarltselandScalargtsel비 코어 데이터 유형 (Tomas Vondra)에서 사용됩니다.

  • 감소libpq의 메모리 소비가 많은 양의 쿼리 출력이 수집 된 후 서버 오류 가보고 된 경우 (Tom Lane)

    오류 메시지를 처리하지 않고 이전의 이전 출력을 버립니다. 일부 플랫폼, 특히 Linux에서는 응용 프로그램의 후속 메모리 풋 프린트에 차이를 만들 수 있습니다.

  • 이중 무료 충돌 토토 캔ECPG(Patrick Krecker, Jeevan Ladhe)

  • 토토 캔ECPG처리하려면긴 긴 intMSVC 빌드 (Michael Meskes, Andrew Gierth)의 변수

  • 덤프에서 List-Valued GUC 변수에 대한 값의 잘못 인용 토토 캔 (Michael Paquier, Tom Lane)

    thelocal_preload_libraries, session_preload_libraries, shared_preload_librariestemp_tablespaces변수가 올바르게 인용되지 않았습니다pg_dump출력. 이 변수의 설정이에 나타나면 문제가 발생합니다.함수 생성 ... 세트또는데이터베이스/역할 변경 ... 세트조항.

  • 토토 캔PG_RECVLOGICALPre-V10에 실패하지 않음postgresql서버 (Michael Paquier)

    이전 토토 캔이 발생했습니다PG_RECVLOGICAL서버 버전에 관계없이 명령을 발행하려면 v10 및 이후 서버에만 발행해야합니다.

  • pg_rewind실행 중에 소스 서버에서 삭제 된 경우 대상 서버에서 파일을 삭제합니다 (Takayuki Tsunakawa)

    이를 수행하지 못하면 대상에 대한 데이터 불일치가 발생할 수 있습니다. 특히 문제의 파일이 WAL 세그먼트 인 경우

  • 토토 캔pg_rewind비 디폴트 테이블 스페이스의 테이블을 올바르게 처리하려면 (Takayuki Tsunakawa)

  • 오버 플로우 처리 토토 캔pl/pgsql정수for루프 (Tom Lane)

    이전 코딩은 일부 비 GCC 컴파일러에서 루프 변수의 오버플로를 감지하지 못해 무한 루프로 이어집니다.

  • 조정pl/pythonPython 3.7 (Peter Eisentraut)에 따라 전달되는 회귀 테스트

  • 지원 테스트pl/python및 Python 3 및 MSVC (Andrew Dunstan)로 구축 할 때 관련 모듈

  • 초기 빌드의 오류 토토 캔Contrib/BloomIndexes (Tomas Vondra, Tom Lane)

    인덱스에서 테이블의 마지막 튜플을 생략 할 수 있습니다. 부분 색인 인 경우 인덱스 튜플의 수를 올바르게 계산하십시오.

  • 내부 이름 바꾸기b64_encodeandb64_decodeSolaris와의 충돌을 피하기위한 기능 11.4 내장 기능 (Rainer Orth)

  • Iana Tzcode Release 2018e (Tom Lane)와 Timezone 라이브러리 사본을 동기화합니다.

    이것은를 토토 캔합니다.ZICTimeZone Data Compiler 부정적인 일광 절약 오프셋에 대처합니다. 동안postgresql프로젝트는 그러한 시간대 데이터를 즉시 배송하지 않습니다.ZICIana에서 직접 얻은 시간대 데이터와 함께 사용될 수 있으므로 업데이트가 현명 해 보입니다ZICnow.

  • 시간대 데이터 파일 업데이트tzdata팔레스타인과 남극 대륙 (Casey Station)의 DST 법률 변화에 대한 2018D, 포르투갈과 그 식민지, Enderbury, Jamaica, Turks & Caicos Islands 및 Uruguay의 역사적 교정을위한 2018D 출시.