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

E.25. 릴리스 9.6

출시일: 2016-09-29

E.25.1. 개요

주요 개선 사항포스트그레SQL9.6에는 다음이 포함됩니다:

  • 순차 스캔, 조인 및 집계의 병렬 실행

  • 진공 동결 작업 중 불필요하게 페이지를 스캔하지 마세요.

  • 동기 복제를 통해 이제 안정성 향상을 위해 여러 대기 서버를 사용할 수 있습니다.

  • 이제 전체 텍스트 검색무지개 토토 구문(여러 인접 단어)을 검색할 수 있습니다.

  • postgres_fdw이제 원격 조인, 정렬을 지원합니다.업데이트s 및삭제s

  • 특히 멀티 확장성 영역에서 상당한 성능 개선CPU-소켓 서버

위 항목은 아래 섹션에서 더 자세히 설명됩니다.

E.25.2. 버전 9.6으로 마이그레이션

다음을 사용하여 덤프/복원메이저 토토 사이트또는 다음의 사용PostgreSQL, 이전 릴리스에서 데이터를 마이그레이션하려는 경우 필요합니다.

버전 9.6에는 이전 릴리스와의 호환성에 영향을 줄 수 있는 여러 가지 변경 사항이 포함되어 있습니다. 다음 비호환성을 확인하세요.

  • 개선pg_stat_activity프로세스가 무엇을 기다리고 있는지에 대한 뷰 정보 (Amit Kapila, Ildus Kurbangaliev)

    역사적무지개 토토 프로세스는 무거운 잠금을 기다리는 경우에만 대기 중인 것무지개 토토 표시되었습니다. 이제 경량 잠금과 버퍼 핀도 표시될 때까지 기다립니다.pg_stat_activity. 또한 이제 대기 중인 잠금 유형이 표시됩니다. 이러한 변경 사항은 다음을 대체합니다.대기 중열 포함wait_event_type그리고wait_event.

  • to_char(), 시간 관련 필드의 필드 너비의 일부로 마이너스 기호(필요한 경우)를 계산하지 마세요(Bruce Momjian)

    예를 들어,to_char('-4년'::간격, 'YY')이제 반환됨-04, 대신-4.

  • 만들다추출()무한 입력무지개 토토 더욱 합리적무지개 토토 동작합니다(Vitaly Burovoy)

    역사적무지개 토토는추출()함수는 주어진 필드 이름에 관계없이 무한 타임스탬프가 주어지면 0을 반환했습니다. 돌아오도록 하세요무한대또는-무한대요청된 필드가 단조롭게 증가하는 필드인 경우 적절합니다(예:, 에포크) 또는NULL그렇지 않은 경우(예:, 시간). 또한 잘못된 필드 이름에 대해 예상되는 오류를 발생시킵니다.

  • PL/pgSQL 제거"기능"가장 안쪽 줄을 억제한컨텍스트다음에서 보낸 메시지의 경우상승명령(Pavel Stehule)

    이 고대의 하위 호환성 해킹은 그 유용성이 오래되었다는 데 동의했습니다.

  • 기본 텍스트 검색 파서를 수정하여 선행 숫자를 허용하도록 수정이메일그리고호스트토큰 (Artur Zakirov)

    대부분의 경우 이는 텍스트 분석에 거의 변화를 가져오지 않습니다. 그러나 이러한 주소가 자주 발생하는 데이터가 있는 경우 종속적무지개 토토 다시 빌드할 가치가 있을 수 있습니다.ts벡터이 형식의 주소를 텍스트 검색무지개 토토 올바르게 찾을 수 있도록 열과 색인을 만듭니다.

  • 연장기여/악센트 없음의 기준unaccent.rules유니코드에 알려진 모든 발음 구별 부호를 처리하고 합자를 올바르게 확장하기 위한 파일 (Thomas Munro, Léonard Benedetti)

    이전 버전에서는 발음 구별 부호를 사용하여 덜 일반적인 문자를 변환하는 것을 무시했습니다. 또한 합자는 이제 별도의 문자로 확장됩니다. 이 규칙 파일을 사용하는 설치는 다시 빌드할 수 있습니다.ts벡터결과에 따라 달라지는 열 및 인덱스.

  • 오래 사용되지 않는 항목 삭제CREATEUSER/NOCREATEUSER옵션역할 생성및 연합군 명령(톰 레인)

    CREATEUSER실제로는 의미슈퍼유저, 고대 하위 호환성을 이유로. 이것은 (합리적무지개 토토) 그것이 의미할 것이라고 기대하는 사람들에게 지속적인 혼란의 원인이었습니다.크리에이터롤. 현재 10년 동안 더 이상 사용되지 않으므로 이를 제거하여 문제를 해결하세요.

  • 다음으로 시작하는 역할 이름 처리pg_예약됨(스티븐 프로스트)

    그러한 역할 이름의 사용자 생성은 이제 허용되지 않습니다. 이는 다음에서 생성된 기본 역할과의 충돌을 방지합니다.initdb.

  • 열 이름 변경information_schema.루틴에서 보기result_cast_character_set_nameresult_cast_char_set_name(클레망 프레보스트)

    SQL:2011 표준은 더 긴 이름을 지정하지만 이는 실수인 것 같습니다. 인접한 열 이름은 다른 항목과 마찬가지로 더 짧은 스타일을 사용하기 때문입니다.information_schema조회수.

  • psql's-c옵션이 더 이상 의미하지 않음--no-psqlrc(파벨 스테훌레, 카탈린 이아콥)

    쓰기--no-psqlrc(또는 그 약어-X)을 사용하여 이전 동작을 명시적으로 얻습니다. 이렇게 수정된 스크립트는 이전 버전에서 계속 작동합니다.psql.

  • 개선pg_restore's-t일반 테이블뿐만 아니라 모든 유형의 관계와 일치하는 옵션 (Craig Ringer)

  • 사용된 표시 형식 변경NextXIDpg_controldata및 관련 장소(Joe Conway, Bruce Momjian)

    에포크 및 트랜잭션 ID 값을 형식으로 표시번호:번호. 이전 형식번호/번호혼란스러울 정도로 유사했습니다.LSNs.

  • 해당하는 경우 병렬 안전으로 표시되도록 확장 기능 업데이트(Andreas Karlsson)

    많은 표준 확장이 업데이트되어 해당 기능이 병렬 쿼리 작업자 프로세스 내에서 실행될 수 있습니다. 이러한 변경 사항은 데이터베이스에 적용되지 않습니다.pg_upgrade신청하지 않는 한 이전 버전에서 삭제됨확장 업데이트 변경각 확장 프로그램(클러스터의 각 데이터베이스에 있음)에.

E.25.3. 변경사항

아래에서 다음 사이의 변경 사항에 대한 자세한 설명을 찾을 수 있습니다.포스트그레SQL9.6 및 이전 주요 릴리스.

E.25.3.1. 서버

E.25.3.1.1. 병렬 쿼리

  • 병렬 쿼리(Robert Haas, Amit Kapila, David Rowley 등 다수)

    9.6의 경우,PostgreSQL대규모 쿼리의 병렬 실행에 대한 초기 지원을 소개합니다. 순차 스캔을 통해 구동 테이블에 액세스하는 엄격한 읽기 전용 쿼리만 병렬화할 수 있습니다. 해시 조인과 중첩 루프는 집계와 마찬가지로 병렬로 수행될 수 있습니다(지원되는 집계의 경우). 아직 해야 할 일이 많이 남아 있지만 이는 이미 유용한 기능 세트입니다.

    병렬 쿼리 실행은 (아직) 기본적무지개 토토 활성화되어 있지 않습니다. 이를 허용하려면 새 구성 매개변수를 설정하세요.max_parallel_workers_per_gather0보다 큰 값무지개 토토. 다른 새로운 구성 매개변수를 통해 병렬 처리 사용에 대한 추가 제어가 가능합니다.force_parallel_mode, parallel_setup_cost, parallel_tuple_costmin_parallel_relation_size.

  • 기능의 병렬 안전 상태를 표시하기 위한 인프라 제공(Robert Haas, Amit Kapila)

E.25.3.1.2. 인덱스

  • 허용효과적인 활용을 위한 인덱스 구축maintenance_work_mem1GB보다 큰 설정(Robert Abraham, Teodor Sigaev)

  • GIN 색인의 보류 목록에서 삭제된 페이지를 여유 공간 맵에 즉시 추가하십시오(Jeff Janes, Teodor Sigaev)

    테이블을 자주 청소하지 않으면 부풀어오르는 현상이 줄어듭니다.

  • 추가gin_clean_pending_list()GIN 인덱스에 대한 보류 목록 정리의 수동 호출을 허용하는 함수(Jeff Janes)

    이전에는 이러한 정리가 상위 테이블을 비우거나 분석하는 과정의 부산물로만 발생했습니다.

  • 에서 데드 인덱스 튜플 처리 개선토토 : 문서 : 9.6 : GIST 인덱스색인(아나스타샤 루벤니코바)

    이제 인덱스 스캔에서 해당 힙 튜플이 작동하지 않음을 발견하면 작동하지 않는 인덱스 튜플이 표시됩니다. 튜플을 삽입할 때 페이지에 공간을 확보하기 위해 필요한 경우 데드 튜플이 제거됩니다.

  • 추가PostgreSQL : 문서 : 9.6 : 스포츠 토토 Indexes유형에 대한 연산자 클래스상자(알렉산더 레베데프)

E.25.3.1.3. 정렬

  • 외부 정렬 단계를 수행할 때 대체 선택 정렬이 아닌 빠른 정렬을 사용하여 정렬 성능을 향상시킵니다(Peter Geoghegan)

    새로운 접근 방식은 다음을 더 잘 활용합니다.CPU16581_16714replacement_sort_tuples.

  • 동일한 문자열이 여러 번 나타나는 텍스트 정렬 속도 향상 (Peter Geoghegan)

  • 정렬 속도 향상uuid, 바이테아문자(n)필드를 사용하여"축약됨"키(피터 거게건)

    기본값이 아닌 연산자 클래스에도 단축 키에 대한 지원이 추가되었습니다.PostgreSQL : 문서 :, varchar_pattern_opsbpchar_pattern_ops. 이제 정렬된 집합 집계 처리에서도 단축 키를 활용할 수 있습니다.

  • 속도를 높이세요동시에 인덱스 생성치료함무지개 토토써TIDs 정렬 중 64비트 정수로(Peter Geoghegan)

E.25.3.1.4. 잠금

  • 에 대한 경합 감소ProcArrayLock(아미트 카필라, 로버트 하스)

  • 버퍼 내용 잠금을 버퍼 설명자로 이동하여 성능 향상(Andres Freund, Simon Riggs)

  • 확장성 향상을 위해 공유 버퍼 헤더 스핀록을 원자적 작업무지개 토토 교체(Alexander Korotkov, Andres Freund)

  • 스핀락 대신 원자 연산을 사용하여 보호LW잠금의 대기 대기열(Andres Freund)

  • 다중 경합을 줄이기 위해 공유 해시 테이블 여유 목록을 분할합니다-CPU-소켓 서버(Aleksander Alekseev)

  • btree 인덱스 진공 작업 재생 중 대기 서버의 연동을 줄입니다(Simon Riggs)

    이 변경 사항은 이러한 작업을 재생하는 동안 때때로 발생하는 상당한 복제 지연을 방지합니다.

E.25.3.1.5. 최적화 통계

  • 개선분석18870_18941

    이전분석비-의 수를 과소평가하는 경향이 있었습니다.NULL많은 열의 고유한 값NULLs이며 가장 일반적인 값을 계산하는 데에도 부정확했습니다.

  • 쿼리 결과의 고유 값 수에 대한 플래너의 추정 개선(Tomas Vondra)

  • 외래 키 관계를 사용하여 조인 술어에 대한 선택성 추론(Tomas Vondra, David Rowley)

    테이블이라면t외래 키 제한이 있습니다.(a,b) 참조 r (x,y)다음에 a어디다음과 같은 조건t.a = r.x AND t.b = r.y하나 이상 선택할 수 없습니다.r행 당t행. 기획자는 이전에 다음을 고려했습니다.그리고조건은 독립적이며 결과적무지개 토토 선택성을 크게 잘못 평가하는 경우가 많습니다. 이제 비교됩니다.어디해당 외래 키 제약 조건을 적용하고 더 나은 추정치를 생성합니다.

E.25.3.1.6.진공

  • 고정된 튜플만 포함된 페이지를 다시 비우지 마세요(Masahiko Sawada, Robert Haas, Andres Freund)

    이전에는 랩어라운드 방지 진공청소기가 테이블의 모든 페이지를 방문해야 했으며 심지어 할 일이 없는 페이지도 방문해야 했습니다. 이제 이미 고정된 튜플만 포함된 페이지가 테이블의 가시성 맵에서 식별되며 트랜잭션 랩어라운드 방지를 수행하는 경우에도 진공으로 건너뛸 수 있습니다. 이렇게 하면 대부분 변경되지 않는 데이터가 포함된 대규모 테이블을 유지 관리하는 비용이 크게 절감됩니다.

    필요한 경우 진공 청소기는 새로운 기능을 사용하여 모든 고정된 페이지를 강제로 처리할 수 있습니다.DISABLE_PAGE_SKIPPING옵션. 일반적으로 이는 절대 필요하지 않지만 가시성 맵 손상을 복구하는 데 도움이 될 수 있습니다.

  • 이동하는 동안 쓸모없는 힙 잘라내기 시도를 피하세요.진공(제프 제인, 톰 레인)

    이 변경은 잘림이 불가능한 경우에 배타적 테이블 잠금을 사용하는 것을 방지합니다. 주요 이점은 대기 서버에서 불필요한 쿼리 취소를 방지하는 것입니다.

E.25.3.1.7. 일반실적

  • 이전 허용MVCC구성 가능한 시간 초과 후 스냅샷이 무효화됨(Kevin Grittner)

    일반적으로 삭제된 튜플은 가능한 마지막 트랜잭션까지 진공청소를 통해 물리적으로 제거할 수 없습니다."참조"그들은 사라졌습니다. 오랫동안 열려 있는 트랜잭션은 공간을 재활용할 수 없기 때문에 테이블이 상당히 팽창할 수 있습니다. 이 기능을 사용하면 새로운 구성 매개변수를 통해 시간 기반 제한을 설정할 수 있습니다.old_snapshot_threshold, 얼마나 오랫동안MVCC스냅샷의 유효성이 보장됩니다. 그 후에는 데드 튜플이 제거 후보가 됩니다. 오래된 스냅샷을 사용하는 트랜잭션은 해당 데이터가 포함될 수 있는 페이지를 읽으려고 시도하면 오류가 발생합니다.

  • 무시그룹별다른 열에 기능적무지개 토토 종속된 열(David Rowley)

    만약에그룹별절에는 지연되지 않은 기본 키의 모든 열과 동일한 테이블의 다른 열이 포함되며, 이러한 다른 열은 중복되므로 그룹화에서 삭제할 수 있습니다. 이렇게 하면 많은 일반적인 경우에 계산이 절약됩니다.

  • 다음 사용 허용색인 전용 스캔인덱스의 경우 부분 인덱스에어디에서절이 색인화되지 않은 열을 참조합니다 (Tomas Vondra, Kyotaro Horiguchi)

    예를 들어 다음으로 정의된 인덱스는t(b) WHERE a 0에 인덱스 tidx_partial 생성이제 다음을 지정하는 쿼리에 의한 인덱스 전용 스캔에 사용할 수 있습니다.a 0인 경우그리고 달리 사용하지 않습니다a. 이전에는 다음과 같은 이유로 허용되지 않았습니다.a인덱스 열로 나열되지 않습니다.

  • 정렬된 순서로 체크포인트 쓰기 수행 (Fabien Coelho, Andres Freund)

    이전에는 체크포인트가 공유 버퍼에 나타나는 순서에 관계없이 더티 페이지를 기록했는데 이는 일반적으로 거의 무작위였습니다. 특히 회전하는 미디어에서는 성능이 좋지 않습니다. 이 변경으로 인해 체크포인트 기반 쓰기가 파일 및 블록 번호 순서대로 수행되고 테이블스페이스 간에 균형이 조정됩니다.

  • 가능한 경우, 커널 디스크 버퍼에 더티 데이터가 축적되는 것을 방지하기 위해 구성 가능한 쓰기 횟수 후에 커널 쓰기 저장을 트리거합니다(Fabien Coelho, Andres Freund)

    PostgreSQL커널의 디스크 캐시에 데이터를 기록하며, 그곳에서 정해진 시간에 물리적 저장소로 플러시됩니다. 많은 운영 체제는 이를 관리하는 데 현명하지 못하고 한 번에 플러시하기로 결정하기 전에 대량의 더러운 데이터가 축적되도록 허용하여 플러시가 완료될 때까지 새로운 I/O 요청에 대해 오랜 지연을 초래합니다. 이 변경에서는 구성 가능한 간격 후에 데이터 플러시를 명시적으로 요청하여 이 문제를 완화하려고 시도합니다.

    리눅스의 경우,sync_file_range()이 목적무지개 토토 사용되며 이 기능은 단점이 거의 없기 때문에 Linux에서는 기본적무지개 토토 켜져 있습니다. 이 플러시 기능은 다른 플랫폼에서도 사용할 수 있습니다.msync()또는posix_fadvise(), 그러나 이러한 인터페이스에는 바람직하지 않은 부작용이 있으므로 Linux가 아닌 플랫폼에서는 해당 기능이 기본적무지개 토토 비활성화되어 있습니다.

    새로운 구성 매개변수backend_flush_after, bgwriter_flush_after, checkpoint_flush_afterwal_writer_flush_after이 동작을 제어합니다.

  • 동일한 인수 및 전환 함수가 있는 경우 여러 집계에서 계산을 공유하여 집계 함수 성능을 향상시킵니다(David Rowley)

    예를 들어,탭에서 AVG(x), VARIANCE(x) 선택두 집계에 대해 단일 행당 계산을 사용할 수 있습니다.

  • 현재 트랜잭션의 스냅샷을 확인하여 최근 생성된 튜플에 대한 가시성 테스트 속도를 높입니다.pg_clog, 소스 트랜잭션이 커밋된 것무지개 토토 간주되어야 하는지 결정하기 위해(Jeff Janes, Tom Lane)

  • 튜플 힌트 비트가 이전보다 빨리 설정되도록 허용합니다(Andres Freund)

  • 단기 준비된 트랜잭션의 성능 개선(Stas Kelvich, Simon Riggs, Pavan Deolasee)

    2단계 커밋 정보는 이제 다음에만 기록됩니다.WAL거래 준비, 그리고 다음에서 다시 읽혀집니다.WAL커밋 준비됨그런 일이 곧 일어날 경우. 다음 체크포인트까지 보류 중인 트랜잭션이 커밋되거나 중단되지 않는 경우에만 별도의 상태 파일이 생성됩니다.

  • 메모리 컨텍스트 파괴 성능 개선(Jan Wieck)

  • 추적된 개체가 많아 리소스 소유자의 성능을 향상시킵니다(Aleksander Alekseev)

  • 에 대한 출력 기능 속도 향상타임스탬프, 시간날짜데이터 유형 (David Rowley, Andres Freund)

  • 취한 작업을 재생하는 동안 긴급 대기 쿼리의 일부 불필요한 취소를 방지접속독점자물쇠(제프 제인)

  • 관계 확장 잠금에 대한 경합이 있을 때 한 번에 여러 블록 관계 확장(Dilip Kumar)

    경합을 줄여 확장성을 향상시킵니다.

  • 더 나은 확장성을 위해 막힘 버퍼 수를 늘리십시오(Amit Kapila, Andres Freund)

  • 다음에서 표현식 평가 속도 향상PL/pgSQL지키면서ParamListInfo항상 유효한 단순 변수에 대한 항목(Tom Lane)

  • 줄이지 마십시오SO_SNDBUF최신 Windows 버전에서 기본값보다 낮게 설정됨(Chen Huajun)

  • 비활성화update_process_titleWindows에서는 기본적무지개 토토 (Takayuki Tsunakawa)

    Windows에서는 프로세스 제목을 업데이트하는 오버헤드가 대부분의 다른 플랫폼보다 훨씬 크며, 대부분의 Windows 사용자에게는 프로세스 제목을 표시할 수 있는 도구가 없기 때문에 이 작업을 수행하는 것도 덜 유용합니다.

E.25.3.1.8. 모니터링

  • 추가pg_stat_progress_vacuum진행 보고를 제공하는 시스템 보기진공작업(Amit Langote, Robert Haas, Vinayak Pokale, Rahila Syed)

  • 추가pg_control_system(), pg_control_checkpoint(), pg_control_recovery()pg_control_init()필드를 노출하는 함수pg_controlSQL(조 콘웨이, 마이클 파퀴어)

  • 추가pg_config시스템 보기(조 콘웨이)

    이 보기는 다음에서 제공되는 것과 동일한 정보를 노출합니다.pg_config명령줄 유틸리티, 즉 다음에 대한 다양한 컴파일 시간 구성 정보PostgreSQL.

  • 추가confirmed_flush_lsn열을토토 PostgreSQL : 문서 :시스템 보기 (Marko Tiikkaja)

  • 추가pg_stat_wal_receiver상시 대기 서버의 상태에 대한 정보를 제공하는 시스템 뷰WAL수신자 프로세스(Michael Paquier)

  • 추가pg_blocking_pids()어떤 세션이 다른 세션을 차단하는지 확실하게 식별하는 기능(Tom Lane)

    이 함수는 주어진 프로세스 ID로 세션을 차단하는 모든 세션의 프로세스 ID 배열을 반환합니다. 역사적으로 사용자는 자체 조인을 사용하여 이러한 정보를 얻었습니다.pg_locks보기. 그러나 약간의 정확성을 가지고 그렇게 하는 것은 비합리적으로 지루하며 병렬 쿼리를 추가하면 세션의 기본 프로세스가 아닌 하위 작업자 프로세스가 잠금을 보유하거나 대기할 수 있기 때문에 이전 접근 방식이 완전히 비실용적이게 되었습니다.

  • 기능 추가pg_current_xlog_flush_location()현재 트랜잭션 로그 플러시 위치를 노출합니다(Tomas Vondra)

  • 기능 추가pg_notification_queue_usage()얼마나 꽉 차 있는지 보고합니다알림큐는 (Brendan Jurd)입니다.

  • 메모리 컨텍스트 통계 덤프의 자세한 내용을 제한합니다(톰 레인)

    메모리 부족 오류 시 포스트마스터 로그에 출력되는 메모리 사용량 덤프는 이제 매우 큰 보고서를 생성하는 대신 메모리 컨텍스트 수가 많을 때 통계를 요약합니다. 도 있습니다."총계"요약 줄입니다.

E.25.3.1.9.인증

  • 추가BSD인증 방법다음의 사용을 허용하려면BSD인증 서비스포스트그레SQL클라이언트 인증(마리사 에머슨)

    BSD 인증은 현재 다음에서만 사용할 수 있습니다.오픈BSD.

  • 사용 시PAM인증, 클라이언트 IP 주소 또는 호스트 이름 제공PAM모듈을 통해PAM_RHOST항목 (Grzegorz Sampolski)

  • 더 많은 비밀번호 인증 실패 유형에 대해 포스트마스터 로그에 세부정보 제공(Tom Lane)

    일반적으로 접근 가능한 모든 비밀번호 인증 실패 사례는 이제 특정 정보를 제공해야 합니다.세부사항로그의 필드.

  • 지원반경비밀번호최대 128자(Marko Tiikkaja)

  • 새로 추가SSPI인증매개변수compat_realm그리고upn_username여부를 제어하기 위해넷BIOS또는케르베로스영역 이름과 사용자 이름이 사용되는 동안SSPI인증(크리스티안 울리히)

E.25.3.1.10. 서버 구성

  • 세션이 너무 오랫동안 트랜잭션 유휴 상태에 있을 경우 자동으로 종료되도록 허용(Vik Fearing)

    이 동작은 새로운 구성 매개변수에 의해 제어됩니다.idle_in_transaction_session_timeout. 잊어버린 트랜잭션이 잠금을 유지하거나 너무 오랫동안 진공 정리를 방지하는 것을 방지하는 데 유용할 수 있습니다.

  • 최대 허용 값을 올리세요checkpoint_timeout24시간까지(Simon Riggs)

  • 허용효과적인_io_concurrency다양한 테이블스페이스가 서로 다른 I/O 특성을 갖는 경우를 지원하기 위해 테이블스페이스별로 설정됩니다(Julien Rouhaud)

  • 추가log_line_prefix옵션%nUnix epoch 형식으로 현재 시간을 밀리초 단위로 인쇄합니다(Tomas Vondra, Jeff Davis)

  • 추가syslog_sequence_numbers그리고syslog_split_messages로그인할 때 메시지 형식에 대한 더 많은 제어를 제공하는 구성 매개변수syslog(피터 아이젠트라우트)

  • 병합아카이브그리고hot_standbywal_level구성 매개변수를 단일 새 값으로복제본(피터 아이젠트라우트)

    이러한 설정을 구별하는 것은 더 이상 유용하지 않으며 이를 병합하는 것은 향후 복제 설정 단순화 계획을 향한 단계입니다. 이전 이름은 여전히 허용되지만 다음으로 변환됩니다.복제본내부적무지개 토토.

  • 구성 옵션 추가--with-systemd통화 활성화sd_notify()서버 시작 및 중지 시(Peter Eisentraut)

    이것은 다음을 사용할 수 있게 해줍니다시스템서비스 단위 유형알림, 이는 관리를 크게 단순화합니다.PostgreSQL아래시스템화.

  • 서버를 허용SSL소유한 경우 그룹 읽기 액세스 권한을 갖는 키 파일루트(크리스토프 버그)

    이전에 우리는 다음을 실행하는 사용자가 키 파일을 소유해야 한다고 주장했습니다.PostgreSQL서버이지만 일부 시스템에서는 불편합니다(예:데비안)는 인증서를 중앙에서 관리하도록 구성됩니다. 따라서 키 파일을 소유한 경우를 허용합니다.루트그룹 읽기 액세스 권한이 있습니다. 그룹에 신뢰할 수 없는 사용자가 포함되지 않도록 하는 것은 운영 체제 관리자의 몫입니다.

E.25.3.1.11. 신뢰성

  • 우체국장이 죽으면 백엔드를 강제 종료합니다(Rajeev Rastogi, Robert Haas)

    일반적인 상황에서 포스트마스터는 항상 하위 프로세스보다 오래 지속되어야 합니다. 어떤 이유로 포스트마스터가 죽으면 백엔드 세션이 오류와 함께 강제로 종료됩니다. 이전에는 클라이언트의 연결이 끊어질 때까지 기존 백엔드가 계속 실행되었지만 이는 안전하지 않고 비효율적이었습니다. 또한 마지막 이전 백엔드가 종료될 때까지 새 포스트마스터가 시작되는 것을 방지합니다. 백엔드는 클라이언트 I/O를 기다릴 때 포스트마스터 종료를 감지하므로 종료는 즉각적이지는 않지만 늦어도 현재 쿼리가 끝나기 전에 발생해야 합니다.

  • 제약 위반 실패를 보고하기 전에 직렬성 충돌을 확인하십시오(Thomas Munro)

    직렬화 가능한 트랜잭션 격리를 사용할 때 동시 트랜잭션무지개 토토 인한 모든 오류는 직렬화 실패로 나타나 애플리케이션에 재시도가 성공할 수 있다는 신호를 보내는 것이 바람직합니다. 불행하게도 동시 삽입무지개 토토 인한 중복 키 오류의 경우 이는 안정적무지개 토토 발생하지 않습니다. 이러한 변경을 통해 애플리케이션이 트랜잭션 초기에 충돌하는 키가 있는지 명시적무지개 토토 확인했지만 찾지 못한 경우 해당 오류가 직렬화 오류로 보고됩니다.

  • 무효화 메시지가 기록되어 있는지 확인WAL아무것도 없는 거래에 의해 발행된 경우에도XID할당됨 (Andres Freund)

    이것은 대기 서버의 트랜잭션이 새 인덱스와 같은 변경 사항을 인식하지 못하는 일부 특수한 경우를 수정합니다.

  • 여러 프로세스가 a를 정리하려는 시도를 방지동시에 인덱스의 보류 목록 (Teodor Sigaev, Jeff Janes)

    이것은 의도적으로 허용되었지만 삭제해야 하는 진공 누락 색인 항목이 발생할 수 있는 경쟁 조건을 발생시킵니다.

E.25.3.2. 복제 및 복구

  • 동기 복제를 허용하여 단지 하나가 아닌 여러 개의 동시 동기 대기 서버를 지원합니다 (Masahiko Sawada, Beena Emerson, Michael Paquier, Fujii Masao, Kyotaro Horiguchi)

    커밋이 완료된 것으로 간주되기 전에 커밋을 승인해야 하는 대기 서버의 수는 이제 다음의 일부로 구성 가능합니다.synchronous_standby_names매개변수.

  • 새 설정 추가remote_apply구성 매개변수용동기_커밋(토마스 먼로)

    이 모드에서 마스터는 트랜잭션이 완료될 때까지 기다립니다.적용됨단순히 디스크에 기록되는 것이 아니라 대기 서버에 있습니다. 즉, 대기 모드에서 시작된 트랜잭션을 통해 마스터가 이전에 승인한 모든 커밋을 확인할 수 있습니다.

  • 복제 프로토콜에 기능을 추가하고 해당 옵션을 추가pg_create_physical_replication_slot(), 예약 허용WAL복제 슬롯 생성 시 즉시 (Gurjeet Singh, Michael Paquier)

    이것은 복제 슬롯의 생성을 허용하여 모든 것을 보장합니다.WAL기본 백업에 필요한 항목을 사용할 수 있습니다.

  • 추가--슬롯옵션pg_basebackup(피터 아이젠트라우트)

    이렇게 하면pg_basebackup정의된 복제 슬롯 사용WAL스트리밍. 기본 백업이 완료된 후 정기적인 스트리밍 복제를 위해 동일한 슬롯을 선택하면 새로운 대기 서버를 원활하게 시작할 수 있습니다.

  • 연장pg_start_backup()그리고pg_stop_backup()비독점 백업 지원(Magnus Hagander)

E.25.3.3. 쿼리

  • 튜플 세트를 반환하는 함수가 단순 반환을 허용NULLs (앤드류 기어스, 톰 레인)

    다음 맥락에서함수에서 선택(...), 복합 값 세트를 반환하는 함수는 이전에는 일반 값을 반환하는 것이 허용되지 않았습니다.NULL값을 세트의 일부로 포함합니다. 이제 이는 허용되고 다음 행으로 해석됩니다.NULLs. 이는 예를 들어 복합 값 배열의 중첩 해제와 관련된 특수 사례 오류를 방지합니다.

  • 의 대상 열 목록에서 배열 아래 첨자와 필드 선택을 완전히 지원합니다.삽입여러 개 포함행(톰 레인)

    이전에는 동일한 대상 열이 두 번 이상 언급된 경우 이러한 사례가 실패했습니다. 예:INSERT INTO 탭(x[1], x[2]) 값(...).

  • 해당하는 경우 평가 연기선택다음까지 표현식을 출력주문 기준sort (콘스탄틴 크니즈니크)

    이 변경으로 인해 출력 목록의 휘발성 또는 비용이 많이 드는 기능이 다음에서 제안한 순서대로 실행됩니다.주문 기준, 그리고 다음이 있을 때 필요한 것보다 더 많이 평가되지 않습니다.제한절. 이전에는 인덱스 스캔 또는 사전 병합 조인 정렬로 정렬이 수행된 경우 이러한 속성이 유지되었지만 최상위 정렬로 수행된 경우에는 유지되지 않았습니다.

  • 64비트로 처리된 튜플 수를 기록하는 카운터 확대 (Andreas Scherbaum)

    이 변경으로 인해 명령 태그가 허용됩니다. 예:선택, 40억보다 큰 튜플 수를 올바르게 보고합니다. 이는 PL/pgSQL에도 적용됩니다.진단 받기 ... ROW_COUNT명령.

  • 다음을 통해 변환하여 인코딩 변환을 수행하지 마십시오.MULE_INTERNAL인코딩(톰 레인)

    이전에는 키릴 문자 및 중앙 유럽 단일 바이트 인코딩에 대한 많은 변환이 관련 문자로 변환하여 수행되었습니다.MULE_INTERNAL코딩 방식을 선택한 다음 대상 인코딩으로 이동합니다. 비효율적이라는 점 외에도 이는 변환 시 번역할 수 없는 문자가 발견되면 오류 메시지가 변환 실패에 대해 혼란스럽게 불평한다는 것을 의미합니다.MULE_INTERNAL, 사용자에게 표시되는 인코딩이 아닙니다.

  • 동일한 역할 ID로 테이블에 액세스할 때만 외부 테이블 조인을 원격무지개 토토 수행하는 것을 고려하십시오(하나다 시게루, 아슈토시 바팟, 후지타 에츠로)

    이전에는 외부 조인 푸시다운 인프라가 보안 문제를 전적으로 개별 외부 데이터 래퍼에 맡겼지만 이는 너무 쉽게 만들었습니다.FDW실수로 미묘한 보안 허점을 만드는 것입니다. 따라서 각 테이블에 액세스할 역할 ID를 결정하는 것을 핵심 코드의 작업무지개 토토 만들고 모든 관련 관계에 대해 역할이 동일하지 않는 한 조인 푸시다운을 시도하지 마세요.

E.25.3.4. 유틸리티 명령

  • 허용복사의 출력을 복사하려면삽입/업데이트/삭제 ... 돌아오는 중질의 (Marko Tiikkaja)

    이전에는 중급자CTE이 결과를 얻으려면 작성해야 했습니다.

  • 소개변경객체확장 프로그램에 따라 다름(아비짓 메논-센)

    이 명령을 사용하면 데이터베이스 객체가 확장에 의존하는 것으로 표시되어 확장이 삭제되면 자동으로 삭제됩니다(필요 없이캐스케이드). 그러나 개체는 확장의 일부가 아니므로 별도로 덤프됩니다.pg_dump.

  • 만들다변경객체스키마 설정오류가 대부분의 객체 유형에 대해 역사적으로 발생했던 오류를 발생시키는 대신 객체가 이미 요청된 스키마에 있는 경우 아무것도 하지 않습니다(Marti Raudsepp)

  • 다음에 옵션 추가ALTER OPERATOR기존 연산자(Yury Zhuravlev)와 관련된 선택성 함수 변경을 허용

  • 추가존재하지 않는 경우옵션테이블 변경 열 추가(파브리지오 데 로예스 멜로)

  • 필요한 잠금 강도 감소테이블 변경fillfactor 및 autovacuum 관련 관계 옵션을 설정할 때 (Fabrízio de Royes Mello, Simon Riggs)

  • 소개액세스 방법 생성확장 프로그램이 색인 액세스 방법을 생성하도록 허용합니다(Alexander Korotkov, Petr Jelínek)

  • 추가캐스케이드옵션확장 프로그램 생성요청된 확장 프로그램이 의존하는 확장 기능을 자동무지개 토토 생성합니다(Petr Jelínek)

  • 만들다테이블 만들기...좋아요포함OID소스 테이블에 하나가 있는 경우 열(Bruce Momjian)

  • 만약에확인제약조건이 선언되었습니다.유효하지 않음테이블 생성 명령에서 자동무지개 토토 유효한 것무지개 토토 표시합니다. (Amit Langote, Amul Sul)

    테이블에 기존 행이 없기 때문에 안전합니다. 이는의 오랜 행동과 일치합니다.외래 키제약조건.

  • 수정드롭 연산자삭제하다pg_operator.oprcom그리고pg_operator.oprnegate삭제된 연산자(Roma Sokolov)에 대한 링크

    이전에는 그러한 링크가 그대로 남아 있었으며, 삭제된 연산자의 경우 다소 가능성이 낮지만 문제를 일으킬 수 있습니다.OID다른 운영자에게 재사용되었습니다.

  • 동일한 하위 계획을 두 번 표시하지 마십시오.설명출력(톰 레인)

    어떤 경우에는 일반적으로 색인 조건에 SubPlan 노드가 포함됩니다.설명동일한 하위 계획에 대한 데이터를 두 번 인쇄합니다.

  • 다음을 제외하고 시스템 열에 색인 생성을 허용하지 않습니다.OID열(데이비드 로울리)

    이러한 색인은 지원되는 것으로 간주되지 않았으며 시스템이 색인을 업데이트하지 않고 튜플의 시스템 열 필드를 변경할 수 있으므로 오작동할 가능성이 매우 높습니다. 그러나 이전에는 생성을 방지하기 위한 오류 검사가 없었습니다.

E.25.3.5. 권한 관리

  • 권한 시스템을 사용하여 민감한 기능에 대한 접근을 관리합니다(스티븐 프로스트)

    이전에는 보안에 민감한 많은 함수에는 수퍼유저가 아닌 사람이 호출하면 오류를 발생시키는 내장된 검사가 포함되어 있었습니다. 이로 인해 비교적 일상적인 일부 작업에는 수퍼유저 역할을 사용해야 했습니다. 이제 내장된 오류 검사가 사라졌습니다.initdb기본 공개 취소실행이 기능에 대한 권한입니다. 이를 통해 설치 시 모든 슈퍼유저 권한이 필요하지 않은 신뢰할 수 있는 역할에 이러한 기능의 사용 권한을 부여하도록 선택할 수 있습니다.

  • 일부 생성PostgreSQL : 문서 : 9.6 : 기본 토토 사이트 추천이전에는 수퍼유저 전용 기능이었던 기능에 대한 액세스 권한을 부여하는 데 사용할 수 있습니다(스티븐 프로스트)

    현재 유일한 역할은 다음과 같습니다.pg_signal_backend, 하지만 앞으로 더 많은 기능이 추가될 예정입니다.

E.25.3.6. 데이터 유형

  • 개선사설 토토 사이트 : 문서 : 9.6 : 전문 검색구, 즉 특정 순서로 서로 인접해 있거나 특정 거리를 두고 나타나는 어휘 검색 지원(Teodor Sigaev, Oleg Bartunov, Dmitry Ivanov)

    구문 검색 쿼리는 다음에서 지정할 수 있습니다.tsquery새 연산자를 사용하여 입력<-그리고<N. 전자는 앞과 뒤의 어휘가 순서대로 서로 인접해 나타나야 함을 의미합니다. 후자는 정확히 일치해야 함을 의미합니다.N어휘가 분리되어 있습니다.

  • 배열 슬라이스 지정자에서 하나 또는 두 경계 모두 생략 허용, 예:array_col[3:](유리 주라블레프)

    생략된 경계는 해당 배열 첨자의 상한 또는 하한으로 간주됩니다. 이를 통해 많은 일반적인 사용 사례에 대해 더 간단한 사양이 가능해졌습니다.

  • 범위를 벗어난 날짜 및 타임스탬프에 더욱 주의하세요(Vitaly Burovoy)

    이 변경으로 예상치 못한 범위 이탈 오류가 방지됩니다.시간대가 포함된 타임스탬프값이 구현 한계에 매우 가깝습니다. 이전에는"같은"값은 다음에 따라 허용되거나 허용되지 않을 수 있습니다.시간대설정, 이는 제시 시 허용된 값에서 덤프 및 다시 로드가 실패할 수 있음을 의미합니다. 이제 상응하는 내용에 따라 제한이 적용됩니다.UTC현지 시간이 아닌 시간, 독립성을 갖기 위해시간대.

    또한,PostgreSQL이제 다음과 같은 새로운 날짜 또는 타임스탬프 값을 계산하는 작업에서 오버플로를 감지하는 데 더욱 주의를 기울입니다.날짜 + 정수.

  • 기하학적 데이터 유형의 경우 다음을 확인하세요.무한대그리고NaN구성요소 값은 입력 및 출력 중에 일관되게 처리됩니다(Tom Lane)

    이러한 값은 이제 항상 간단한 문자열과 동일하게 인쇄됩니다.float8열이며 입력 시 동일한 방식으로 허용됩니다. 이전에는 동작이 플랫폼에 따라 달랐습니다.

  • 업그레이드ispell현대를 처리하는 사전 유형훈스펠파일 및 더 많은 언어 지원(Artur Zakirov)

  • 뒤돌아보기 제약조건 구현정규 표현식(톰 레인)

    뒤보기 제약조건은 텍스트를 소비하지 않는다는 점에서 미리보기 제약조건과 같습니다. 그러나 현재 지점에서 시작하는 일치 항목이 아닌 문자열의 현재 지점에서 끝나는 일치 항목의 존재(또는 존재하지 않음)를 확인합니다. 다른 많은 정규 표현식 엔진에도 비슷한 기능이 있습니다.

  • 정규 표현식에서 명백한 세 자리 8진수 이스케이프인 경우\nnn377(십진수 255)을 초과합니다. 대신 두 자리 8진수 이스케이프라고 가정합니다(Tom Lane)

    이것은 행동을 현재와 일치하게 만듭니다Tcl출시.

  • 트랜잭션 ID 연산자 추가xid < xid그리고xid < int4, 해당 동등 연산자와의 일관성을 위해(Michael Paquier)

E.25.3.7. 기능

  • 추가jsonb_insert()새 요소를 삽입하는 함수jsonb배열 또는 이전에 존재하지 않았던 키를 ajsonb객체 (드미트리 돌고프)

  • 정확도 향상ln(), 로그(), 특급()파우()유형에 대한 함수숫자(딘 라시드)

  • 추가규모(숫자)a의 표시 배율을 추출하는 함수숫자값 (마르코 티카자)

  • 도 단위로 작동하는 삼각 함수 추가 (Dean Rasheed)

    예를 들어,신()인수를 각도로 측정하는 반면죄()라디안 단위로 측정됩니다. 이러한 함수는 정확한 결과가 예상되는 값에 대해 정확한 결과를 제공하기 위해 어느 정도 길이를 사용합니다.sin(30) = 0.5.

  • 삼각 함수가 처리되는지 확인무한대그리고NaN다음에 대한 입력POSIX표준 (딘 라시드)

    POSIX표준에서는 이러한 함수가 반환되어야 한다고 규정합니다.NaNforNaN입력, 다음을 포함하여 범위를 벗어난 입력에 대해 오류가 발생해야 합니다.무한대. 이전에는 플랫폼에 따라 우리의 행동이 다양했습니다.

  • 만들다to_timestamp(float8)변환 부동소수점무한대타임스탬프로무한대(비탈리 부로보이)

    이전에는 무한 입력으로 인해 실패했습니다.

  • 다음에 대한 새 기능 추가ts벡터데이터 (스타스 켈비치)

    새로운 기능은ts_delete(), ts_filter(), unnest(), tsVector_to_array(), array_to_tsVector()및의 변형설정중량()지정된 어휘소에 대해서만 가중치를 설정합니다.

  • 허용ts_stat()그리고tsVector_update_trigger()정확히 해당 유형이 아닌 예상 인수 유형과 바이너리 호환 가능한 유형의 값에 대해 작동합니다. 예를 들어 허용citext어디에서텍스트예상됨(Teodor Sigaev)

  • 가변 함수 추가num_nulls()그리고num_nonnulls()null이거나 null이 아닌 인수의 수를 계산합니다(Marko Tiikkaja)

    사용 예는 다음과 같습니다CHECK(num_nonnulls(a,b,c) = 1)a,b,c 중 정확히 하나가 아니라고 주장함NULL. 이러한 함수는 배열에서 null 또는 null이 아닌 요소의 수를 계산하는 데에도 사용할 수 있습니다.

  • 기능 추가parse_ident()적격한 분할, 인용 가능SQL식별자를 해당 부분무지개 토토 분리(Pavel Stehule)

  • to_number(), 해석하다V형식 코드는 10의 다음 자릿수 제곱으로 나눕니다.V(브루스 몸지안)

    이것은 반대 방식무지개 토토 작동하게 합니다.to_char().

  • 만들다to_reg*()함수 허용 유형텍스트아님cstring(페트르 코로베이니코프)

    이렇게 하면 인수가 단순한 리터럴 상수가 아닌 대부분의 경우 명시적 형변환을 작성할 필요가 없습니다.

  • 추가pg_size_bytes()사람이 읽을 수 있는 크기의 문자열을 숫자로 변환하는 함수(Pavel Stehule, Vitaly Burovoy, Dean Rasheed)

    이 함수는 다음에 의해 생성된 것과 같은 문자열을 변환합니다.pg_size_pretty()바이트로. 사용 예는 다음과 같습니다.pg_class에서 oid::regclass를 선택하세요. WHERE pg_total_relation_size(oid) pg_size_bytes('10GB').

  • pg_size_pretty(), 양수와 유사하게 음수의 형식을 지정합니다(Adrian Vondendriesch)

    이전에는 음수는 축약되지 않았으며 단지 바이트 단위로 인쇄되었습니다.

  • 선택사항 추가missing_ok인수현재_설정()기능 (데이비드 크리스텐슨)

    이를 통해 인식되지 않는 매개변수 이름에 대한 오류를 방지하고 대신에NULL.

  • 다양한 카탈로그 검사 기능을 반환하도록 변경NULL잘못된 입력의 경우(Michael Paquier)

    pg_get_viewdef()이제 반환됨NULL잘못된 보기가 제공된 경우OID및 여러 유사한 함수도 마찬가지로 반환됩니다.NULL잘못된 입력입니다. 이전에는 이러한 경우가 일반적으로 다음과 같은 결과로 이어졌습니다."캐시 조회 실패"사용자가 직면하는 경우에는 발생하지 않는 오류입니다.

  • 수정pg_replication_origin_xact_reset()아무 주장도 하지 않기 위해 (후지이 마사오)

    문서에는 인수가 없다고 나와 있으며 C 코드는 인수를 기대하지 않았지만 다음 항목은pg_proc실수로 두 개의 인수를 지정했습니다.

E.25.3.8. 서버측 언어

  • Postgre배트맨 토토 : 문서 : 9.6 : PL/PG배트맨 토토 -배트맨 토토 절차 언어, 불일치 감지계속그리고종료실행 시간이 아닌 함수를 컴파일하는 동안의 명령문(Jim Nasby)

  • 연장PL/파이썬59537_59685

  • PL/Python 함수가 다음을 통해 자신을 재귀적으로 호출하도록 허용SPI, 하나의 쿼리 내에서 여러 개의 집합 반환 PL/Python 함수가 호출될 때 동작 수정(Alexey Grishchenko, Tom Lane)

  • PL/Python의 세션 수명 메모리 누수 수정(Heikki Linnakangas, Haribabu Kommi, Tom Lane)

  • 현대화PL/TclTcl을 사용하려면"개체" API60196_60254

    이것은 경우에 따라 성능을 크게 향상시킬 수 있습니다. 참고하세요PL/Tcl이제 Tcl 8.4 이상이 필요합니다.

  • PL/Tcl, 데이터베이스 보고 오류가 Tcl의 추가 정보를 반환하도록 합니다.오류코드전역 변수(Jim Nasby, Tom Lane)

    이 기능은 오류에 대한 보조 데이터를 반환하기 위한 Tcl 규칙을 따릅니다.

  • 수정PL/Tcl데이터베이스 인코딩 간의 인코딩 변환을 수행하고utf-8, 이는 Tcl이 기대하는 것입니다(Tom Lane)

    이전에는 문자열이 변환 없이 전달되어 비-ASCII데이터베이스 인코딩이 아닌 경우의 문자utf-8.

E.25.3.9. 클라이언트 인터페이스

  • 현지화되지 않은 버전 추가PostgreSQL : 문서 : 9.6 : 토토 핫 및 통지 메시지 필드오류 및 알림 메시지(Tom Lane)

    이 변경을 통해 클라이언트 코드는 심각도 문자열의 현지화된 변형에 대해 걱정할 필요 없이 오류 또는 알림의 심각도를 결정할 수 있습니다.

  • 기능 소개libpq그러므로컨텍스트메시지 필드는 항상 또는 오류가 없는 메시지에 대해서만 억제될 수 있습니다(Pavel Stehule)

    기본 동작PQerrorMessage()이제 인쇄됩니다컨텍스트오류에만 해당됩니다. 새로운 기능PQsetErrorContextVisibility()이를 조정하는 데 사용할 수 있습니다.

  • 지원 추가libpq다른 상세 수준무지개 토토 오류 메시지를 재생성하는 경우(Alex Shulgin)

    이것은 새로운 기능무지개 토토 완료되었습니다.PQresultVerboseErrorMessage(). 이는 지원합니다psql의 새로운\errverbose기능이며 다른 클라이언트에도 유용할 수 있습니다.

  • 개선libpq'sPQ호스트()기본 Unix 소켓 연결에 유용한 데이터를 반환하는 함수(Tom Lane)

    이전에는 반환되었음NULL명시적인 호스트 지정이 제공되지 않은 경우; 이제 기본 소켓 디렉터리 경로를 반환합니다.

  • 수정ecpg63045_63151

E.25.3.10. 클라이언트 애플리케이션

  • 추가--엄격한 이름옵션pg_dump그리고PostgreSQL(파벨 스테훌레)

    이 옵션은 a와 일치하는 항목이 없으면 프로그램이 불평하도록 합니다.-t또는-n옵션, 조용히 아무것도 하지 않는 것보다.

  • pg_dump, 시스템 개체에 대한 권한 할당의 로컬 변경 사항 덤프(Stephen Frost)

    수퍼유저가 내장 또는 확장으로 생성된 개체에 대한 권한 할당을 변경하는 것이 항상 가능했지만, 이러한 변경 사항은 이전에는 덤프 및 다시 로드에서 손실되었습니다. 지금,pg_dump는 이러한 변경 사항을 인식하고 덤프합니다. (단, 9.6 이상 서버에서 덤프할 때만 작동합니다.)

  • 허용pg_dump확장 소유 스키마 내에 있는 확장 소유가 아닌 개체를 덤프하려면(Martín Marqués)

    이전에는 이러한 개체가 해당 스키마를 소유한 확장 프로그램에 속하는 것으로 잘못 가정되었기 때문에 무시되었습니다.

  • pg_dump출력, 테이블별로 고유하게 명명된 개체 유형(예: 트리거)에 대한 개체 태그에 테이블 이름을 포함합니다(Peter Eisentraut)

E.25.3.10.1. psql

  • 여러 지원-c그리고-f명령줄 옵션(Pavel Stehule, Catalin Iacob)

    지정된 작업은 옵션이 제공된 순서대로 수행된 다음psql종료됩니다.

  • 추가\crosstabview교차표 디스플레이에 쿼리 결과를 인쇄하는 명령(Daniel Vérité)

    크로스탭 표시에서 하나의 쿼리 결과 열의 데이터 값은 다른 쿼리 결과 열에서 가져온 열과 행 헤더의 그리드에 배치됩니다.

  • 추가\errverbose완전히 자세한 내용무지개 토토 마지막 서버 오류를 표시하는 명령(Alex Shulgin)

    이것은 예상치 못한 오류가 발생한 후에 유용합니다. 더 이상 조정할 필요가 없습니다.상세함기본적무지개 토토 표시되지 않는 오류 필드를 보려면 변수를 설정하고 실패를 다시 만드세요.

  • 추가\ev그리고\sv보기 정의 편집 및 표시 명령(Petr Korobeinikov)

    이것들은 기존과 평행합니다\ef그리고\sf함수에 대한 명령.

  • 추가\gexec쿼리를 실행하고 결과를 새 쿼리로 다시 제출하는 명령(Corey Huinker)

  • 허용\pset C문자열일관성을 위해 테이블 제목을 설정합니다.\C문자열(브루스 몸지안)

  • \pset 확장 자동모드, 열이 하나만 있는 쿼리 결과에 확장 형식을 사용하지 마세요(Andreas Karlsson, Robert Haas)

  • 다음에 의한 헤더 출력 개선\watch명령 (Michael Paquier, Tom Lane)

    포함\pset 제목설정된 경우 문자열을 설정하고 헤더의 사전 제작된 부분을 다음과 같이 줄입니다.타임스탬프(매번Ns). 또한 타임스탬프 형식은 이제 다음을 따릅니다.psql의 로케일 환경.

  • 현재 줄뿐만 아니라 전체 입력 쿼리를 고려하도록 탭 완성 논리를 개선합니다(Tom Lane)

    이전에는 명령을 여러 줄로 나누면 이전 줄의 단어를 확인해야 했던 탭 완성 규칙이 무효화되었습니다.

  • 탭 완성 동작의 다양한 사소한 개선(Peter Eisentraut, Vik Fearing, Kevin Grittner, Kyotaro Horiguchi, Jeff Janes, Andreas Karlsson, Fujii Masao, Thomas Munro, Masahiko Sawada, Pavel Stehule)

  • 추가즉시옵션%p연결된 백엔드의 프로세스 ID를 삽입합니다(Julien Rouhaud)

  • 기능을 소개합니다.컨텍스트메시지 필드는 항상 또는 오류가 없는 메시지에 대해서만 억제될 수 있습니다(Pavel Stehule)

    인쇄 중컨텍스트오류에만 적용되는 것이 이제 기본 동작입니다. 이는 특수 변수를 설정하여 변경할 수 있습니다.SHOW_CONTEXT.

  • 만들다\df+함수 액세스 권한 및 병렬 안전 속성 표시(Michael Paquier)

E.25.3.10.2. pgbench

  • SQL 명령pgbench스크립트는 이제 개행 문자가 아닌 세미콜론무지개 토토 끝납니다 (Kyotaro Horiguchi, Tom Lane)

    이 변경으로 인해 스크립트의 SQL 명령이 여러 줄로 확장될 수 있습니다. 기존 사용자 정의 스크립트를 수정하여 아직 세미콜론이 없는 각 줄의 끝에 세미콜론을 추가해야 합니다. (그렇게 해도 이전 버전에서 사용할 수 있는 스크립트가 중단되지 않습니다.pgbench.)

  • 부동 소수점 산술 및 일부 지원내장 함수, 백슬래시 명령의 표현식에서(Fabien Coelho)

  • 교체\setrandom내장 기능 포함 (Fabien Coelho)

    새 내장 기능에는 다음이 포함됩니다.무작위(), random_exponential()random_gaussian(), 이는와 동일한 작업을 수행합니다.\setrandom이지만 더 큰 표현식에 포함될 수 있으므로 사용하기가 더 쉽습니다. 이러한 추가가 이루어졌기 때문에\setrandom더 이상 사용되지 않으므로 제거하세요.

  • 사용자 정의 스크립트뿐만 아니라 내장 스크립트의 여러 복사본 호출 허용 (Fabien Coelho)

    이것은 새로운 것무지개 토토 완료되었습니다.-b스위치는 다음과 유사하게 작동합니다.-f맞춤 스크립트용.

  • 스크립트의 선택 확률(가중치) 변경 허용(Fabien Coelho)

    여러 스크립트가 지정되면 각각pgbench트랜잭션은 실행할 트랜잭션을 무작위로 선택합니다. 이전에는 항상 균일한 확률로 수행되었지만 이제는 다른 스크립트에 대해 다른 선택 확률을 지정할 수 있습니다.

  • 멀티 스크립트 실행에서 각 스크립트에 대한 통계 수집(Fabien Coelho)

    이 기능은 기존 전역 및 명령별 통계 출력에 중간 수준의 세부정보를 추가합니다.

  • 추가--진행-타임스탬프실행이 시작된 이후의 시간 대신 Unix epoch 타임스탬프로 진행 상황을 보고하는 옵션(Fabien Coelho)

  • 클라이언트 연결 수 허용 (-c)는 스레드 수(의 정확한 배수가 아닙니다.-j) (파비앙 코엘료)

  • -T옵션이 사용되면 지정된 시간이 끝나면 즉시 중지합니다(Fabien Coelho)

    이전에는 낮은 거래율을 지정하면 다음과 같은 문제가 발생할 수 있었습니다.pgbench지정된 것보다 훨씬 더 오래 기다리게 됩니다.

E.25.3.11. 서버 애플리케이션

  • 중 오류 보고 개선initdb의 포스트 부트스트랩 단계(Tom Lane)

    이전에는 오류로 인해 전체 입력 파일을 다음과 같이 보고했습니다."실패한 쿼리"; 이제 현재 쿼리만 보고됩니다. 원하는 동작을 얻으려면 다음을 쿼리하세요.initdb의 입력 파일은 빈 줄로 구분되어야 합니다.

  • 속도를 높이세요initdb모든 포스트 부트스트랩 단계에 단 하나의 독립형 백엔드 세션을 사용하여(Tom Lane)

  • 개선pg_rewind대상 타임라인이 변경될 때 작동할 수 있도록 (Alexander Korotkov)

    예를 들어 승격된 대기를 이전 마스터 타임라인의 일부 상태로 되감는 것이 가능합니다.

E.25.3.12. 소스 코드

  • 오래된 항목 제거heap_formtuple/heap_modifytuple/heap_deformtuple함수 (Peter Geoghegan)

  • 만들려면 매크로 추가AllocSetContextCreate()더 간단하고 안전한 호출(Tom Lane)

    메모리 컨텍스트에 대한 개별 크기 조정 매개변수를 작성하는 것은 이제 새로운 매크로 중 하나를 사용하기 위해 더 이상 사용되지 않습니다.ALLOCSET_DEFAULT_SIZES, ALLOCSET_SMALL_SIZES, 또는ALLOCSET_START_SMALL_SIZES. 그러나 기존 코드는 계속 작동합니다.

  • 무조건 사용정적 인라인헤더 파일의 함수(Andres Freund)

    이로 인해 매우 오래된 컴파일러에서는 경고 및/또는 코드 공간 낭비가 발생할 수 있지만 표기법 개선은 그만한 가치가 있는 것 같습니다.

  • 개선인프라 테스트(Michael Paquier, Craig Ringer, Álvaro Herrera, Stephen Frost)

    특히, 이제 이 인프라를 사용하여 복구 시나리오를 테스트하는 것이 가능합니다.

  • 만들다trace_lwlocks이름으로 개별 잠금 식별(Robert Haas)

  • 개선psql의 탭 완성 코드 인프라(Thomas Munro, Michael Paquier)

    탭 완성 규칙은 이제 작성하기가 상당히 쉽고 간결해졌습니다.

  • 못을 박다pg_shseclabel시스템 카탈로그를 캐시에 저장하여 연결 인증 중에 액세스할 수 있도록 합니다(Adam Brightwell)

    핵심 코드는 인증을 위해 이 카탈로그를 사용하지 않지만 확장 프로그램은 이를 참조할 수 있습니다.

  • 재구조화색인 액세스 방법API대부분을 숨기려면C레벨 (Alexander Korotkov, Andrew Gierth)

    이 변경으로 색인이 현대화됩니다.AM API외부 데이터 래퍼 및 테이블 샘플 핸들러에 채택한 디자인과 더 유사해 보입니다. 이는 다음을 단순화합니다.C코드를 사용하여 설치 가능한 확장에서 색인 액세스 방법을 정의하는 것이 훨씬 더 실용적입니다. 결과적으로 대부분의 열은pg_am시스템 카탈로그가 사라졌습니다. 새로운검사 기능SQL 쿼리가 이전에 검색할 수 있었던 인덱스 AM 속성을 결정할 수 있도록 추가되었습니다.pg_am.

  • 추가메이저 토토 사이트 : 문서원래 권한을 보유하는 시스템 카탈로그initdb-생성 및 확장 생성 개체(스티븐 프로스트)

    이 인프라는 다음을 허용합니다pg_dump설치로 인해 시스템 개체에 연결된 권한에 발생한 변경 사항을 덤프합니다. 이전에는 이러한 변경 사항이 덤프 및 다시 로드 시 손실되었지만 이제는 보존됩니다.

  • 확장 프로그램이 사용자 정의를 할당하는 방식 변경LW잠금(아미트 카필라, 로버트 하스)

    RequestAddinLWLocks()함수는 제거되고 다음으로 대체됩니다.RequestNamedLWLockTranche(). 이를 통해 사용자 정의를 더 잘 식별할 수 있습니다.LW잠금이며 오류가 발생할 가능성이 적습니다.

  • 여러 세션이 동시에 대기할 수 있도록 격리 테스터를 개선하여 교착 상태 시나리오 테스트를 허용합니다(Robert Haas)

  • 확장 가능한 노드 유형 소개(KaiGai Kohei)

    이 변경으로 인해FDWs 또는 사용자 정의 스캔 공급자를 사용하여 이전보다 더 편리한 형식으로 계획 트리에 데이터를 저장할 수 있습니다.

  • 플래너가 생성 및 비교를 통해 사후 스캔/조인 쿼리 단계를 처리하도록 합니다.경로, 많은 임시 로직을 대체함(Tom Lane)

    이 변경은 현재 사용자가 볼 수 있는 미미한 개선 사항만을 제공하지만 이전 코드 구조를 사용하여 해결하기에는 비실용적이었던 많은 상위 계획 개선 사항에 대한 향후 작업을 가능하게 합니다.

  • 부분 집계 지원(David Rowley, Simon Riggs)

    이 변경을 통해 집계 함수의 계산을 별도의 부분으로 분할할 수 있습니다. 예를 들어 병렬 작업자 프로세스가 집계 계산에 협력할 수 있습니다. 앞으로는 로컬 및 원격 데이터 전체의 집계가 부분적으로 원격 끝에서 발생하도록 허용할 수 있습니다.

  • 일반 명령 진행 보고 기능 추가(Vinayak Pokale, Rahila Syed, Amit Langote, Robert Haas)

  • 분리하세요psql's플렉스다른 클라이언트 프로그램에서 사용할 수 있도록 하는 어휘 분석기(Tom Lane, Kyotaro Horiguchi)

    이것은 명령 경계를 식별할 수 있을 만큼 충분히 SQL 명령을 구문 분석할 수 있어야 하는 프로그램의 코드 중복을 제거합니다. 전체적으로 그렇게 하는 것은 원하는 것보다 더 고통스럽습니다. 지금까지는 그렇습니다.psql우리가 지원하는 클라이언트 프로그램 중에서 정말 좋은 결과를 얻었습니다.

    새로운 소스 코드 하위 디렉터리src/fe_utils/이 코드와 클라이언트 프로그램 전체에서 공유되는 다른 코드를 보관하기 위해 만들어졌습니다. 이전에는 빌드 시 소스 파일을 심볼릭 링크하거나 복사하여 이러한 공유가 이루어졌는데, 이는 보기 흉하고 중복 컴파일이 필요했습니다.

  • 소개WaitEventSet API일반적으로 한 대기에서 다음 대기로 변경되지 않는 이벤트 세트에 대한 효율적인 대기를 허용합니다(Andres Freund, Amit Kapila)

  • 쓰기를 위한 일반 인터페이스 추가WAL기록(Alexander Korotkov, Petr Jelínek, Markus Nullmeier)

    이 변경으로 확장 프로그램이 쓸 수 있게 되었습니다.WAL표준 레이아웃을 사용하는 페이지 변경 사항을 기록합니다. 다시 재생해야 하는 문제WAL확장 프로그램에 액세스하지 못하는 문제는 일반 재생 코드를 사용하여 해결됩니다. 이를 통해 확장은 예를 들어 인덱스 액세스 방법을 구현하고 다음을 가질 수 있습니다.WAL그들을 지원합니다.

  • 일반 지원WAL논리적 디코딩을 위한 메시지(Petr Jelínek, Andres Freund)

    이 기능을 사용하면 확장 프로그램이 데이터를 다음에 삽입할 수 있습니다.WAL논리적 디코딩 플러그인무지개 토토 읽을 수 있지만 물리적 데이터 복원에는 연결되지 않은 스트림

  • SP-GiST 연산자 클래스가 임의의 항목을 저장하도록 허용"순회 값"지수를 내리는 동안 (Alexander Lebedev, Teodor Sigaev)

    이것은 다소 비슷합니다"재구성된 값", 그러나 임의의 데이터 청크일 수 있으며 반드시 인덱싱된 열과 동일한 데이터 유형일 필요는 없습니다.

  • 소개해 주세요LOG_SERVER_ONLY다음에 대한 메시지 수준ereport()(데이비드 스틸)

    이 수준은 다음과 같이 작동합니다.로그단, 메시지는 결코 클라이언트로 전송되지 않습니다. 감사 및 유사한 애플리케이션에 사용하기 위한 것입니다.

  • 제공메이크파일생성된 모든 헤더를 빌드하는 대상(Michael Paquier, Tom Lane)

    submake-generated-headers79883_80020"독립형".

  • OpenSSL 1.1.0 지원(Andreas Karlsson, Heikki Linnakangas)

E.25.3.13. 추가 모듈

  • 구성 매개변수 추가auto_explain.sample_rate허용하다PostgreSQL : 문서 : 9.6모든 쿼리의 구성 가능한 부분만 캡처합니다(Craig Ringer, Julien Rouhaud)

    이를 통해 평균적으로 유용한 정보를 얻는 동시에 과도한 쿼리 트래픽에 대한 오버헤드를 줄일 수 있습니다.

  • 추가기여/블룸블룸 필터링을 기반무지개 토토 인덱스 액세스 방법을 구현하는 모듈 (Teodor Sigaev, Alexander Korotkov)

    이것은 주로 비핵심 인덱스 액세스 방법에 대한 개념 증명이지만 많은 열을 검색하는 쿼리에 그 자체로 유용할 수 있습니다.

  • 기여/큐브, 큐브에 대한 거리 연산자를 도입하고 큐브 열의 GiST 인덱스에서 kNN 스타일 검색을 지원합니다(Stas Kelvich)

  • 만들다기여/hstore'shstore_to_jsonb_loose()그리고hstore_to_json_loose()함수는 숫자가 무엇인지 동의합니다 (Tom Lane)

    이전에,hstore_to_jsonb_loose()숫자로 보이는 문자열을 다음으로 변환합니다.JSON문자열이 아닌 숫자(정확히 일치하지 않더라도)JSON숫자에 대한 구문 사양입니다. 이는 다음과 일치하지 않습니다.hstore_to_json_loose(), 따라서 테스트를 강화하여JSON구문.

  • 다음에 대한 선택성 추정 함수 추가기여/intarray해당 연산자를 사용하여 쿼리 계획을 개선하는 연산자(Yury Zhuravlev, Alexander Korotkov)

  • 만들다기여/페이지검사'sheap_page_items()함수는 각 튜플의 원시 데이터를 표시하고 새 함수를 추가합니다.tuple_data_split()그리고heap_page_item_attrs()개별 튜플 필드 검사용(Nikolay Shaplov)

  • 선택사항 추가S2K반복 횟수 매개변수롤 토토 PostgreSQL :pgp_sym_encrypt()함수 (제프 제인)

  • 다음에 대한 지원 추가"단어 유사성"PostgreSQL : 문서(알렉산더 코로트코프, 아르투르 자키로프)

    이 함수와 연산자는 한 문자열과 다른 문자열의 가장 유사한 단일 단어 사이의 유사성을 측정합니다.

  • 구성 매개변수 추가pg_trgm.similarity_thresholdforcontrib/pg_trgm의 유사성 임계값(Artur Zakirov)

    이 임계값은 항상 구성 가능했지만 이전에는 특수 목적 기능에 의해 제어되었습니다.set_limit()그리고show_limit(). 이제 더 이상 사용되지 않습니다.

  • 개선contrib/pg_trgm83576_83681

  • 유사성 검색 성능 향상contrib/pg_trgmGIN 색인 (Christophe Fornaroli)

  • 추가사설 토토 사이트 postgresql :테이블 가시성 맵 검사를 허용하는 모듈(Robert Haas)

  • 추가postgresql : 문서 : 9.6기능을기여/sslinfo, 다음에 관한 정보를 인쇄합니다.SSL다음에 확장 프로그램이 있습니다.X509현재 연결에 사용된 인증서(Dmitry Voronin)

E.25.3.13.1. 윈 토토 PostgreSQL

  • 확장 프로그램이 외부 서버 옵션에 허용 목록에 있는 경우 확장 프로그램 제공 연산자 및 기능이 원격 실행을 위해 전송되도록 허용합니다(폴 램지)

    확장 프로그램이 원격 데이터베이스의 호환 버전에 존재하는 것으로 알려진 경우 사용자는 이 기능을 활성화할 수 있습니다. 확장 연산자와 관련된 쿼리를 보다 효율적으로 실행할 수 있습니다.

  • 원격 서버(Ashutosh Bapat)에서 정렬 수행을 고려하십시오.

  • 원격 서버에서 조인 수행을 고려하십시오(하나다 시게루, Ashutosh Bapat)

  • 가능한 경우 수행업데이트또는삭제완전히 원격 서버에 있음(Etsuro Fujita)

    이전에는 원격 업데이트에 다음을 보내는 것이 포함되었습니다.업데이트를 위해 선택명령을 실행한 다음 선택한 행을 하나씩 업데이트하거나 삭제합니다. 작업에 로컬 처리가 필요한 경우에는 여전히 필요하지만 쿼리의 모든 요소가 원격 서버로 전송해도 안전한 경우 이제 원격으로 수행할 수 있습니다.

  • 가져오기 크기를 서버 또는 테이블 옵션으로 설정하도록 허용(Corey Huinker)

    이전에는,postgres_fdw항상 원격 쿼리에서 한 번에 100개의 행을 가져왔습니다. 이제 해당 동작을 구성할 수 있습니다.

  • 모두 동일한 원격 사용자(Ashutosh Bapat)에 매핑되는 로컬 사용자 ID에 대해 단일 외부 서버 연결을 사용하십시오.

  • 원격 서버에 쿼리 취소 요청 전송 (Michael Paquier, Etsuro Fujita)

    이전에는 로컬 쿼리 취소 요청으로 인해 이미 전송된 원격 쿼리가 조기 종료되지 않았습니다.