이 와이즈 토토는 개발 팀의 주요 단계입니다. 버클리에서 물려받은 소스 코드의 숙달. 당신은 볼 것입니다 우리는 이제 증가하는 덕분에 주요 기능을 쉽게 추가하고 있습니다. 전 세계 개발 팀의 규모와 경험.
더 주목할만한 변경 사항에 대한 간단한 요약이 있습니다.
이것은 오래된 테이블 레벨 잠금을 제거하고 대체합니다 대부분의 광고보다 우수한 잠금 시스템으로 데이터베이스 시스템. 전통적인 시스템에서는 각 행입니다 수정 된 것은 커밋 될 때까지 잠겨있어서 다른 사람의 판독을 방지합니다 사용자. MVCC는 PostgreSQL의 자연적인 다중 버전 특성을 사용합니다 독자가 일관된 데이터를 계속 읽을 수 있도록합니다 작가 활동. 작가는 소형 PG_LOG를 계속 사용합니다 거래 시스템. 이것은 필요없이 모두 수행됩니다 기존 데이터베이스와 같은 모든 행에 잠금을 할당하십시오 시스템. 따라서 기본적으로 우리는 더 이상 단순하게 제한되지 않습니다 테이블 레벨 잠금; 우리는 줄 수준보다 더 좋은 것을 가지고 있습니다 잠금.
pg_dump새로운 MVCC 기능은 일관된 데이터베이스 덤프/백업을 제공합니다. 데이터베이스가 온라인 상태를 유지하고 쿼리에 사용할 수 있습니다.
이제 사용자 지정이있는 진정한 숫자 데이터 유형이 있습니다. 정도.
임시 테이블에는 고유 한 이름이 있습니다 데이터베이스 세션, 세션 종료시 파괴됩니다.
우리는 이제 사례, 교차 및 명세서 지원을 제외하고는 있습니다. 새로운 제한/오프셋, 트랜잭션 격리 수준 설정이 있습니다. 업데이트 및 개선 된 잠금 테이블 명령을 선택하십시오.
우리는 다양한 덕분에 Postgresql 속도를 높이고 있습니다. 우리 팀의 인재. 우리는 메모리 할당을 가속화했습니다. 최적화, 테이블 조인 및 행 전송 루틴.
이번에는 포트 목록을 계속 확장하고 있습니다. winnt/ix86 및 netbsd/arm32.
대부분의 인터페이스에는 새로운 버전이 있으며 기존입니다 기능이 향상되었습니다.
새롭고 업데이트 된 자료가 있습니다 선적 서류 비치. 새로운FAQs SGI 및 AIX 플랫폼에 기여했습니다. 그만큼튜토리얼소개 정보가 있습니다SQLStefan Simkovics에서.사용자 안내서, 참조가 있습니다 우체국 장 및 더 많은 유틸리티 프로그램을 다루는 페이지, 새로운 부록에는 날짜/시간 행동에 대한 세부 정보가 포함되어 있습니다. 그만큼관리자 안내서새가 있습니다 Tom Lane의 문제 해결에 관한 장. 그리고프로그래머 안내서쿼리에 대한 설명이 있습니다 Stefan의 처리 및 획득에 대한 세부 사항Postgres소스 트리를 통해 익명의CVSandCVSUP.
덤프/복원 사용pg_dumpIS 이전의 데이터를 마이그레이션하려는 사람들에게 필요 출시Postgres. pg_upgradecannotbe 이 릴리스로 업그레이드하는 데 사용됩니다. 테이블은 이전 릴리스에 비해 변경되었습니다.
MVCC (Multi-Version Concurrency Control) 기능은 할 수 있습니다 다중 사용자 환경에서 다소 다른 행동을 제공합니다.다음 섹션을 읽고 이해하십시오 기존 응용 프로그램이 동작을 제공 할 수 있는지 확인하십시오. 당신은 필요합니다.
6.5의 독자는 데이터를 잠그지 않기 때문입니다 트랜잭션 격리 수준, 한 트랜잭션으로 읽은 데이터는 다른 사람에 의해 덮어 썼다. 다시 말해, 행이에 반환되는 경우select이것이이 행을 실제로 의미하지는 않습니다 반환 당시에 존재합니다 (즉, 다음 언젠가 성명서 또는 거래 시작) 또는 행이 보호됩니다. 동시 거래에 의해 삭제되거나 업데이트됩니다 현재 거래는 커밋 또는 롤백을 수행합니다.
실제 행의 실제 존재를 보장하고 그것을 보호하기 위해 동시 업데이트를 사용해야합니다선택을 선택하십시오 업데이트또는 적절한잠금 테이블진술. 포팅시 고려해야합니다 이전 릴리스의 응용 프로그램Postgres및 기타 환경.
사용중인 경우 위를 명심하십시오Contrib/Refint.*참조 트리거 진실성. 이제 추가 기술이 필요합니다. 한 가지 방법은 사용하는 것입니다Share Row 독점에서 부모 _table을 잠그십시오 방법거래가 업데이트/삭제 될 경우 a 기본 키 및 사용잠금 부모 _table을 공유하십시오 방법거래가 업데이트/삽입하려는 경우 명령 a 외국 키.
참고 :거래를 실행하는 경우에 유의하십시오 직렬화 가능한 모드는를 실행해야합니다.잠금DML을 실행하기 전에 위의 명령 성명 (선택/삽입/삭제/업데이트/fetch/copy_to)에서 거래.
이러한 불편 함은 미래에 사라질 때 더러운 (커밋되지 않은) 데이터를 읽는 기능 (격리에 관계없이 레벨) 및 진정한 참조 무결성이 구현됩니다.
버그 수정 ------- 텍스트 수정 <- float8 및 text <- float4 변환 함수 (Thomas) 혼합 케이스 제약 조건으로 테이블 생성을위한 수정 (Billy) exp ()/pow () 동작을 변경하여 언더 플로우/오버플로에서 오류를 생성합니다 (Jan) pg_dump -z에서 버그를 수정하십시오 메모리 오버런 정리 (Tatsuo) Lo_import Crash (Tatsuo) 수정 이중 인용문을 억제하기 위해 데이터 유형 이름 처리 조정 (Thomas) 일치하는 열 및 기본값 (Thomas)에 유형 강요를 사용하십시오. 교착 상태를 고정하여 1 초 후 한 번만 확인하십시오 (Bruce) 골재 및 PL/PGSQL (Hiroshi)에 대한 수정 하위 쿼리 충돌 (vadim) 수정 libpq 함수 pqfnumber 및 사례 불신 이름에 대한 수정 (Bahman Rafatjoo) 큰 객체 쓰기 중기, 추가 블록 없음, 메모리 소비 (tatsuo)에 대한 수정 pg_dump -d 또는 -d에 대한 수정 및 삽입에서 특수 문자 견적 Dynahash (Tom)로 심각한 문제를 수리하십시오. INET/CIDR 휴대 성 문제를 수정하십시오 ALTER 테이블의 선택성 오류 문제 해결 열 추가 열 (Bruce) 집행자 수정이므로 다른 열 유형의 합병 작업 (TOM) 알파 또는 선택성 버그에 대한 수정 수정 또는 색인 선택성 문제 (Bruce) 수정 so \ d는 char ()/varchar () (ryan)에 대한 적절한 길이를 보여줍니다. 튜토리얼 코드 수정 (Clark) Destroyuser Checking 개선 (Oliver) Kerberos (Rodney McDuff)에 대한 수정 더러운 버퍼 (Bruce)와 같은 데이터베이스 삭제 수정 (Bruce) sequence sequence nextVal ()가 케이스에 민감 할 수 있습니다 (Bruce) 수정 !! = 연산자 데이터베이스 파일을 파괴하기 전에 버퍼 드롭 (Bruce) 집행자가 기능을 두 번 평가하는 경우 (tatsuo) 시퀀스 NextVal 동작을 대소 문자에 민감하게 허용합니다 (Bruce) 음수에서 작동하지 않는 Optimizer Indexing 수정 (Bruce) fjisnull을 사용하여 집행자의 메모리 누출에 대한 수정 집계 메모리 누출 수정 (Erik Riedel) 대시 보조금 권한이 포함 된 사용자 이름을 허용하십시오 INET 유형의 NULL 정리 시스템 테이블 버그 정리 (Tom) 호출기와 \의 문제를 해결 하시겠습니까? 명령 (Masaaki Sakaida) 기본 다중 세그먼트 파일 크기 제한을 1GB (Peter)로 줄입니다. Create Operator (TOM)의 덤핑을위한 수정 커서의 뒤로 스캐닝을위한 수정 (Hiroshi Inoue) \ i (tom)를 사용할 때 stdin에서 사본 수정 subSelect에 대한 수정은 표현식 (Jan) 내에서 비교됩니다. 행을 반환하는 동안 오류보고 처리 수정 (Tom) 배열 유형을 참조하여 문제를 해결합니다 (Tom, Jan) 업데이트 방지 설정 OID (Jan) pg_dump 수정 So -t 옵션은 케이스 민감성 테이블 이름을 처리 할 수 있습니다 특별 사례에서 그룹에 대한 수정 (Tom, Jan) 실패한 쿼리에서 메모리 누출 수정 (Tom) 이제 기본값은 혼합 사례 식별자 (TOM)를 지원합니다. Drop/Rename Table, Indexes (Ole Gjerde)의 다중 세그먼트 사용에 대한 수정 -o 및 -d 옵션 (Bruce)과 함께 pg_dump 사용 비활성화 pg_dump가 그룹 권한을 올바르게 덤프하도록 허용 (Bruce) 표 2에서 삽입하여 그룹 수정 보기에서 계산 수정 (Jan) 배열 인덱스 (TOM)의 골재 수정 기본 핸들에 대한 수정 너무 많은 따옴표를 요구하는 값의 단일 따옴표 비 슈퍼 사용자가 큰 오브젝트를 가져 오거나 내보내는 보안 문제 수정 (TOM) 제대로 정리 된 테이블을 만드는 트랜잭션 롤백 (Tom) 긴 테이블과 열 이름이 적절한 일련 이름을 생성하도록 수정 (TOM) 향상 ------------ "Vacuumdb"유틸리티를 추가하십시오 메모리를 더 잘 할당하여 LIBPQ 속도를 높이십시오 (Tom) 사용 된 모든 지수 설명 (Tom) 사례, Coalesce, Nullif Expression (Thomas) 구현 새로운 pg_dump 테이블 출력 형식 (Constantin) string min ()/max () 함수 추가 (Thomas) 새로운 유형 강요 기술을 골재로 확장 (Thomas) 새로운 ModdateTime Contrib (Terry) pgaccess 0.96 (Constantin)에 대한 업데이트 단일 바이트 "char"유형 (Thomas)에 대한 루틴 추가 개선 된 substr () 함수 (Thomas) 다중 바이트 핸들링 향상 (Tatsuo) 다중 버전 동시성 제어/MVCC (Vadim) 새로운 직렬화 모드 (Vadim) 2GIGS 이상의 테이블 수정 (Peter) 새로운 세트 트랜잭션 격리 수준 (Vadim) 새로운 잠금 테이블 ... 모드 (Vadim) ODBC 드라이버 업데이트 (바이런) 새로운 숫자 데이터 유형 (1 월) 새 업데이트를위한 새로운 선택 (Vadim) 입력 값 (Jan)의 "Nan"및 "Infinity"를 처리하십시오. 개선 된 날짜/년 취급 (토마스) 백엔드 연결 개선 (Magnus) 새로운 옵션 ELOG_TIMESTAMPS 및 LOG 파일에 대한 옵션 옵션 (Massimo) 새로운 tcl_arrays 옵션 (Massimo) 새로운 교차 및 제외 (스테판) 기본 키 추적을위한 새로운 PG_INDEX.INDISPRIMARY (D 'Arcy) 생성 전에 테이블을 떨어 뜨릴 수있는 새로운 PG_DUMP 옵션 (Brook) 행 출력 루틴의 속도 향상 (Tom) 새로운 읽기 커밋 된 격리 수준 (Vadim) 새로운 임시 테이블/인덱스 (Bruce) 결과가 이미 정렬 된 경우 정렬 방지 (Jan) 새로운 메모리 할당 최적화 (Jan) psql이 \ p \ g (Bruce)를 허용하십시오. 여러 규칙 조치 허용 (Jan) 추가 한도/오프셋 기능 (Jan) 많은 수의 테이블에 합류 할 때 최적화 개선 (Bruce) S. Simkovics의 마스터 논문에서 새로운 소개 (Stefan, Thomas) S. Simkovics 'Master's Theess (Stefan)에서 새로운 소개에 대한 새로운 소개 개선 된 INT8 지원 (Ryan Bradetich, Thomas, Tom) Int8과 Text/Varchar 유형 (Thomas) 사이를 전환하는 새로운 루틴 메타 테이블이 결합되는 새로운 덤불 계획 (Bruce) 기본적으로 오른쪽 쿼리 활성화 (Bruce) 신뢰할 수있는 최대 백엔드 수를 설정하여 시간 구성 시간에 설정하십시오. (-with-maxbackends 및 postmaster switch (-n backends)) (Tom) GEQO 기본값은 이제 Optimizer Speedups (TOM)로 인해 10 테이블 10 테이블 MS-SQL 휴대 성을 위해 NULL = VAR 허용 (Michael, Bruce) Contrib check_primary_key ()를 수정하여 "자동"또는 "종속"(anand) 보기 쿼리 (Ryan)에서 psql \ d 허용 좋아요 (브루스)에 대한 속도 ECPG 수정/기능, src/interfaces/ecpg/changelog 파일 참조 (Michael) JDBC 수정/기능, SRC/인터페이스/JDBC/Changelog (Peter) 참조 % 운영자가 /(Bruce)와 같은 우선 순위를 갖습니다. 시스템 테이블 구조 변경을 허용하기 위해 새 Postgres -o 옵션 추가 (Bruce) Contrib/Pginterface/Findoidjoins 스크립트 업데이트 (Tom) 인덱스가있는 삭제 된 행의 진공 속도 (Vadim) 인수 (TOM)에 따라 다른 버전을 실행하도록 비 SQL 기능을 허용합니다. \ dt and Friends (Masaaki Sakaida)가 보낸 실제 쿼리를 표시하는 -E 옵션 추가 PSQL (Masaaki Sakaida) 용 스타트 업 배너에 버전 번호 추가 새로운 Contrib/Vacuumlo는 참조되지 않은 큰 물체를 제거합니다 (Peter) 테이블 크기에 대한 새로운 초기화이므로 비 바 검은 테이블이 더 잘 작동합니다 (TOM) 연결이 거부 될 때 오류 메시지 개선 (TOM) char () 및 varchar () 필드 배열 지원 (Massimo) 신뢰성과 성능을 높이기위한 해시 코드 점검 (TOM) pygresql 2.4 (d 'arcy)로 업데이트 변경된 디버그 옵션이므로 -d4 및 -d5는 다른 노드 디스플레이를 생성합니다 (Jan) 새로운 PG_OPTIONS : Pretty_plan, Pretty_Parse, Pretty_rewritten (Jan) 시스템 테이블 액세스 (TOM)에 대한 더 나은 최적화 통계 비 디펜트 블록 크기의 더 나은 취급 (Massimo) GEQO OPTIMIEST 메모리 소비 (TOM) 향상 Union은 이제 대상 목록에 있지 않은 열의 주문에 따라 주문을 지원합니다 (Jan) 주요 LIBPQ ++ 개선 (Vince Vielhaber) pg_dump는 이제 -z (acl 's)를 기본값 (Bruce)으로 사용합니다. 백엔드 캐시, 메모리 속도 업 (TOM) pg_dump가 하나의 스냅 샷 트랜잭션에서 모든 것을하도록하십시오 (Vadim) 큰 객체 메모리 누출에 대한 수정, pg_dumping (TOM)에 대한 수정 INET 유형은 이제 비교를 위해 Netmask를 존중합니다 진공 분석 만하도록 재입학 만 사용하십시오 (vadim) 노조에 대한 견해 허용 (Jan) pg_dump는 이제 활성 데이터베이스 (Vadim)에서 일관된 스냅 샷을 생성 할 수 있습니다. 소스 트리 변경 -------------------- 포트 매칭 개선 (Tom) Sunos의 이식성 수정 NT/WIN32 백엔드 포트 추가 및 동적 로딩 활성화 (Magnus and Daniel Horak) Linux (Tatsuo)를 실행하는 Cobalt Qube (MIPS)에 새로운 포트 NetBSD/M68K 로의 항구 (Mr. Mutsuki Nakajima) NetBsd/Sun3에서 항구 (Mr. Mutsuki Nakajima) NetBSD/MACPPC 로의 포트 (Toshimi Aoki) TCL/TK 구성 수정 (Vince) 규칙 쿼리에 대한 현재 키워드 제거 (Jan) NT Dynamic Loading은 이제 작동합니다 (Daniel Horak) ARM32 지원 추가 (Andrew McMurry) HPUX 11 및 Unixware에 대한 더 나은 지원 더 균일하게 파일 처리를 개선하고 파일 디스크립터 누출 방지 (TOM) PLPGSQL에 대한 새로운 설치 명령 (Jan)