| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| 토토 사이트 추천 : 문서 : 9.3 : 릴리스 8.1.1 | PostgreSQL : 문서 : 9.3 : 메이저 토토 사이트 노트 | 부록 E. 젠 토토 참고 | PostgreSQL : 문서 : 9.3 : 윈 토토 8.0.26 | |
출시일: 2005-11-08
이번 젠 토토의 주요 변경 사항:
공유 버퍼 캐시에 대한 액세스가 다음으로 식별되었습니다. 특히 다중 CPU 시스템에서 심각한 확장성 문제가 발생합니다. 이번 릴리스에서는 버퍼 관리자에서 잠금이 수행되는 방식 잠금 경합을 줄이고 개선하기 위해 점검되었습니다. 확장성. 버퍼 관리자도 a를 사용하도록 변경되었습니다."시계 청소"교체 정책.
이전 릴리스에서는 단일 색인만 사용하여 다음을 수행할 수 있었습니다. 테이블 조회. 이 기능을 사용하면 쿼리에 다음이 있는 경우어디에서 tab.col1 = 4 및 tab.col2 = 9그리고 없습니다 다중 열 인덱스 oncol1그리고col2, 하지만 다음에 색인이 있습니다.col1그리고 또 다른 것col2, 두 인덱스를 모두 검색하고 결과를 결합할 수 있습니다. 그런 다음 두 항목 모두와 일치하는 행에 대해서만 힙 페치를 수행합니다.col1그리고col2제한사항. 이는 많은 환경에서 매우 유용합니다. 인덱스 생성이 불가능한 구조화되지 않은 쿼리 가능한 모든 액세스 조건과 일치합니다. 비트맵 스캔이 유용합니다 단일 인덱스를 사용하더라도 무작위의 양이 줄어들기 때문입니다. 액세스가 필요합니다. 비트맵 인덱스 스캔은 검색에 효율적입니다. 전체 테이블의 상당히 큰 부분인 반면 일반 인덱스 스캔은 그렇지 않습니다.
2단계 커밋을 통해 여러 시스템에서 트랜잭션을 "준비"할 수 있습니다. 모든 컴퓨터가 성공적으로 준비를 마치면 트랜잭션(실패 없음)이면 모든 트랜잭션을 커밋할 수 있습니다. 짝수 준비 후에 머신이 충돌하면 준비된 트랜잭션이 머신이 다시 시작된 후에 커밋됩니다. 새로운 구문에는 다음이 포함됩니다.거래 준비그리고커밋/롤백 준비됨. 새로운 시스템 보기pg_prepared_xacts또한 추가되었습니다.
역할은 사용자와 그룹의 조합입니다. 사용자와 마찬가지로 그들은 로그인 기능을 가질 수 있으며 그룹과 마찬가지로 역할은 다른 기능을 가질 수 있습니다. 멤버로서의 역할. 역할은 기본적으로 다음과 같은 차이점을 제거합니다. 사용자 및 그룹. 예를 들어 역할은 다음과 같습니다.
로그인 기능 있음(선택 사항)
객체 소유
데이터베이스 개체에 대한 액세스 권한 보유
자신이 속한 다른 역할로부터 권한 상속
사용자가 역할에 로그인하면, 그는 다음의 능력을 얻습니다. 로그인 역할과 상속된 역할을 모두 사용할 수 있습니다.역할 설정그녀가 구성원인 다른 역할로 전환하려면 의. 이 기능은 SQL 표준 개념을 일반화한 것입니다. 역할의. 이 변경 사항은 또한 다음을 대체합니다.pg_shadow그리고pg_group새로운 역할 가능 카탈로그별pg_authid그리고pg_auth_members. 이전 테이블은 다음과 같이 재정의됩니다. 새 역할 테이블에 대한 읽기 전용 보기입니다.
MIN()그리고MAX()(톰)이전 릴리스에서는 색인을 사용하는 유일한 방법MIN()또는MAX()다음과 같이 쿼리를 다시 작성했습니다.탭에서 열 선택 ORDER BY 열 LIMIT 1. 색인
이제 자동으로 사용됩니다.
autovacuum을 서버에 통합하면 다음이 가능해집니다. 데이터베이스 서버와 동기화되어 자동으로 시작 및 중지됩니다. 다음에서 autovacuum을 구성할 수 있습니다.postgresql.conf.
그동안PostgreSQL의 MVCC 잠금 허용합니다선택절대로 차단되지 않음 작성자이므로 일반적인 경우에는 공유 행 잠금이 필요하지 않습니다. 작업, 공유 잠금은 다음이 필요한 애플리케이션에 유용합니다. 공유 행 잠금. 특히 이렇게 하면 잠금이 줄어듭니다. 참조 무결성 검사에 의해 부과된 요구 사항입니다.
이 종속성 메커니즘 확장은 역할이 자신이 소유한 데이터베이스 개체가 아직 있는 동안 삭제됩니다. 이전에는 실수로 발생할 수 있었습니다."고아"객체 소유자를 삭제하여 개체를 삭제합니다. 이 동안 복구할 수 있었지만 지저분하고 불쾌했습니다.
새로운constraint_exclusion구성 매개변수는 하위 테이블에 대한 조회를 방지합니다. 제약 조건은 하위 항목에 일치하는 행이 없음을 나타냅니다. 테이블.
이것은 기본 유형의 테이블 파티셔닝을 허용합니다. 만약 어린이라면 테이블은 별도의 키 범위를 저장하며 이는 다음을 사용하여 적용됩니다. 적절한확인제약조건, 제약 조건이 적용되면 최적화 프로그램은 하위 테이블 액세스를 건너뜁니다. 하위 테이블에 일치하는 행이 없음을 보장합니다.
다음을 사용하여 덤프/복원pg_dump이다 이전 데이터를 마이그레이션하려는 사람들에게 필요합니다. 릴리스.
8.0 릴리스에서는 다음과 같이 발표했습니다.to_char()간격에 대한 함수가 제거됩니다
8.1에서. 그러나 더 나은 API가 제안되지 않았기 때문에,to_char(간격)향상되었습니다
8.1에서는 서버에 유지됩니다.
다음 비호환성을 관찰하십시오:
add_missing_from이제 거짓입니다. 기본값(닐)
기본적으로 테이블이 다음에서 사용되면 오류가 생성됩니다. a 없이 쿼리발신참조. 오래된 동작은 계속 사용할 수 있지만 매개변수를 다음으로 설정해야 합니다. 그것을 얻으려면 'true'입니다.
설정이 필요할 수도 젠 토토add_missing_from을 로드하려면 true로 설정하세요. 기존 덤프 파일(덤프에 생성된 보기 또는 규칙이 포함된 경우) 암시적- 사용발신구문. 이 한 번만 귀찮은 일이 될 것입니다. 왜냐하면PostgreSQL8.1은 그러한 뷰를 변환하고 표준 명시적 규칙-발신구문. 따라서 후속 덤프에는 문제가 발생하지 않습니다.
길이가 0인 문자열이 입력되었습니다('') for플로트4/float8/oid오류를 발생시키려면, 0으로 취급하는 대신 (Neil)
이 변경 사항은 현재 처리 방식과 일치합니다. 정수에 대한 길이가 0인 문자열. 이번 변경 일정은 8.0에서 발표되었습니다.
default_with_oids이제 다음은 거짓입니다. 기본값(닐)
이 옵션을 false로 설정하면 사용자가 생성한 테이블은 더 이상 OID 열이 있는 경우를 제외하고OIDS 포함이다 에 지정됨테이블 생성. OID를 통해 의 모든 젠 토토에 존재했습니다.PostgreSQL, 사용이 제한되어 젠 토토. 길이는 4바이트에 불과하며 카운터는 모든 항목에서 공유됩니다. 설치된 데이터베이스. 행을 고유하게 식별하는 기본 방법 시퀀스를 통해 이루어지며연재유형, 이후부터 지원되었습니다.PostgreSQL 6.4.
추가E''구문은 결국 평범함 문자열은 백슬래시를 문자 그대로 처리할 수 젠 토토(Bruce)
현재PostgreSQL프로세스 특수 이스케이프를 도입하는 문자열 리터럴의 백슬래시 시퀀스(예:\n또는\010. 이를 통해 특수 항목을 쉽게 입력할 수 있지만 값을 사용하므로 비표준이며 다음에서 응용 프로그램을 이식합니다. 다른 데이터베이스는 더 어렵습니다. 이러한 이유로,PostgreSQL프로젝트가 다음을 제거할 계획입니다. 문자열에서 백슬래시의 특별한 의미. 뒤로 호환성과 특별한 백슬래시 처리를 원하는 사용자를 위해 새로운 문자열 구문이 생성되었습니다. 이 새로운 문자열 구문은 다음과 같습니다. 다음을 작성하여 형성됨E즉시 문자열을 시작하는 작은따옴표 앞에 위치합니다. 예:안녕\n'. 이 릴리스는 변경되지 않지만 문자열에서 백슬래시를 처리하면 새로운 구성이 추가됩니다. 사용자가 향후 애플리케이션을 마이그레이션하는 데 도움이 되는 매개변수 출시:
standard_conforming_strings— 이것을 합니까 젠 토토는 일반 문자열에서 문자 그대로 백슬래시를 처리합니까?
escape_string_warning— 경고 E가 아닌 일반 문자열의 백슬래시
그standard_conforming_strings값 읽기 전용입니다. 애플리케이션은 값을 검색하여 방법을 알 수 있습니다. 백슬래시가 처리됩니다. (매개변수의 존재 여부는 다음과 같습니다. 다음과 같은 표시로 간주됩니다.E''문자열 구문이 지원됩니다.) 향후 릴리스에서는standard_conforming_strings참이 될 것입니다. 즉, 백슬래시는 E가 아닌 문자열에서 문자 그대로 처리됩니다. 준비하다 이 변경을 위해 다음을 사용하세요.E''문자열 위치 특별한 백슬래시 처리가 필요하고 켜집니다.escape_string_warning추가 문자열 찾기 사용하려면 변환해야 합니다.E''. 또한 두 개의 작은따옴표('') 삽입 대신 문자열의 리터럴 작은따옴표PostgreSQL-지원되는 백슬래시 구문 작은따옴표(\'). 전자는 표준을 준수하며 다음을 사용할 필요가 없습니다.E''문자열 구문. 다음을 사용할 수도 있습니다.$$백슬래시를 처리하지 않는 문자열 구문 특별히.
만들다REINDEX 데이터베이스모두 다시 색인화 데이터베이스의 인덱스(Tom)
이전에는,REINDEX 데이터베이스재색인화됨 시스템 테이블만. 이 새로운 동작은 더욱 직관적인 것 같습니다. 새로운 명령REINDEX 시스템오래된 것을 제공합니다 시스템 테이블만 다시 색인화하는 기능입니다.
읽기 전용 대형 개체 설명자는 이제 MVCC 스냅샷을 따릅니다. 의미론
큰 개체를 다음으로 열 때INV_READ(그리고 아님INV_WRITE), 설명자에서 읽은 데이터는
이제 반영하십시오."스냅샷"큰
에서 사용 중인 트랜잭션 스냅샷 당시의 객체 상태
호출된 쿼리lo_open(). 받는 사람
항상 최신 커밋을 반환하는 이전 동작을 얻습니다.
데이터, 포함INV_WRITE모드 플래그에서
에 대한lo_open().
시퀀스 함수의 인수에 대한 적절한 종속성 추가 (톰)
이전 릴리스에서는 시퀀스 이름이 다음에 전달되었습니다.다음값(), currval()및setval()간단한 텍스트 문자열로 저장되었으며,
a에 사용된 시퀀스의 이름을 바꾸거나 삭제하는 것을 의미합니다.기본값절로 인해 해당 절이 유효하지 않게 되었습니다. 이번 릴리스
새로 생성된 모든 시퀀스 함수 인수를 내부로 저장합니다.
OID를 사용하면 시퀀스 이름 변경을 추적하고 추가할 수 있습니다.
부적절한 시퀀스 제거를 방지하는 종속성 정보입니다. 그것
그런 것도 만든다기본값절은 다음에 면역됩니다.
스키마 이름 변경 및 검색 경로 변경.
일부 응용 프로그램은 런타임의 이전 동작에 의존할 수 있습니다. 시퀀스 이름을 검색합니다. 이 작업은 명시적으로 수행할 수 있습니다. 인수를 다음으로 캐스팅함텍스트, 예를 들어nextval('myseq'::text).
8.1에 로드된 8.1 이전 데이터베이스 덤프는 이전 버전을 사용합니다. 텍스트 기반 표현이므로 해당 기능이 없습니다. OID에 저장된 인수. 그러나 업데이트는 가능합니다. 텍스트 기반을 포함하는 데이터베이스기본값절. 먼저 이 쿼리를 다음과 같은 파일에 저장합니다.fixseq.sql:
'테이블 변경' 선택 ||
pg_catalog.quote_ident(n.nspname) || '.' ||
pg_catalog.quote_ident(c.relname) ||
' ALTER COLUMN ' || pg_catalog.quote_ident(a.attname) ||
' 기본값으로 설정 ' ||
regexp_replace(d.adsrc,
$$val\(\(('[^']*')::text\)::regclass$$,
$$발(\1$$,
'g') ||
';'
pg_namespace n, pg_class c, pg_attribute a, pg_attrdef d에서
n.oid = c.relnamespace AND
c.oid = a.attrelid AND
a.attrelid = d.adrelid AND
a.attnum = d.adnum AND
d.adsrc ~ $$val\(\('[^']*'::text\)::regclass$$;
다음으로 데이터베이스에 대해 쿼리를 실행하여 어떤 조정 사항이 있는지 알아보세요. 데이터베이스에는 이와 같이 필요합니다.db1:
psql -t -f fixseq.sql db1
다음이 표시됩니다.테이블 변경명령 데이터베이스를 최신 OID 기반으로 변환하는 데 필요함 표현. 명령이 합리적으로 보이면 이를 실행하여 업데이트하십시오. 데이터베이스:
psql -t -f fixseq.sql db1 | psql -e db1
이 프로세스는 각 데이터베이스에서 반복되어야 합니다. 업데이트되었습니다.
에psql, 인용되지 않은 처리\숫자+8진수 시퀀스(Bruce)
이전 릴리스에서는,\숫자+시퀀스는 십진수로 처리되었으며 오직\0숫자+8진수로 처리되었습니다. 이 변화는 일관성을 위해 만들어졌습니다.
접두사와 접미사에 대한 문법 생성 제거%그리고^연산자 (톰)
이것들은 문서화된 적이 없으며 사용이 복잡합니다. 모듈러스 연산자(%) 부정 포함 숫자.
만들다&<그리고&상자와 일치하는 다각형의 경우 "over" 연산자(Tom)
언어 생성제공된 내용을 무시할 수 있습니다. 다음의 정보에 찬성하는 주장pg_pltemplate(톰)
새로운 시스템 카탈로그pg_pltemplate기본 설정에 대한 정보를 전달하도록 정의되었습니다. 절차적 언어의 정의(예: 유효성 검사기 기능). 이 카탈로그에 항목이 있는 경우 언어가 생성되는 중입니다.언어 생성언어 이름을 제외한 모든 매개변수를 무시하고 대신 카탈로그 정보를 활용하세요. 이 조치를 취한 이유는 다음과 같습니다. 더 이상 사용되지 않는 언어 정의가 로드되는 문제 증가 오래된 덤프 파일로. 8.1부터,pg_dump절차적 언어를 덤프합니다. 정의는 그냥언어 생성이름, 템플릿 항목을 사용하여 로드 시간에 존재합니다. 우리는 이것이 보다 미래에 대비할 수 있을 것으로 기대합니다. 표현.
만들다pg_cancel_backend(int)반환
에부울보다는정수(닐)
일부 사용자는 8.1.X에 utf-8 데이터를 로드하는 데 문제가 있습니다. 이전 버전에서는 잘못된 utf-8 바이트를 허용했기 때문입니다. 데이터베이스에 입력될 시퀀스와 이번 릴리스 유효한 utf-8 시퀀스만 올바르게 허용합니다. 교정하는 한 가지 방법 dumpfile은 명령을 실행하는 것입니다.iconv -c -f utf-8 -t utf-8 -o cleanfile.sql 덤프파일.sql.-c옵션은 유효하지 않은 문자 시퀀스를 제거합니다. 에이 두 파일의 차이점은 유효하지 않은 시퀀스를 표시합니다.iconv전체 입력 파일을 읽어 들입니다. 메모리를 사용해야 할 수도 젠 토토.분할덤프를 여러 개로 나누기 위해 처리를 위해 더 작은 파일을 사용하세요.
아래에서 추가 변경 사항에 대한 자세한 설명을 찾을 수 있습니다. 사이포스트그레SQL8.1 및 이전 주요 릴리스입니다.
GiST 및 R-tree 인덱스 성능 개선(Neil)
해시 조인의 자동 크기 조정을 포함한 최적화 기능 개선 (톰)
여러 영역의 내부 API 점검
WAL 레코드 CRC를 64비트에서 32비트로 변경(Tom)
64비트 CRC를 계산하는 데 드는 추가 비용은 다음과 같다고 판단했습니다. 중요하며, 신뢰도 향상이 너무 미미하여 정당화할 수 없습니다. 그것.
WAL 페이지에 큰 빈 공백을 작성하는 것을 방지합니다(Tom)
SMP 시스템, 특히 Opteron의 스핀록 동작을 개선합니다. (톰)
비연속적인 색인 열이 여러 열에 사용되도록 허용 인덱스(톰)
예를 들어, 이는 a,b,c 열의 인덱스를 다음에서 사용할 수 있도록 허용합니다. 를 사용한 쿼리a = 4이고 c = 10인 경우.
WAL 로깅 건너뛰기다음으로 테이블 생성 / 선택(사이먼)
중 충돌 이후다음으로 테이블 생성복구 중에 테이블이 삭제될 수 있습니다. 테이블이 로드될 때 WAL 로그에 이유가 있습니다. (다음과 같은 경우에도 로깅이 계속 발생합니다. 그러나 WAL 보관은 활성화되어 있습니다.)
동시 GiST 인덱스 액세스 허용(Teodor, Oleg)
구성 매개변수 추가full_page_writes전체 페이지 쓰기를 제어하려면 월(브루스)
부분 디스크 쓰기로 인해 데이터베이스가 손상되는 것을 방지하려면,PostgreSQL완전한 사본을 작성합니다 각 데이터베이스 디스크 페이지가 처음 수정될 때 WAL에 저장됩니다. 체크포인트 이후. 이 옵션은 해당 기능을 끕니다. 더 많은 속도. 배터리 지원 디스크 캐시와 함께 사용하는 것이 안전합니다. 부분 페이지 쓰기가 발생할 수 없습니다.
사용O_DIRECT사용 시 사용 가능한 경우O_SYNCforwal_sync_method(이타가키 타카히로)
O_DIRECT디스크 쓰기가 우회됩니다. 커널 캐시 및 WAL 쓰기의 경우 이는 개선됩니다. 성능.
개선다음에서 복사성능(알론 골드슈브)
이것은 독서를 통해 이루어졌습니다복사문자 단위가 아닌 더 큰 덩어리로 입력하세요.
성능 향상횟수(), 합계,
AVG(), STDDEV()및차이()(닐, 톰)
트랜잭션 ID(XID) 랩어라운드로 인한 문제 방지 (톰)
이제 거래 카운터가 가까워지면 서버가 경고합니다. 랩 어라운드 지점. 카운터가 너무 가까워지면 랩어라운드하면 서버는 쿼리 수락을 중지합니다. 이는 다음을 보장합니다. 필요한 데이터 정리가 수행되기 전에 데이터가 손실되지 않습니다.
객체 ID(OID)가 기존 ID와 충돌하는 문제 수정 OID 카운터가 래핑된 후의 시스템 개체(Tom)
증가 필요성에 대한 경고 추가max_fsm_relations그리고max_fsm_pages중진공(론 메이어)
추가temp_buffers구성 사용자가 로컬 버퍼의 크기를 결정할 수 있도록 하는 매개변수 임시 테이블 액세스를 위한 영역(Tom)
세션 시작 시간 및 클라이언트 IP 주소 추가pg_stat_activity(매그너스)
조정pg_stat비트맵 스캔에 대한 보기 (톰)
일부 필드의 의미가 약간 변경되었습니다.
강화pg_locks보기 (톰)
클라이언트 측에 대한 로그 쿼리준비그리고실행(사이먼)
Kerberos 이름 및 사용자 이름 대소문자 구분을 허용합니다. 에 지정됨postgresql.conf(매그너스)
구성 매개변수 추가krb_server_hostname서버 호스트 이름이 서비스 주체(Todd Kover)의 일부로 지정됨
설정되지 않은 경우 다음의 항목과 일치하는 모든 서비스 주체 키탭을 사용할 수 있습니다. 이것은 새로운 Kerberos 일치 동작입니다. 릴리스.
추가log_line_prefix옵션 밀리초 타임스탬프(%m) 및 원격 호스트(%h) (Ed L.)
GiST 인덱스에 대한 WAL 로깅 추가(Teodor, Oleg)
GiST 인덱스는 이제 충돌 및 특정 시점에 안전합니다. 회복.
이전 항목 제거*.백업우리가 할 때 파일pg_stop_backup()(브루스)
이것은 많은 수의 공격을 방지합니다.*.백업기존 파일pg_xlog/.
TCP/IP 연결 유지 시간을 제어하기 위한 구성 매개변수 추가 유휴, 간격 및 횟수(Oliver Jowett)
이 값은 다음을 더욱 신속하게 감지할 수 있도록 변경될 수 있습니다. 클라이언트 연결이 끊겼습니다.
사용자별 및 데이터베이스별 연결 제한 추가(Petr 옐리네크)
사용 중사용자 변경그리고데이터베이스 변경, 이제 제한을 적용할 수 있습니다. 동시에 연결할 수 있는 최대 세션 수 특정 사용자 또는 특정 데이터베이스에. 한계를 0으로 설정 사용자 또는 데이터베이스 연결을 비활성화합니다.
백엔드당 2GB 이상의 공유 메모리 허용 64비트 머신의 작업 메모리(Koichi Suzuki)
새로운 시스템 카탈로그pg_pltemplate덤프에서 더 이상 사용되지 않는 절차적 언어 정의를 재정의할 수 있습니다. 파일(톰)
임시 보기 추가(이이지마 코주, 닐)
수정가지고 있는 중집계 없음 함수 또는그룹별그래서 쿼리는 단일 그룹을 반환합니다(Tom)
이전에는 이러한 경우를 처리했습니다.가지고 있는 중a와 같은 절어디절. 이는 사양에 따른 것이 아닙니다.
추가사용 중추가 허용 조항 지정할 테이블삭제(오일러 타베이라 데 올리베이라, 닐)
이전 릴리스에서는 지정하는 명확한 방법이 없었습니다. a의 조인에 사용될 추가 테이블삭제성명.업데이트이미가 젠 토토발신이 항목에 대한 절 목적.
다음에 대한 지원 추가\x16진수는 다음에서 이스케이프됩니다. 백엔드 및 ecpg 문자열(Bruce)
이것은 표준 C와 같습니다.\x이스케이프 구문. 8진수 이스케이프는 이미 지원되었습니다.
추가대칭 사이쿼리 구문 (파벨 스테훌레)
이 기능은 다음을 허용합니다사이비교 첫 번째 값이 두 번째 값보다 작을 필요는 없습니다. 에 대한 예2 [비대칭] 3과 1 사이거짓을 반환하는 반면대칭 3과 2 사이 1참을 반환합니다.비대칭 사이이미 지원되었습니다.
추가지금 대기 중옵션업데이트/공유를 위해 ... 선택(한스-유르겐 쇼닉)
그 동안statement_timeout구성 매개변수는 특정보다 많은 쿼리를 허용합니다. 취소할 시간,지금 대기 중옵션을 사용하면 쿼리를 즉시 취소할 수 있습니다.업데이트/공유를 위해 ... 선택명령은 할 수 없습니다 즉시 행 잠금을 획득합니다.
공유 객체의 종속성 추적(Alvaro)
PostgreSQL전역 테이블을 허용합니다. (사용자, 데이터베이스, 테이블스페이스)에서 정보를 참조합니다. 여러 데이터베이스. 이 추가 기능은 다음에 대한 종속성 정보를 추가합니다. 전역 테이블. 예를 들어 사용자 소유권을 추적할 수 있습니다. 데이터베이스 전체에 걸쳐 있으므로 어떤 데이터베이스에서든 무언가를 소유한 사용자는 더 이상 제거되지 않습니다. 종속성 추적이 이미 존재함 데이터베이스 로컬 개체.
제한적으로 허용소유자 변경명령을 내린다 개체 소유자(Stephen Frost)에 의해 수행됨
이전 릴리스에서는 수퍼유저만 개체 소유자를 변경할 수 있었습니다. 이제 사용자가 명령을 실행하면 소유권을 이전할 수 있습니다. 객체를 소유하고 있으며 이를 새 소유자로 생성할 수 있습니다. (즉, 사용자는 새로운 소유 역할의 구성원이고 해당 역할은 객체를 생성하는 데 필요한 CREATE 권한이 있습니다. 새로).
추가변경객체스키마 설정일부 개체 유형에 대한 기능(테이블, 함수, 유형) (Bernd Helmle)
이를 통해 개체를 다른 스키마로 이동할 수 있습니다.
추가테이블 활성화/비활성화 트리거트리거를 비활성화하려면 (나가야스 사토시)
허용잘라내기여러 개를 자르려면 단일 명령의 테이블(Alvaro)
참조 무결성 검사로 인해 다음이 허용되지 않습니다. 참조 무결성의 일부인 테이블 자르기 제약. 이 새로운 기능을 사용하여,잘라내기다음과 같은 경우에는 이러한 테이블을 자르는 데 사용할 수 있습니다. 참조 무결성 제약 조건과 관련된 두 테이블은 모두 단일로 잘림잘라내기명령.
캐리지 리턴 및 라인 피드를 올바르게 처리합니다.CSV 복사모드 (앤드류)
젠 토토 8.0에서는 캐리지 리턴 및 줄 바꿈CSV 복사 대상일관되지 않은 방식으로 처리되었습니다. 방식. (이 내용은 TODO 목록에 문서화되어 있습니다.)
추가CSV 헤더로 복사허용하다 헤더 라인을 첫 번째 라인으로 사용복사(앤드류)
이것은 일반적인 처리를 허용합니다CSV데이터의 첫 번째 줄에 열 이름을 배치하는 방법 파일. 에 대한복사 대상, 첫 번째 줄에는 다음이 포함됩니다. 열 이름 및 for복사본:, 첫 번째 줄은 무시됩니다.
Windows에서는 더 나은 1초 미만의 정밀도를 표시합니다.분석 설명(매그너스)
다음에 트리거 기간 표시 추가설명하세요 분석(톰)
이전 릴리스에는 트리거 실행 시간이 포함되었습니다. 총 실행 시간은 별도로 표시하지 않았습니다. 지금은 각 트리거에 소요된 시간을 확인할 수 있습니다.
다음에 대한 지원 추가\x16진수가 이스케이프됨복사(세르게이 텐)
이전 릴리스에서는 8진수 이스케이프만 지원했습니다.
만들다모두 표시변수 포함 설명(마티아스 슈미트)
표시varname은 여전히 다음만 표시합니다. 변수의 값이며 설명은 포함하지 않습니다.
만들다initdb새 항목 만들기 호출된 표준 데이터베이스포스트그레그리고 유틸리티를 사용하도록 변환포스트그레오히려 보다템플릿1표준 조회용 (데이브)
이전 릴리스에서는,템플릿1사용되었습니다 둘 다 다음과 같은 유틸리티의 기본 연결로 사용됩니다.사용자 생성, 그리고 새로운 템플릿으로 데이터베이스. 이로 인해데이터베이스 생성에 누군가가 실패하면 새 데이터베이스를 생성할 수 없기 때문에 때때로 실패합니다. 그 밖의 경우는 템플릿 데이터베이스에 있습니다. 이번 변경으로 기본값은 연결 데이터베이스는 현재입니다.포스트그레, 누군가가 사용할 가능성이 훨씬 적다는 것을 의미합니다.템플릿1중만들기 데이터베이스.
새로 만들기reindexdb이동에 의한 명령줄 유틸리티/contrib/reindexdb서버로 (Euler Taveira 드 올리베이라)
추가MAX()그리고MIN()배열 유형에 대한 집계(Koju
이지마)
수정to_date()그리고to_timestamp()합리적으로 행동하는 경우CC그리고YY필드
둘 다 사용됨(Karel Zak)
형식 사양에 다음이 포함된 경우CC연도 사양은YYY이상, 무시CC. 연도 사양인 경우 이다YY또는 더 짧게, 해석CC이전 세기와 같습니다.
추가md5(바이테아)(아비짓
메논센)
md5(텍스트)이미 존재했습니다.
다음에 대한 지원 추가숫자 ^ 숫자기반
에힘(숫자, 숫자)
함수는 이미 존재하지만 할당된 연산자가 없습니다. 그것에.
수정숫자적절하게 잘라서 모듈러스 계산 중 몫(Bruce)
이전 릴리스에서는 때때로 큰 값에 대한 계수가 몫의 반올림으로 인해 부정적인 결과가 반환되었습니다.
함수 추가마지막 값()(데니스
비요르클룬드)
마지막 값()간소화된 버전입니다.
의currval(). 자동으로
가장 최근의 시퀀스 이름을 기반으로 적절한 시퀀스 이름을 결정합니다.다음값()또는setval()현재 호출이 수행됨
세션.
추가to_timestamp(이중 정밀도)
(마이클 글라제만)
1970년 이후 Unix 초를 a로 변환합니다.타임스탬프 시간대 포함.
추가pg_postmaster_start_time()함수 (Euler Taveira de Oliveira, Matthias Schmidt)
다음에서 시간대 이름의 전체 사용을 허용AT 시간대, 이전에 사용 가능한 짧은 목록뿐만 아니라 (매그너스)
이전에는 미리 정의된 시간대 이름 목록만 있었습니다. 지원자:시간대. 이제 어떤 지원되는 시간대 이름을 사용할 수 있습니다. 예:
'유럽/런던' 시간대에서 CURRENT_TIMESTAMP 선택;
위 쿼리에서 사용된 시간대는 다음을 기준으로 조정됩니다. 제공된 제품에 적용되는 일광 절약 시간제 규칙 날짜.
추가최고()그리고최소()가변 함수 (Pavel Stehule)
이 함수는 가변 개수의 인수를 취하고 다음을 반환합니다. 인수 중 가장 크거나 가장 작은 값입니다.
추가pg_column_size()(마크
커크우드)
이것은 열의 저장 크기를 반환합니다. 압축되었습니다.
추가regexp_replace()(아츠시
오가와)
이것은 sed와 같은 정규식 대체를 허용합니다. 안 선택적 플래그 인수를 사용하면 전역(모두 교체) 및 대소문자를 구분하지 않는 모드입니다.
간격 나누기와 곱셈 수정 (Bruce)
이전 버전은 때때로 다음과 같이 정당하지 않은 결과를 반환했습니다.'4개월'::간격 / 5돌아오는 중'1월 -6일'.
타임스탬프, 시간 및 간격 출력의 반올림 동작 수정 (톰)
이것은 초 필드가 표시되는 일부 경우를 수정합니다 와 같이60증가하는 대신 고차 필드.
유형에 별도의 날짜 필드 추가간격따라서 1일 간격과 24시간 간격을 구별할 수 있습니다. (마이클 글라제만)
일광 절약 시간 조정이 포함된 날짜는 24일이 아닙니다. 시간은 길지만 일반적으로 23~25시간입니다. 이 변경으로 인해 간격 사이의 개념적 구별"그래서 여러 날"및 간격"너무 많아 시간". 추가1일타임스탬프로 이제 일광이 있어도 다음 날 동일한 현지 시간을 제공합니다. 사이에 저장 시간 조정이 발생하는 반면 추가24시간이 경우 다른 현지 시간이 표시됩니다. 발생합니다. 예를 들어 미국 DST 규칙에서는 다음과 같습니다.
'2005-04-03 00:00:00-05' + '1일' = '2005-04-04 00:00:00-04' '2005-04-03 00:00:00-05' + '24시간' = '2005-04-04 01:00:00-04'
추가justify_days()그리고justify_hours()(마이클
글라제만)
이 함수는 각각 요일을 적절하게 조정합니다. 전체 월 및 일 수를 확인하고 시간을 적절하게 조정합니다. 전체 일수 및 시간 수입니다.
이동/contrib/dbsize백엔드로, 일부 기능의 이름을 바꿉니다(Dave Page, Andreas Pflug)
pg_tablespace_size()
pg_database_size()
pg_relation_size()
pg_total_relation_size()
pg_size_pretty()
pg_total_relation_size()포함
인덱스 및 TOAST 테이블.
클러스터 디렉토리에 대한 읽기 전용 파일 액세스 기능 추가 (데이브 페이지, 안드레아스 플러그)
pg_stat_file()
pg_read_file()
pg_ls_dir()
추가pg_reload_conf()강제하다
구성 파일 다시 로드(Dave Page, Andreas Pflug)
추가pg_rotate_logfile()강제하다
서버 로그 파일 순환(Dave Page, Andreas Pflug)
변경pg_stat_*42758_42796
더 일관되고 따르도록 일부 인코딩의 이름을 바꿉니다. 국제 표준(브루스)
유니코드지금은UTF8
ALT지금은WIN866
승리지금은WIN1251
TCVN지금은WIN1258
원래 이름은 여전히 유효합니다.
다음에 대한 지원 추가WIN1252인코딩 (롤랜드 볼크만)
4바이트 지원 추가UTF8문자(존 한센)
이전에는 1바이트, 2바이트, 3바이트만UTF8문자가 지원되었습니다. 이는 특히 일부 중국어 문자 집합을 지원하는 데 중요합니다.
다음 사이의 직접 변환 허용EUC_JP그리고SJIS성능 향상을 위해 (Atsushi 오가와)
UTF8 인코딩이 Windows에서 작동하도록 허용(Magnus)
이것은 UTF8을 Windows 기본 UTF16에 매핑하여 수행됩니다. 구현.
수정언어 변경 이름 바꾸기(세르게이 야츠케비치)
엄격성 및 변동성과 같은 함수 특성을 허용합니다. 다음을 통해 수정됨함수 변경(닐)
함수 인수의 최대 수를 100으로 늘립니다. (톰)
SQL 및 PL/pgSQL 함수를 사용하도록 허용밖으로그리고INOUT매개변수 (톰)
밖으로함수에 대한 대체 방법입니다. 값을 반환합니다. 사용하는 대신반환, 값은 다음과 같이 선언된 매개변수에 할당하여 반환될 수 있습니다.아웃또는INOUT. 어떤 경우에는 표기법이 더 간단합니다. 특히 다음과 같은 경우에는 더욱 그렇습니다. 여러 값을 반환해야 합니다. 여러 개를 반환하는 동안 이전 릴리스에서는 함수의 값이 가능했지만 이는 프로세스가 크게 단순화됩니다. (이 기능은 다음으로 확장됩니다. 향후 릴리스에서는 다른 서버측 언어를 지원합니다.)
언어 핸들러 함수를 다음으로 이동pg_catalog스키마
이렇게 하면 원하는 경우 공개 스키마를 삭제하는 것이 더 쉬워집니다.
추가SPI_getnspname()SPI에
(닐)
PL/pgSQL 함수의 메모리 관리 점검(Neil)
각 함수의 구문 분석 트리는 이제 별도의 파일에 저장됩니다. 메모리 컨텍스트. 이렇게 하면 이 메모리를 다음과 같은 경우 쉽게 회수할 수 있습니다. 더 이상 필요하지 않습니다.
함수 구문 확인만들기 기능런타임이 아닌 시간(Neil)
이전에는 대부분의 구문 오류가 다음과 같은 경우에만 보고되었습니다. 함수가 실행되었습니다.
허용열기비-를 열려면-선택다음과 같은 쿼리설명그리고표시(톰)
더 이상 a를 발행하는 기능이 필요하지 않습니다.반환진술 (톰)
이것은 새로 추가된 것의 부산물입니다아웃그리고INOUT기능.반환다음의 경우 생략 가능 함수의 반환 값을 제공할 필요는 없습니다.
선택사항에 대한 지원 추가INTO절 PL/pgSQL로실행진술서 (파벨 스테훌레, 닐)
만들다다음으로 테이블 생성세트ROW_COUNT(톰)
정의SQLSTATE그리고SQLERRM반환하려면SQLSTATE및 현재 예외의 오류 메시지 (파벨 스테훌레, 닐)
이 변수는 예외 블록 내부에서만 정의됩니다.
다음 매개변수를 허용합니다.올림문이 표현식이 되도록 (Pavel Stehule, Neil)
루프 추가계속진술서 (파벨 스테훌레, 닐)
블록 및 루프 라벨 허용 (Pavel Stehule)
큰 결과 세트가 효율적으로 반환되도록 허용합니다(Abhijit 메논센)
이것은 함수를 사용할 수 있게 해줍니다.return_next()전체 결과를 빌드하지 않으려면
메모리에 설정됩니다.
질의 결과를 한 번에 한 행씩 검색하도록 허용(Abhijit 메논센)
이것은 함수를 사용할 수 있게 해줍니다spi_query()그리고spi_fetchrow()전체가 누적되는 것을 방지하기 위해
결과는 메모리에 설정됩니다.
PL/Perl이 문자열을 다음과 같이 처리하도록 강제UTF8서버 인코딩이 다음과 같은 경우UTF8(데이비드 캄홀츠)
PL/Perl에 대한 유효성 검사기 기능 추가(Andrew)
이것은 정의 시 구문 오류가 보고되도록 허용합니다. 실행 시간보다는.
함수가 반환될 때 PL/Perl이 Perl 배열을 반환하도록 허용 배열 유형(앤드류)
이것은 기본적으로 매핑포스트그레SQL배열을 Perl 배열로 변환합니다.
Perl 치명적이지 않은 경고 생성 허용공지메시지 (앤드류)
Perl 허용엄격활성화된 모드 (앤드류)
추가\설정 ON_ERROR_ROLLBACK허용하다 나머지 부분에 영향을 주지 않고 오류가 발생하는 트랜잭션의 문 거래(Greg Sabino Mullane)
이것은 기본적으로 모든 명령문을 하위 거래.
다음에 대한 지원 추가\x16진수 문자열 입력psql변수 (브루스)
8진수 이스케이프는 이미 지원되었습니다.
다음에 대한 지원 추가트로프 -ms출력 형식 (로저 리)
기록 파일 위치를 다음에 의해 제어되도록 허용히스트파일(안드레아스 셀텐라이히)
이것은 데이터베이스별 기록 저장 구성을 허용합니다.
방지\x(확장 모드) from 출력에 영향을 미침\d 테이블 이름(닐)
추가-L옵션psql세션 기록(Lorne Sunley)
이 옵션은 일부 운영 체제에 없기 때문에 추가되었습니다 간단한 명령줄 활동 로깅 기능입니다.
만들다\d인덱스의 테이블스페이스 표시 (주칭칭)
허용psql도움말 (\h) 적절한 도움말을 가장 잘 추측하기 위해 정보(Greg Sabino Mullane)
이것은 사용자가 추가만 할 수 있게 해줍니다.\h에 구문 오류 쿼리의 앞 부분을 확인하고 지원되는 항목에 대한 도움말을 확인하세요. 구문. 이전에는 명령 이외의 추가 쿼리 텍스트가 있었습니다. 사용하려면 이름을 제거해야 했습니다.\h.
추가\pset 숫자 로케일허용하다 로케일 인식 형식으로 출력되는 숫자(Eugen Nedelcu)
예를 들어 다음을 사용하여C로케일100000다음과 같이 출력됩니다100,000.0유럽 로케일에서는 이것을 출력할 수 있습니다. 값은100.000,0.
시작 배너에 서버 버전 번호와 서버 버전 번호가 모두 표시되도록 만들기psql의 버전 번호, 다르다(브루스)
또한 서버가 다음과 같은 경우 경고가 표시됩니다.psql다른 주요 젠 토토에 포함되어 있습니다.
추가-n / --스키마다음으로 전환pg_restore(리차드 반 덴 버그)
이것은 지정된 스키마의 개체만 허용합니다. 복원되었습니다.
허용pg_dump큰 것을 버리다 텍스트 모드에서도 개체(Tom)
이 변경으로 이제 대형 개체는 항상 덤프됩니다. 는 이전-b스위치는 작동하지 않습니다.
허용pg_dump덤프하다 대형 객체의 일관된 스냅샷(Tom)
대형 개체에 대한 덤프 주석(톰)
추가--인코딩에pg_dump(마그누스 하간데르)
이것은 데이터베이스가 다음과 같은 인코딩으로 덤프되도록 허용합니다. 서버의 인코딩과 다릅니다. 이는 다음과 같은 경우에 가치가 있습니다. 덤프를 다른 인코딩을 사용하는 머신으로 전송합니다.
의존pg_pltemplate절차용 언어(톰)
절차적 언어에 대한 호출 핸들러가 다음 위치에 있는 경우pg_catalog스키마,pg_dump핸들러를 덤프하지 않습니다. 대신, 그것은 단지를 사용하여 언어를 덤프합니다.언어 생성이름, 다음을 사용하여pg_pltemplate카탈로그를 제공합니다. 로드 시 언어 생성 매개변수입니다.
추가PGPASSFILE환경 변수 비밀번호 파일의 파일 이름 지정(Andrew)
추가lo_create()그거 비슷해요
에lo_creat()그러나 다음의 OID는 허용합니다.
지정할 대형 객체(Tom)
만들다libpq일관되게 반환
클라이언트 애플리케이션에 오류가 발생했습니다.malloc()실패 (닐)
수정pgxs건축을 지원하기 위해 이전된 설치에 반대
Intel을 사용하는 Itanium 프로세서에 대한 스핀록 지원 추가 컴파일러(Vikram Kalsi)
Windows용 Kerberos 5 지원 추가(Magnus)
중국어 FAQ 추가 (laser@pgsqldb.com)
OS/X 기능 이름 변경과 일치하도록 Rendezvous의 이름을 Bonjour로 변경 (브루스)
다음에 대한 지원 추가fsync_writethrough켜짐 다윈(크리스 캠벨)
서버 내에서 정보 전달을 간소화하고 최적화 프로그램 및 잠금 시스템(Tom)
허용pg_config컴파일 예정 MSVC(앤드류) 사용
이는 다음을 사용하여 DBD::Pg를 빌드하는 데 필요합니다.MSVC.
Kerberos V4(Magnus)에 대한 지원 제거
Kerberos 4에는 보안 취약점이 있었으며 더 이상 유지됩니다.
코드 정리(커버리티 정적 분석 수행: 엔터프라이즈DB)
수정postgresql.conf사용하다 문서 기본값켜짐/꺼짐대신참/거짓(브루스)
강화pg_config할 수 있다 추가 빌드 시간 값 보고(Tom)
허용libpq건설 예정 Windows에서 스레드로부터 안전함(Dave Page)
Windows에서 IPv6 연결을 사용할 수 있도록 허용(앤드류)
I/O 하위 시스템에 관한 서버 관리 문서 추가 신뢰성 (브루스)
개인 선언을 다음에서 이동gist.h에gist_private.h(닐)
이전 릴리스에서는,gist.h포함됨 공개 GiST API(GiST 인덱스 작성자가 사용하도록 의도됨) 구현)뿐만 아니라 GiST 자체의 구현. 후자는 다음으로 옮겨졌습니다. 별도의 파일,gist_private.h. 대부분의 GiST 색인 구현은 영향을 받지 않아야 합니다.
GiST 메모리 관리 점검(Neil)
GiST 메소드는 이제 항상 단기 메모리에서 호출됩니다.
맥락. 따라서 메모리는를 통해 할당됩니다.팔록()자동으로 회수되므로 GiST
인덱스 구현에서는 할당된 항목을 수동으로 해제할 필요가 없습니다.
메모리를 통해pfree().
추가/contrib/pg_buffercache기여 모듈(마크 커크우드)
디버깅을 위해 버퍼 캐시의 내용을 표시합니다. 및 성능 조정 목적.
제거/contrib/배열왜냐하면 그것은 구식 (톰)
정리/contrib/lo모듈 (톰)
이동/contrib/findoidjoins에/src/tools(톰)
삭제<<, , &<및&연산자:/contrib/큐브
이 연산자는 유용하지 않았습니다.
개선/contrib/btree_gist(잔코 리히터)
개선/contrib/pgbench(토모아키 사토 타츠오)
이제 SQL 명령 스크립트로 테스트할 수 있는 기능이 있습니다 단지 정해진 명령 대신 사용자가 제공하는 것 순서.
개선/contrib/pgcrypto(마르코 크린)
OpenPGP 대칭 키 및 공개 키 구현 암호화
RSA 및 Elgamal 공개 키 알고리즘이 모두 지원됩니다.
독립 실행형 빌드: SHA256/384/512 해시 포함, Fortuna PRNG
OpenSSL 빌드: 3DES 지원, OpenSSL과 함께 내부 AES 사용 < 0.9.7
다음에서 빌드 매개변수(OpenSSL, zlib) 가져오기구성결과
편집할 필요가 없습니다.메이크파일더 이상.
다음에 대한 지원 제거libmhash그리고libmcrypt
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 출시 8.1.1 | PostgreSQL : 문서 : 9.3 : 메이저 토토 사이트 노트 | 출시 8.0.26 |