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

E.21. 릴리스 9.3.5

출시일: 2014-07-24

이 릴리스에는 9.3.4의 다양한 토토 베이 사항이 포함되어 있습니다. 을 위한 9.3 주요 릴리스의 새로운 기능에 대한 자세한 내용은 참조토토 사이트 순위 PostgreSQL : 문서 : 9.3 : 릴리스 9.3.

E.21.1. 버전 9.3.5로 마이그레이션

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

그러나 이번 토토 베이에서는 논리 오류가 수정되었습니다.pg_upgrade및 색인 손상 일부 GiST 인덱스에 문제가 있습니다. 처음 두 개의 변경 로그 항목을 참조하세요. 아래에서 귀하의 설치가 영향을 받았는지 확인하고 그렇다면 어떤 조치를 취해야 할까요?

또한 9.3.4 이전 버전에서 업그레이드하는 경우, 보다토토 사이트 순위 : 문서 : 9.3 : 릴리스 9.3.4.

E.21.2. 변경사항

  • pg_upgrade, 제거pg_multixact다음 사람이 남긴 파일initdb(브루스 몸지안)

    9.3.5 이전 버전을 사용한 경우pg_upgrade데이터베이스 클러스터를 다음으로 업그레이드합니다. 9.3, 파일이 남아 있을 수 있습니다.$PGDATA/pg_multixact/offsets/0000그러면 안 됩니다 거기에 있고 결국 문제를 일으킬 것입니다.진공. 그러나, 일반적인 경우 이 파일은 실제로 유효하므로 유효하지 않아야 합니다. 제거됨.귀하의 설치에 이것이 있는지 확인하려면 문제가 발생하면 다음 데이터베이스에서 슈퍼유저로 이 쿼리를 실행하세요. 무리:

    WITH 목록(파일) AS (SELECT * FROM pg_ls_dir('pg_multixact/offsets'))
    SELECT EXISTS (SELECT * FROM 목록 WHERE 파일 = '0000') AND
           존재하지 않음(SELECT * FROM 목록 WHERE 파일 = '0001') AND
           존재하지 않음(SELECT * FROM 목록 WHERE 파일 = 'FFFF') AND
           존재함(SELECT * FROM 목록 WHERE 파일 != '0000')
           AS 파일_0000_removal_required;

    이 쿼리가 반환되는 경우t, 수동으로 파일을 제거하세요$PGDATA/pg_multixact/offsets/0000. 다음과 같은 경우에는 아무것도 하지 마세요. 쿼리가 반환됩니다.f.

  • 다음에서 패딩 바이트를 올바르게 초기화합니다.contrib/btree_gist색인비트열(Heikki Linnakangas)

    이 오류는 값으로 인해 잘못된 쿼리 결과를 초래할 수 있습니다. 동등하다고 여겨지지 않고 동등하다고 비교되어야합니다. GiST 사용자 인덱스비트또는비트 다양함열은 다음과 같습니다REINDEX그들 이 업데이트를 설치한 후 색인이 생성됩니다.

  • GIN 목록 페이지를 삭제할 때 찢어진 페이지로부터 보호합니다(Heikki 린나캉가스)

    이 토토 베이은 시스템 충돌 시 발생할 수 있는 색인 손상을 방지합니다. 페이지 업데이트가 디스크에 기록되는 동안 발생합니다.

  • 재생하는 동안 GiST 인덱스 페이지의 오른쪽 링크를 지우지 마세요 WAL(Heikki Linnakangas)의 업데이트

    이 오류는 GiST의 일시적인 잘못된 답변으로 이어질 수 있습니다. Hot Standby에서 인덱스 스캔이 수행됩니다.

  • SP-GiST에 삽입하는 동안 코너 케이스 무한 루프 토토 베이 텍스트 인덱스(Tom Lane)

  • SP-GiST 색인 검색에서 잘못된 답변을 토토 베이하세요-|-(범위 인접) 연산자(Heikki 린나캉가스)

  • 다음에 대한 랩어라운드 처리 토토 베이pg_multixact/members(알바로 에레라)

  • 잘라내기pg_multixact중 체크포인트, 도중이 아님진공(알바로 헤레라)

    이 변경으로 인해 다음이 보장됩니다.pg_multixact세그먼트는 제거할 수 없습니다. 충돌 후 WAL 재생 중에 여전히 필요합니다.

  • WAL 이후에 모두 표시되는 플래그의 불일치 가능성 토토 베이 회복(Heikki Linnakangas)

  • 중첩된 호출 중 부정확할 수 있는 캐시 무효화 토토 베이ReceiveSharedInvalidMessages(안드레스 프로인트)

  • 다음에 의해 동시에 잠긴 튜플을 업데이트할 때 경쟁 조건 토토 베이 다른 프로세스(Andres Freund, Álvaro Herrera)

  • 토토 베이"경로키 항목을 찾을 수 없습니다 종류"플래너 실패유니온 모두상속이 있는 테이블에서 읽는 하위 쿼리에 대해 어린이(톰 레인)

  • 다음이 있는 경우 하위 쿼리의 출력이 고유하다고 가정하지 마십시오. 대상 목록의 집합 반환 함수(David Rowley)

    이러한 감독은 다음과 같은 구조의 잘못된 최적화로 이어질 수 있습니다.WHERE x IN (SELECT y, generate_series(1,10) FROM t GROUP BY y).

  • 다음의 상수-NULL 입력을 삭제하도록 플래너 개선그리고/또는가능하다면 (톰 레인)

    이 변경 사항은 보다 공격적인 매개변수가 사용되는 일부 경우를 토토 베이합니다. 9.2 이상에서 수행된 대체는 다음보다 더 나쁜 계획으로 이어질 수 있습니다. 이전 버전이 생산되었습니다.

  • 기획자가 동등한 내용을 볼 수 있는지 확인VARIADIC및 비-VARIADIC동등한 함수 호출(Tom Lane)

    예를 들어 이 버그로 인해 표현식을 사용하지 못할 수 있습니다. 가변 함수와 관련된 인덱스. 필요할 수도 있습니다 이러한 인덱스를 다시 생성하거나 Variadic을 포함한 뷰를 다시 생성합니다. 토토 베이 사항은 인덱스와 일치해야 하는 함수 호출입니다. 기존 9.3 설치에 효과적입니다.

  • 중첩 처리 토토 베이JSON객체json_populate_recordset()그리고 친구들 (마이클 파퀴어, 톰 레인)

    중첩된JSON객체는 다음과 같은 결과를 가져올 수 있습니다. 상위 개체의 이전 필드가 표시되지 않습니다. 산출.

  • 입력 유형 카테고리 식별 토토 베이to_json()그리고 친구들(톰 레인)

    이로 인해 부적절한 인용이 발생한 것으로 알려져 있습니다.필드JSON결과, 다른 데이터 유형에 대해서는 잘못된 결과가 있을 수 있습니다. 잘.

  • 복합 요소의 필드 삭제 실패 문제 토토 베이 구조화된 유형(Tom Lane)

    이것은 TOAST 포인터가 복사될 수 있는 경우를 토토 베이합니다 역참조되지 않고 다른 테이블. 원본 데이터가 다음과 같은 경우 나중에 삭제하면 다음과 같은 오류가 발생합니다."토스트 값에 대한 청크 번호 0이 누락되었습니다 ..."때 지금 매달려 있는 포인터가 사용됩니다.

  • 토토 베이"레코드 유형이 없습니다. 등기"출력에 대한 전체 행 참조 실패 계획 노드 추가(Tom Lane)

  • 사용자 정의 함수를 호출할 때 발생할 수 있는 충돌 토토 베이 커서 되감기(Tom Lane)

  • 인수를 평가하는 동안 쿼리 수명 메모리 누수 토토 베이 함수에 대해발신(톰 레인)

  • 정규 표현식의 세션 수명 메모리 누수 토토 베이 처리(Tom Lane, Arthur O'Dwyer, Greg Stark)

  • 다음의 데이터 인코딩 오류 토토 베이헝가리어.stop(톰 레인)

  • 다음과 같은 경우 OIDS를 사용하여 외부 테이블이 생성되지 않도록 방지default_with_oids맞습니다(후지타 에츠로)

  • 현재에 삽입된 행에 대한 활성 검사 토토 베이 트랜잭션이 롤백된 하위 트랜잭션에 의해 삭제되었습니다. (안드레스 프로인드)

    이것은 문제를 일으킬 수 있습니다(적어도 허위 경고 및 최악의 경우 무한 루프) if색인 생성또는클러스터나중에 같은 작업이 수행되었습니다. 거래.

  • 지우기pg_stat_activity.xact_start준비하세요 거래(안드레스 프로인드)

    이후준비, 원본 세션은 더 이상 트랜잭션에 속하지 않으므로 계속해서 진행되어서는 안 됩니다. 거래 시작 시간을 표시합니다.

  • 토토 베이소유 재지정텍스트에 실패하지 않으려면 검색 개체(Álvaro Herrera)

  • 방지pg_class.relminmxid동안 뒤로 이동하는 값진공 가득 참(알바로 에레라)

  • 규칙/뷰 덤프에서 들여쓰기를 줄여 가독성을 높이고 과도한 공백을 피하세요(Greg Stark, Tom Lane)

    이 변경으로 인해 중첩된 들여쓰기 양이 줄어듭니다. 사용자가 아마도 그렇지 않은 경우를 포함하여 구성 UNION 목록과 같이 중첩된 것으로 생각하십시오. 이전에는 깊게 중첩되었습니다. 구문은 다음과 같이 증가하는 공백의 양으로 인쇄되었습니다. O(N^2), 이는 성능 문제와 심지어 다음과 같은 위험을 야기했습니다. 메모리 부족 오류. 이제 들여쓰기가 모듈로 40으로 줄어들었습니다. 처음에는 보기에 이상하지만 가독성을 유지하는 것 같습니다. 단순히 들여쓰기를 제한하는 것보다 낫습니다. 많은 UNION 목록의 괄호도 줄어들었습니다.

  • 나중에 열을 추가할 때 규칙/뷰 덤핑 토토 베이 a와 일치하는 입력 열이 여러 개 생성되었습니다.사용 중사양(톰 레인)

  • 기능과 관련된 일부 경우에 대한 수리 보기 인쇄발신복합 유형을 반환하는 삭제된 열 포함(Tom Lane)

  • 포스트마스터 시작 중 신호 차단(톰 레인)

    이것은 우편 담당자가 이후에 적절하게 정리하도록 보장합니다. 예를 들어 수신하는 경우 자체적으로SIGINT아직 시작하는 동안.

  • 처리 시 클라이언트 호스트 이름 조회 토토 베이pg_hba.conf대신 호스트 이름을 지정하는 항목 IP 주소(Tom Lane)

    대신 역방향 DNS 조회 실패가 보고되는지 확인하십시오. 그런 항목과 자동으로 일치하지 않습니다. 또한 우리가 역방향 DNS 조회 시도는 연결당 한 번이 아니라 연결당 한 번만 시도됩니다. 호스트 이름 항목(조회 시 이전에 발생한 일) 시도가 실패했습니다.

  • 루트 사용자가 사용하도록 허용포스트그레스 -C 변하기 쉬운그리고포스트그레스 --설명-구성(마우마우)

    루트로 서버를 시작하는 것을 금지하는 것은 필요하지 않습니다 이러한 작업으로 확장하고 완화하면 실패를 방지할 수 있습니다.pg_ctl일부 시나리오에서는.

  • 임시 포스트마스터의 보안 Unix 도메인 소켓이 시작되었습니다. 동안확인하세요(노아 미쉬)

    소켓 파일에 접근할 수 있는 모든 로컬 사용자는 다음과 같이 연결할 수 있습니다. 서버의 부트스트랩 수퍼유저가 임의 실행을 진행합니다. 테스트를 실행하는 운영 체제 사용자로 코드를 작성합니다. 이전에 CVE-2014-0067에서 언급되었습니다. 이 변화는 이를 방어합니다. 서버 소켓을 임시 모드 0700에 두어 위험을 감수합니다. 하위 디렉토리/tmp. 위험은 남아있다 그러나 Unix 소켓이 지원되지 않는 플랫폼에서는 특히 그렇습니다. Windows, 임시 포스트마스터는 로컬을 수락해야 하기 때문입니다. TCP 연결.

    이 변경의 유용한 부작용은 단순화하는 것입니다.확인하세요재정의하는 빌드에서 테스트 중DEFAULT_PGSOCKET_DIR. 기본값이 아닌 인기 있는 다음과 같은 값/var/run/postgresql종종 빌드 사용자가 쓸 수 없으므로 해결 방법이 필요합니다. 더 이상 필요하지 않습니다.

  • Windows에서 작동하도록 테이블스페이스 생성 WAL 재생 토토 베이 (마우마우)

  • Windows에서 소켓 생성 실패 감지 토토 베이(Bruce 몸지안)

  • Windows에서는 새 세션이 PGC_BACKEND 값을 흡수하도록 허용합니다. 매개변수(예:log_connections) 구성 파일에서(Amit Kapila)

    이전에는 이러한 매개변수가 파일에서 변경된 경우 시작 후에는 변경 사항이 적용되지 않습니다.

  • Windows에서 실행 가능한 경로 이름을 올바르게 인용하십시오(Nikhil 데쉬판데)

    이러한 감독으로 인해 다음이 발생할 수 있습니다.initdb그리고pg_upgradeWindows에서는 실패합니다. 설치 경로에는 공백과가 모두 포함되어 있습니다.@표시.

  • 연결 토토 베이libpython켜짐 macOS(톰 레인)

    이전에 사용한 방법은 Python 라이브러리에서 실패할 수 있습니다. Xcode 5.0 이상에서 제공됩니다.

  • 버퍼 팽창 방지libpq서버가 클라이언트가 할 수 있는 것보다 지속적으로 더 빠르게 데이터를 보내는 경우 흡수해 (모리타 신이치, 톰 레인)

    libpq강제될 수 있음 메모리가 부족해질 때까지 입력 버퍼를 확장합니다(이렇게 되면 다음과 같이 오해의 소지가 있는 신고를 합니다."잃어버린 서버와 동기화"). 일반적인 상황에서 데이터가 지속적으로 전송될 수 있다는 것은 매우 불가능합니다. 그보다 더 빨리recv()루프 가능 흡수하지만 이는 내담자가 다음과 같은 경우에 관찰되었습니다. 스케줄러 제약으로 인해 인위적으로 속도가 느려졌습니다.

  • LDAP 조회가 시도되는지 확인libpq의도한 시간 초과(Laurenz Albe)

  • 토토 베이ecpg옳은 일을 하기 위해 배열일 때문자 *다음의 대상입니다. 둘 이상의 행과 다른 행을 반환하는 FETCH 문 배열 처리 토토 베이 사항(Ashutosh Bapat)

  • 토토 베이pg_dump에 대처하기 위해 테이블의 기본 키에 의존하는 구체화된 뷰(Tom 레인)

    이것은 보기의 쿼리가 기능 종속성에 의존하는 경우 발생합니다. a를 축약하다그룹별목록.pg_dump충분히 혼란스러워졌습니다 구체화된 뷰를 일반 뷰로 버렸습니다.

  • 분석 토토 베이pg_dumpall's-i스위치(톰 레인)

  • 토토 베이pg_restore님의 처리 중 구식 대형 객체 주석(Tom Lane)

    다음에 의해 생성된 아카이브 파일에서 데이터베이스로 직접 복원 9.0 이전 버전pg_dump아마도 일반적으로 아카이브에 다음과 같은 댓글이 몇 개 이상 포함되어 있으면 실패합니다. 큰 물체.

  • 토토 베이pg_upgrade다음의 경우 새 서버에서는 TOAST 테이블을 생성하지만 이전 버전에서는 그렇지 않았습니다. (브루스 몸지안)

    이 드문 상황은 다음과 같이 나타납니다."관계 OID 불일치"오류.

  • pg_upgrade, 보존pg_database.datminmxid그리고pg_class.relminmxid이전 클러스터의 값을 사용하거나 다음과 같은 경우 합리적인 값을 삽입하세요. 9.3 이전에서 업그레이드; 또한 불합리한 가치에 대해 방어합니다. 코어 서버(Bruce Momjian, Álvaro Herrera, Tom Lane)

    이러한 변경 사항은 autovacuum이 고집할 수 있는 시나리오를 방지합니다. 시작하자마자 전체 클러스터의 내용을 즉시 스캔할 때 새 클러스터 또는 고정 해제된 MXID 값을 추적하면 완전히 비활성화됩니다.

  • 방지contrib/auto_explain에서 사용자의 출력 변경설명(톰 레인)

    만약auto_explain활성 상태이므로 그럴 수도 있습니다. 원인은설명(분석, 타이밍 꺼짐)그럼에도 불구하고 타이밍 정보를 인쇄하는 명령입니다.

  • 쿼리 수명 메모리 누수 토토 베이기여/dblink(MauMau, 조 콘웨이)

  • contrib/pgcrypto기능, 보장 민감한 정보는 스택 변수에서 삭제되기 전에 삭제됩니다. 복귀(마코 크린)

  • 이미 해제된 메모리 사용 방지contrib/pgstattuple'spgstat_heap()(노아 미쉬)

  • contrib/uuid-ossp, 상태를 캐시합니다. 호출 전반의 OSSP UUID 라이브러리(Tom Lane)

    이것은 UUID 생성의 효율성을 향상시키고 에서 끌어낸 엔트로피의 양/dev/urandom, 해당 기능이 있는 플랫폼에서.

  • 다음으로 시간대 데이터 파일 업데이트tzdata2014e 토토 베이에 대한 DST 법률 변경 사항 크리미아, 이집트, 모로코.