이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

E.20. 릴리스 9.6.5

출시일: 2017-08-31

이 릴리스에는 9.6.4의 소수의 수정 사항이 포함되어 있습니다. 9.6 주요 릴리스의 새로운 기능에 대한 자세한 내용은 다음을 참조하세요.무지개 토토 PostgreSQL : 문서 : 9.6 : 릴리스 9.6.

E.20.1. 버전 9.6.5로 마이그레이션

9.6.X를 실행하는 경우 덤프/복원이 필요하지 않습니다.

그러나 9.6.4 이전 버전에서 업그레이드하는 경우 다음을 참조하세요.PostgreSQL : 문서 : 9.6 : 토토 베이 9.6.4.

E.20.2. 변경사항

  • 외국 테이블 표시정보_스키마.table_privileges보기 (피터 아이젠트라우트)

    기타 관련 모든정보_스키마뷰에는 외부 테이블이 포함되어 있지만 이 테이블은 이를 무시했습니다.

    이 보기 정의는 다음에 의해 설치되었으므로initdb, 업그레이드만으로는 문제가 해결되지 않습니다. 기존 설치에서 이 문제를 해결해야 하는 경우 수퍼유저로서 다음에서 수행할 수 있습니다.psql:

    search_path를 information_schema로 설정;
    VIEW table_privileges AS 생성 또는 교체
        SELECT CAST(u_grantor.rolname AS sql_identifier) AS 부여자,
               CAST(grantee.rolname AS sql_identifier) AS 피부여자,
               CAST(current_database() AS sql_identifier) AS 테이블_카탈로그,
               CAST(nc.nspname AS sql_identifier) AS 테이블_스키마,
               CAST(c.relname AS sql_identifier) AS 테이블_이름,
               CAST(c.prtype AS 문자_데이터) AS 특권_유형,
               캐스트(
                 언제의 경우
                      -- 객체 소유자에게는 항상 부여 옵션이 있습니다.
                      pg_has_role(grantee.oid, c.relowner, '사용법')
                      또는 c.허가 가능
                      THEN 'YES' ELSE 'NO' END AS yes_or_no) AS is_grantable,
               CAST(CASE WHEN c.prtype = 'SELECT' THEN 'YES' ELSE 'NO' END AS yes_or_no) AS with_hierarchy
    
        에서 (
                SELECT oid, relname, relnamespace, relkind, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class
             ) AS c (oid, relname, relnamespace, relkind, 소유주, 양도자, 수혜자, prtype, 부여 가능),
             pg_namespace NC,
             pg_authid u_grantor,
             (
               pg_authid에서 oid, rolname 선택
               유니온 올
               0::oid, '공개'를 선택하세요.
             ) AS 수혜자(oid, rolname)
    
        어디에서 c.relnamespace = nc.oid
              AND c.relkind IN ('r', 'v', 'f')
              AND c.grantee = grantee.oid
              그리고 c.grantor = u_grantor.oid
              AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER')
              AND (pg_has_role(u_grantor.oid, '사용법')
                   또는 pg_has_role(grantee.oid, '사용법')
                   또는 피부여자.rolname = 'PUBLIC');

    이 작업은 다음을 포함하여 수정될 각 데이터베이스에서 반복되어야 합니다.템플릿0.

  • 치명적인 종료 처리 정리(예: 수신으로 인해)SIGTERM)는 a를 실행하려고 시도하는 동안 발생합니다.롤백실패한 거래의 (Tom Lane)

    이 상황은 어설션 실패를 초래할 수 있습니다. 프로덕션 빌드에서는 종료가 계속 발생하지만 다음에 대한 예상치 못한 메시지가 기록됩니다."활성 포털을 삭제할 수 없습니다".

  • 치명적인 종료 중에 트리거될 수 있는 어설션 제거(Tom Lane)

  • 검색 중인 복합 젠 토토 또는 도메인 젠 토토에 비해 범위 젠 토토 또는 도메인 젠 토토의 열을 올바르게 식별합니다(Tom Lane)

    확실함변경복합 유형 또는 도메인 유형의 정의를 변경하는 명령은 데이터베이스에 해당 유형의 저장된 값이 있는 경우 실패할 것으로 예상됩니다. 왜냐하면 이러한 값을 업데이트하거나 확인하는 데 필요한 인프라가 부족하기 때문입니다. 이전에는 이러한 검사에서 범위 유형이나 하위 도메인 내에 포함된 관련 값이 누락되어 데이터베이스가 일관되지 않을 수 있었습니다.

  • 고정 길이 참조에 의한 전달 데이터 젠 토토을 병렬 작업자 프로세스에 전달할 때 충돌 방지(Tom Lane)

  • 충돌 수정pg_restore병렬 모드를 사용하고 목록 파일을 사용하여 복원할 항목의 하위 집합을 선택할 때 (Fabrízio de Royes Mello)

  • 변경ecpg의 파서가 허용함돌아오는 중첨부된 C 변수가 없는 절(Michael Meskes)

    이렇게 하면ecpg다음을 사용하는 SQL 구성을 포함하는 프로그램돌아오는 중클라이언트에 반환할 값을 정의하는 데 사용하는 대신 내부적으로(예: CTE 내부에서).

  • 변경ecpg10334_10430

  • Windows에서 PL/Perl에 대한 컴파일러 플래그 선택 개선(Tom Lane)

    이 수정은 너비에 대한 일관되지 않은 가정으로 인해 발생할 수 있는 PL/Perl 충돌을 방지합니다.time_t값. 확장 프로그램 개발자에게 나타날 수 있는 부작용은 다음과 같습니다._USE_32BIT_TIME_T더 이상 전역적으로 정의되지 않습니다.포스트그레SQL윈도우 빌드. 다음과 같은 유형으로 인해 문제가 발생할 것으로 예상되지 않습니다.time_t어떤 것에도 사용되지 않습니다PostgreSQLAPI 정의.

  • 수정확인하세요GNU가 아닌 make 프로그램을 통해 호출될 때 올바르게 작동합니다(Thomas Munro)