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

E.220. 사설 토토 6.5

출시일: 1999-06-09

이 사설 토토는 개발 팀의 Berkeley에서 물려받은 소스 코드를 숙달했습니다. 당신은 것입니다 이제 주요 기능을 쉽게 추가할 수 있습니다. 전 세계적인 개발 규모와 경험 증가 팀.

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

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

이것은 이전 테이블 수준 잠금을 제거하고 무엇보다 뛰어난 잠금 시스템을 갖추고 있습니다. 상업용 데이터베이스 시스템. 전통적인 시스템에서는 각 수정된 행은 커밋될 때까지 잠겨 있으므로 다른 사용자가 읽습니다. MVCC는 자연스러운 다중 버전을 사용합니다. 의 성격포스트그레SQL에 독자가 계속해서 일관된 데이터를 읽을 수 있도록 허용 작가 활동. 작성자는 계속해서 컴팩트 pg_log를 사용합니다. 거래 시스템. 이 모든 작업은 별도의 작업 없이 수행됩니다. 기존 데이터베이스처럼 모든 행에 잠금을 할당합니다. 시스템. 따라서 기본적으로 우리는 더 이상 다음 사항에 의해 제한되지 않습니다. 간단한 테이블 수준 잠금; 우리보다 나은 게 있어 행 수준 잠금.

다음의 핫 백업pg_dump

pg_dump이점을 취하다 일관된 데이터베이스를 제공하는 새로운 MVCC 기능 데이터베이스가 온라인 상태로 유지되고 사용 가능한 동안 덤프/백업 문의사항이 있습니다.

숫자 데이터 유형

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

임시 테이블

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

새로운 SQL 기능

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

속도 향상

우리는 계속해서 속도를 높이고 있습니다.포스트그레SQL, 다양한 덕분에 우리 팀 내 재능. 메모리 할당 속도를 높였습니다. 최적화, 테이블 조인 및 행 전송 루틴.

포트

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

인터페이스

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

문서

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

E.220.1. 버전 6.5로 마이그레이션

다음을 사용하여 덤프/복원pg_dump을 원하는 분들은 필수입니다. 이전 릴리스의 데이터를 마이그레이션합니다.PostgreSQL. pg_upgrade할 수 있다아님이것으로 업그레이드하는 데 사용됩니다 테이블의 디스크 구조가 변경되었기 때문에 릴리스됩니다. 이전 릴리스와 비교됩니다.

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

E.220.1.1. 다중 버전 동시성 제어

6.5의 리더는 데이터에 관계없이 데이터를 잠그지 않기 때문에 트랜잭션 격리 수준, 하나의 트랜잭션이 읽은 데이터는 다른 사람이 덮어쓰게 됩니다. 즉, 행이 다음과 같은 경우 에 의해 반환됨선택그런 뜻은 아닙니다 이 행이 반환될 당시 실제로 존재하는지 확인합니다(예: 명세서나 거래가 시작된 후 어느 시점)에도 마찬가지입니다. 행이 삭제되거나 업데이트되지 않도록 보호됩니다. 현재 트랜잭션이 수행되기 전의 동시 트랜잭션 커밋하거나 롤백합니다.

행의 실제 존재를 확인하고 보호하기 위해 동시 업데이트에 대해 사용해야 합니다업데이트를 위해 선택또는 적절한락 테이블성명. 이건 가져가야지 이전 릴리스에서 애플리케이션을 이식할 때 고려 사항 의PostgreSQL및 기타 환경.

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

참고:다음에서 트랜잭션을 실행하면 SERIALIZABLE 모드에서는 다음을 실행해야 합니다.잠금실행 전 위의 명령 모두DML문장 (선택/삽입/삭제/업데이트/가져오기/복사_TO) 거래에서.

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

E.220.2. 변경사항

버그 수정
---------
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)
대시가 포함된 사용자 이름에 권한 부여 허용
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가 그룹 권한을 적절하게 덤프하도록 허용(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의 이식성 수정
Windows NT 백엔드 포트 추가 및 동적 로딩 활성화(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)
HP-UX 11 및 UnixWare에 대한 지원 향상
파일 처리를 보다 균일하게 개선하고 파일 설명자 누출을 방지합니다(Tom)
plpgsql의 새로운 설치 명령(1월)