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

출시 6.5

이 와이즈 토토는 개발 팀의 중요한 단계입니다. Berkeley에서 물려받은 소스 코드를 숙달했습니다. 당신은 볼 것이다 우리는 이제 쉽게 주요 기능을 추가하고 있습니다. 전 세계 개발팀의 규모와 경험.

다음은 주목할만한 변경 사항에 대한 간략한 요약입니다:

다중 버전 동시성 제어(MVCC)

이것은 이전 테이블 수준 잠금을 제거하고 대체합니다. 대부분의 상업용 잠금장치보다 뛰어난 잠금 시스템을 갖추고 있습니다. 데이터베이스 시스템. 기존 시스템에서는 각 행이 수정된 내용은 커밋될 때까지 잠겨 있어 다른 사람이 읽을 수 없도록 방지됩니다. 사용자. MVCC는 PostgreSQL의 자연스러운 다중 버전 특성을 사용합니다. 독자가 계속해서 일관된 데이터를 읽을 수 있도록 하기 위해 작가 활동. 작성자는 계속해서 컴팩트 pg_log를 사용합니다. 거래 시스템. 이 모든 작업은 별도의 작업 없이 수행됩니다. 기존 데이터베이스처럼 모든 행에 잠금을 할당합니다. 시스템. 따라서 기본적으로 우리는 더 이상 단순한 것에만 국한되지 않습니다. 테이블 수준 잠금; 행 수준보다 더 나은 것이 있습니다 잠금.

다음의 핫 백업pg_dump

pg_dump이용합니다 일관된 데이터베이스 덤프/백업을 제공하는 새로운 MVCC 기능 데이터베이스가 온라인 상태로 유지되어 쿼리에 사용할 수 있는 동안

숫자 데이터 유형

이제 우리는 사용자가 지정한 진정한 숫자 데이터 유형을 갖게 되었습니다. 정밀도.

임시 테이블

임시 테이블은 내에서 고유한 이름을 갖도록 보장됩니다. 데이터베이스 세션이며 세션 종료 시 삭제됩니다.

새로운 SQL 기능

이제 CASE, INTERSECT 및 EXCEPT 문이 지원됩니다. 새로운 LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL, SELECT ... FOR UPDATE 및 향상된 LOCK TABLE 명령.

속도 향상

우리는 다양한 기능 덕분에 PostgreSQL의 속도를 계속해서 향상시키고 있습니다. 우리 팀 내 재능. 메모리 할당 속도를 높였습니다. 최적화, 테이블 조인 및 행 전송 루틴.

포트

우리는 이번에는 다음을 포함하여 포트 목록을 계속 확장하고 있습니다. WinNT/ix86 및 NetBSD/arm32.

인터페이스

대부분의 인터페이스에는 새 버전이 있으며 기존 기능이 개선되었습니다.

문서

새롭고 업데이트된 자료가 전체에 걸쳐 존재합니다. 문서. 새로운FAQ이 되었습니다. SGI 및 AIX 플랫폼에 기여했습니다.튜토리얼다음에 대한 소개 정보가 있습니다.SQL스테판 심코빅스로부터. 에 대한사용자 가이드, 참조가 있습니다 포스트마스터와 기타 유틸리티 프로그램을 다루는 페이지 새로운 부록에는 날짜/시간 동작에 대한 세부정보가 포함되어 있습니다.관리자 가이드새 항목이 있습니다 Tom Lane의 문제 해결 장. 그리고프로그래머 가이드쿼리에 대한 설명이 있습니다 Stefan의 처리 및 획득에 대한 세부 정보포스트그레소스 트리를 통해 익명CVS그리고CVSup.

다음으로 마이그레이션 v6.5

다음을 사용하여 덤프/복원pg_dump이다 이전 데이터를 마이그레이션하려는 사람들에게 필요합니다. 의 출시포스트그레스. pg_upgrade할 수 있다아님수 이 릴리스로 업그레이드하는 데 사용된 이유는 이전 릴리스에 비해 테이블이 변경되었습니다.

새로운 다중 버전 동시성 제어(MVCC) 기능은 다음을 수행할 수 있습니다. 다중 사용자 환경에서는 다소 다른 동작을 제공합니다.다음 섹션을 읽고 이해하십시오. 기존 애플리케이션이 다음과 같은 동작을 제공하는지 확인하세요. 당신이 필요합니다.

다중 버전 동시성 제어

6.5의 리더는 데이터에 관계없이 데이터를 잠그지 않기 때문에 트랜잭션 격리 수준, 하나의 트랜잭션이 읽은 데이터는 다른 사람이 덮어썼습니다. 즉, 행이에 의해 반환되는 경우선택이 행이 실제로 반환된 시점에 존재합니다(즉, 문 또는 트랜잭션이 시작됨) 또는 행이 보호되지 않음 이전에 동시 트랜잭션에 의해 삭제되거나 업데이트되는 경우 현재 트랜잭션이 커밋 또는 롤백을 수행합니다.

행의 실제 존재를 확인하고 행을 보호하기 위해 동시 업데이트를 사용해야 함선택 대상 업데이트또는 적절한락 테이블문장. 이식할 때 이 점을 고려해야 합니다. 이전 릴리스의 애플리케이션포스트그레스및 기타 환경.

사용하는 경우 위의 사항을 명심하십시오.기여/재와이즈 토토.*참조 트리거 무결성. 이제 추가적인 기술이 필요합니다. 한 가지 방법은 다음을 사용하는 것입니다.공유 행 독점에서 parent_table 잠금 모드트랜잭션이 업데이트/삭제될 경우 명령 기본 키 및 사용공유에서 parent_table 잠금 모드트랜잭션이 업데이트/삽입될 경우 명령 외래 키.

참고:다음에서 트랜잭션을 실행하면 SERIALIZABLE 모드에서는 다음을 실행해야 합니다.잠금10881_10940선택/삽입/삭제/업데이트/가져오기/COPY_TO) 거래.

이러한 불편함은 미래에 사라질 것입니다. 더티(커밋되지 않은) 데이터를 읽는 기능(격리 여부에 관계 없음) 수준) 및 진정한 참조 무결성이 구현됩니다.

상세 변경 목록

버그 수정
---------
text<-float8 및 text<-float4 변환 기능 수정(Thomas)
대소문자 혼합 제약 조건이 있는 테이블 생성 문제 수정(Billy)
언더플로우/오버플로우 시 오류를 생성하도록 exp()/pow() 동작 변경(1월)
pg_dump -z의 버그 수정
메모리 오버런 정리(Tatsuo)
lo_import 충돌 수정(Tatsuo)
큰따옴표를 억제하도록 데이터 유형 이름 처리 조정(Thomas)
열과 DEFAULT(Thomas) 일치를 위해 유형 강제 사용
절전 모드 1초 후에 한 번만 확인하도록 교착 상태를 수정했습니다.(Bruce)
집계 및 PL/pgsql에 대한 수정(Hiroshi)
하위 쿼리 충돌 수정(Vadim)
libpq 함수 PQfnumber 및 대소문자를 구분하지 않는 이름 수정(Bahman Rafatjoo)
대형 객체 중간 쓰기, 추가 블록 없음, 메모리 소비 문제 수정(Tatsuo)
pg_dump -d 또는 -D 수정 및 INSERT에서 특수 문자 인용
dynahash의 심각한 문제 해결(Tom)
INET/CIDR 이식성 문제 해결
ALTER TABLE ADD COLUMN(Bruce)의 선택성 오류 문제 수정
다양한 열 유형의 병합 조인이 작동하도록 실행기를 수정했습니다.(Tom)
Alpha OR 선택성 버그 수정
OR 인덱스 선택성 문제 수정(Bruce)
\d가 char()/varchar()(Ryan)의 적절한 길이를 표시하도록 수정합니다.
튜토리얼 코드 수정(Clark)
destroyuser 검사 개선(Oliver)
Kerberos 수정(Rodney McDuff)
더티 버퍼 동안 데이터베이스 삭제 문제 수정(Bruce)
시퀀스 nextval()이 대소문자를 구분할 수 있도록 수정했습니다(Bruce)
!!= 연산자 수정
데이터베이스 파일을 파괴하기 전에 버퍼 삭제(Bruce)
실행자가 함수를 두 번 평가하는 경우 수정(Tatsuo)
시퀀스 nextval 작업에서 대소문자를 구분하도록 허용(Bruce)
음수에 대해 최적화 도구 인덱싱이 작동하지 않는 문제 수정(Bruce)
fjIsNull을 사용한 실행기의 메모리 누수 수정
집계 메모리 누수 수정(Erik Riedel)
대시가 포함된 사용자 이름 허용 GRANT 권한
inet 유형의 NULL 정리
시스템 테이블 버그 정리(Tom)
PAGER 및 \?의 문제를 해결하세요. 사령부(사카이다 마사아키)
기본 다중 세그먼트 파일 크기 제한을 1GB로 줄입니다(Peter)
CREATE OPERATOR(Tom) 덤프 수정
커서의 역방향 스캔 문제 수정(Hiroshi Inoue)
\i(Tom) 사용 시 COPY FROM STDIN 문제 수정
하위 선택에 대한 수정 사항이 표현식 내에서 비교됩니다(1월)
행을 반환하는 동안 오류 보고 처리 수정(Tom)
배열 유형 참조 문제 해결(Tom,Jan)
UPDATE SET oid 방지(1월)
-t 옵션이 대소문자를 구분하는 테이블 이름을 처리할 수 있도록 pg_dump를 수정했습니다.
특별한 경우의 GROUP BY 수정(Tom, Jan)
실패한 쿼리의 메모리 누수 수정(Tom)
DEFAULT는 이제 대소문자 혼합 식별자를 지원합니다(Tom)
DROP/RENAME 테이블, 인덱스의 다중 세그먼트 사용에 대한 수정(Ole Gjerde)
-o 및 -d 옵션과 함께 pg_dump 사용 비활성화(Bruce)
pg_dump가 GROUP 권한을 올바르게 덤프하도록 허용(Bruce)
INSERT INTO 테이블 SELECT * FROM table2의 GROUP BY 수정(1월)
뷰 계산 수정(1월)
배열 인덱스의 집계 문제 수정(Tom)
DEFAULT 수정 사항은 너무 많은 따옴표가 필요한 값에서 작은 따옴표를 처리합니다.
슈퍼 사용자가 아닌 사용자가 대형 개체를 가져오거나 내보낼 때 발생하는 보안 문제 해결(Tom)
테이블을 생성한 트랜잭션의 롤백이 제대로 정리되었습니다.(Tom)
긴 테이블 및 열 이름이 적절한 일련 이름을 생성할 수 있도록 수정되었습니다.(Tom)

향상된 기능
------------
"vacuumdb" 유틸리티 추가
메모리를 더 효율적으로 할당하여 libpq 속도 향상(Tom)
사용된 모든 인덱스 설명(Tom)
CASE, COALESCE, NULLIF 표현식 구현(Thomas)
새로운 pg_dump 테이블 출력 형식(Constantin)
문자열 min()/max() 함수 추가(Thomas)
새로운 유형 강제 변환 기술을 집계로 확장(Thomas)
새로운 moddatetime 기여(Terry)
pgaccess 0.96(콘스탄틴)으로 업데이트
단일 바이트 "char" 유형에 대한 루틴 추가(Thomas)
substr() 함수 개선(Thomas)
멀티바이트 처리 개선(Tatsuo)
다중 버전 동시성 제어/MVCC(Vadim)
새로운 직렬화 모드(Vadim)
2GB가 넘는 테이블 수정(Peter)
새로운 SET TRANSACTION ISOLATION LEVEL(Vadim)
새로운 잠금 테이블 IN ... 모드(Vadim)
ODBC 드라이버 업데이트(Byron)
새로운 NUMERIC 데이터 타입(1월)
새로운 SELECT FOR UPDATE(Vadim)
입력값에 대한 "NaN" 및 "Infinity" 처리(1월)
날짜/연도 처리 개선(Thomas)
백엔드 연결 처리 개선(Magnus)
로그 파일에 대한 새로운 옵션 ELOG_TIMESTAMPS 및 USE_SYSLOG 옵션(Massimo)
새로운 TCL_ARRAYS 옵션(Massimo)
새로운 INTERSECT 및 EXCEPT(스테판)
기본 키 추적을 위한 새로운 pg_index.indisprimary(D'Arcy)
생성 전에 테이블 삭제를 허용하는 새로운 pg_dump 옵션(Brook)
행 출력 루틴 속도 향상(Tom)
새로운 READ COMMITTED 격리 수준(Vadim)
새로운 TEMP 테이블/인덱스(Bruce)
결과가 이미 정렬된 경우 정렬 방지(1월)
새로운 메모리 할당 최적화(1월)
psql이 \p\g(Bruce)를 수행하도록 허용
여러 규칙 작업 허용(1월)
LIMIT/OFFSET 기능 추가(1월)
다수의 테이블 조인 시 최적화 기능 개선(Bruce)
S. Simkovics의 석사 논문(Stefan, Thomas)의 새로운 SQL 소개
S. Simkovics의 석사 논문(Stefan)의 백엔드 처리에 대한 새로운 소개
향상된 int8 지원(Ryan Bradetich, Thomas, Tom)
int8과 text/varchar 유형 사이를 변환하는 새로운 루틴(Thomas)
메타테이블이 결합된 새로운 부시 계획(Bruce)
기본적으로 오른쪽 쿼리 활성화(Bruce)
구성 시 안정적인 최대 백엔드 수가 설정되도록 허용
      (--with-maxbackends 및 포스트마스터 스위치(-N 백엔드))(Tom)
최적화 속도 향상으로 인해 GEQO 기본값은 이제 10개 테이블입니다(Tom)
MS-SQL 이식성을 위해 NULL=Var 허용(Michael, Bruce)
contrib check_primary_key()를 "자동" 또는 "종속"으로 수정합니다(Anand)
보기 표시 쿼리에서 psql \d 허용(Ryan)
LIKE(Bruce)의 속도 향상
Ecpg 수정/기능, src/interfaces/ecpg/ChangeLog 파일 참조(Michael)
JDBC 수정/기능, src/interfaces/jdbc/CHANGELOG(Peter)를 참조하세요.
/(Bruce)와 같이 % 연산자에 우선순위를 부여합니다.
시스템 테이블 구조 변경을 허용하는 새로운 postgres -O 옵션 추가(Bruce)
contrib/pginterface/findoidjoins 스크립트 업데이트(Tom)
인덱스가 있는 삭제된 행을 진공 상태에서 대폭 향상(Vadim) 
비SQL 함수가 인수에 따라 다른 버전을 실행하도록 허용(Tom)
\dt와 친구들(Masaaki Sakaida)이 보낸 실제 쿼리를 보여주는 -E 옵션 추가
psql의 시작 배너에 버전 번호 추가(Masaaki Sakaida)
새로운 contrib/vacuumlo는 참조되지 않은 큰 객체를 제거합니다(Peter)
진공화되지 않은 테이블의 성능이 향상되도록 테이블 크기에 대한 새로운 초기화(Tom)
연결 거부 시 오류 메시지 개선(Tom)
char() 및 varchar() 필드 배열 지원(Massimo)
안정성과 성능 향상을 위한 해시 코드 점검(Tom)
PyGreSQL 2.4(D'Arcy)로 업데이트
-d4 및 -d5가 다른 노드 표시를 생성하도록 디버그 옵션을 변경했습니다(1월)
새로운 pg_options: beautiful_plan, beautiful_parse, beautiful_rewrite(1월)
시스템 테이블 액세스에 대한 최적화 통계 향상(Tom)
기본이 아닌 블록 크기 처리 개선(Massimo)
GEQO 최적화 메모리 소비 개선(Tom)
UNION은 이제 대상 목록에 없는 열의 ORDER BY를 지원합니다(1월)
주요 libpq++ 개선(Vince Vielhaber)
pg_dump는 이제 -z(ACL's)를 기본값(Bruce)으로 사용합니다.
백엔드 캐시, 메모리 속도 향상(Tom)
pg_dump가 하나의 스냅샷 트랜잭션에서 모든 작업을 수행하도록 합니다(Vadim)
대형 객체 메모리 누수 수정, pg_dumping 수정(Tom)
INET 유형은 이제 비교를 위해 넷마스크를 고려합니다.
VACUUM ANALYZE는 읽기 잠금(Vadim)만 사용하도록 합니다.
UNIONS에 대한 VIEW 허용(1월)
pg_dump는 이제 활성 데이터베이스에서 일관된 스냅샷을 생성할 수 있습니다(Vadim)

소스 트리 변경 사항
------
포트 매칭 개선(Tom)
SunOS의 이식성 수정
NT/Win32 백엔드 포트 추가 및 동적 로딩 활성화(Magnus 및 Daniel Horak)
Linux(Tatsuo)를 실행하는 Cobalt Qube(Mips)에 대한 새로운 포트
NetBSD/m68k로 포팅(Matsuki Nakajima)
NetBSD/sun3으로 포팅(Mutsuki Nakajima)
NetBSD/macppc(Toshimi Aoki)로 포팅
tcl/tk 구성 수정(Vince)
규칙 쿼리에 대한 CURRENT 키워드 제거(1월)
이제 NT 동적 로딩이 작동합니다(Daniel Horak)
ARM32 지원 추가(Andrew McMurry)
HPUX 11 및 Unixware에 대한 지원 향상
파일 처리를 보다 균일하게 개선하고 파일 설명자 누출을 방지합니다(Tom)
plpgsql의 새로운 설치 명령(1월)