출시일: 1995-07-21
호환되지 않는 변경사항:
* BETA-0.3은 이전 버전으로 생성된 데이터베이스와 호환되지 않습니다.
(시스템 카탈로그 변경 및 인덱싱 구조 변경으로 인해)
* 큰따옴표(")는 문자열 리터럴의 인용 문자로 더 이상 사용되지 않습니다.
작은따옴표(')로 변환해야 합니다.
* 집계 이름(예: int4sum)은 다음에 따라 이름이 변경됩니다.
SQL 표준(예: 합계).
* CHANGE ACL 구문은 GRANT/REVOKE 구문으로 대체되었습니다.
* float 리터럴(예: 3.14)은 이제 float4 유형입니다(float8 대신).
이전 릴리스); 의존하는 경우 타입 캐스팅을 수행해야 할 수도 있습니다.
float8 유형입니다. 타입캐스팅을 무시하고 할당하는 경우
float8 유형의 필드에 대한 float 리터럴을 사용하면 잘못된 값을 얻을 수 있습니다.
저장되었습니다!
* LIBPQ는 프론트엔드 애플리케이션이 가능하도록 완전히 개편되었습니다.
여러 백엔드에 연결할 수 있습니다
* pg_user의 usesysid 필드가 int2에서 int4로 변경되었습니다.
더 넓은 범위의 Unix 사용자 ID를 허용합니다.
* netbsd/freebsd/bsd o/s 포트는 다음으로 통합되었습니다.
단일 BSD44_derived 포트. (Alistair Crooks에게 감사드립니다)
SQL 표준 준수(postgres95를 만드는 다음 세부 사항 변경)
SQL-92 표준을 더 잘 준수함):
* 이제 다음 SQL 유형이 내장되었습니다: smallint, int(eger), float, real,
char(N), varchar(N), 날짜 및 시간.
다음은 기존 postgres 유형에 대한 별칭입니다.
smallint - int2
정수, 정수 - 정수4
부동 소수점, 실수 - 부동 소수점 4
char(N) 및 varchar(N)은 잘린 텍스트 유형으로 구현됩니다. ~ 안에
또한 char(N)은 공백 채우기를 수행합니다.
* 작은따옴표(')는 문자열 리터럴을 인용하는 데 사용됩니다. ''(추가로
\')는 문자열에 작은따옴표를 삽입하는 수단으로 지원됩니다.
* SQL 표준 집계명(MAX, MIN, AVG, SUM, COUNT)을 사용함
(또한 이제 집계를 오버로드할 수 있습니다. 즉,
사용자 정의 유형을 가져오기 위한 자체 MAX 집계입니다.)
* 변경 ACL이 제거되었습니다. GRANT/REVOKE 구문이 추가되었습니다.
- "GROUP" 키워드를 사용하여 그룹에 권한을 부여할 수 있습니다.
예를 들어:
my_group을 그룹화하기 위해 foobar에서 선택 권한 부여;
모든 사용자를 의미하는 'PUBLIC'이라는 키워드도 지원됩니다.
권한은 하나의 사용자 또는 그룹에게만 부여되거나 취소될 수 있습니다.
한 번에.
"WITH GRANT OPTION"은 지원되지 않습니다. 수업 소유자만 변경할 수 있습니다.
접근 제어
- 기본 액세스 제어는 사용자에게 읽기 전용 액세스 권한을 부여하는 것입니다.
사용자에게 삽입/업데이트 액세스 권한을 명시적으로 부여해야 합니다. 변경하려면
이 줄을 수정하십시오.
src/백엔드/utils/acl.h
ACL_WORLD_DEFAULT를 정의하는
버그 수정:
* 빈 테이블의 집계가 실행되지 않는 버그가 수정되었습니다. 지금,
빈 테이블에서 실행되는 집계는 다음의 초기 조건을 반환합니다.
집계. 따라서 빈 테이블의 COUNT는 이제 올바르게 0을 반환합니다.
빈 테이블의 MAX/MIN은 NULL 값의 행을 반환합니다.
* \ 사용을 허용합니다. 모니터 내부
* LISTEN/NOTIFY 비동기 알림 메커니즘이 이제 작동합니다.
* 이제 규칙 작업 본문의 NOTIFY가 작동합니다.
* 해시 인덱스가 작동하며 일반적으로 액세스 방법이 더 잘 수행됩니다.
대규모 btree 인덱스 생성이 훨씬 빨라집니다. (폴 덕분에
아오키)
기타 변경 사항 및 개선 사항:
* 쿼리 실행을 설명하는 데 사용되는 EXPLAIN 문 추가
plan (예: "EXPLAIN SELECT * FROM EMP"는 다음에 대한 실행 계획을 인쇄합니다.
쿼리).
* WARN 및 NOTICE 메시지에는 더 이상 타임스탬프가 없습니다. 켜려면
오류 메시지의 타임스탬프를 확인하려면 해당 줄의 주석 처리를 해제하세요.
src/백엔드/utils/elog.h:
/* ELOG_TIMESTAMPS 정의 */
* 액세스 제어 위반 시 메시지는 다음과 같습니다.
"그런 클래스가 없거나 권한이 부족하거나"
주어질 것입니다. 이는 다음과 같은 경우에 반환되는 것과 동일한 메시지입니다.
클래스를 찾을 수 없습니다. 이는 권한이 없는 사용자가
특권계층의 존재를 추측하는 것.
* 일부 추가 시스템 카탈로그 변경이 이루어졌으나 아직 변경되지 않았습니다.
사용자에게 표시됩니다.
libpgtcl 변경 사항:
* "pg_result" tcl 명령에 -oid 옵션이 추가되었습니다.
pg_result -oid는 삽입된 마지막 행의 oid를 반환합니다. 만약
마지막 명령이 INSERT가 아니면 pg_result -oid가 ""를 반환합니다.
* 대형 객체 인터페이스는 pg_lo* tcl 명령으로 사용할 수 있습니다:
pg_lo_open, pg_lo_close, pg_lo_creat 등
이식성 향상 및 새 포트:
* flex/lex 문제가 해결되었습니다. 이제 다음을 사용할 수 있습니다.
모든 플랫폼에서 lex 대신 flex를 사용하세요. 우리는 더 이상 가정을 하지 않습니다.
사용하는 플랫폼에 따라 어떤 어휘 분석기를 사용합니까?
* 이제 Linux-ELF 포트가 지원됩니다. 다양한 구성이 이루어졌습니다
테스트됨: 다음 구성이 작동하는 것으로 알려져 있습니다.
커널 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
모든 것을 ELF 형식으로,
새로운 유틸리티:
* ipcclean이 배포판에 추가됨
ipcclean은 일반적으로 실행할 필요가 없지만 백엔드가 충돌하는 경우
공유 메모리 세그먼트를 그대로 남겨두면 ipcclean은
당신을 위해 청소하십시오.
새로운 문서:
* 사용자 매뉴얼이 개정되었고 libpq 문서가 추가되었습니다.