이 문서는 지원되지 않는 배트맨 토토 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

E.107. 배트맨 토토 6.3

출시일: 1998-03-01

있습니다많은새로운 이번 릴리스의 기능 및 개선 사항. 여기에 간략한 내용이 있습니다. 불완전한 요약:

  • 전체 기능을 포함한 많은 새로운 SQL 기능SQL92하위 선택 기능(모든 것이 여기에는 대상 목록 하위 선택이 있음).

  • 지정할 클라이언트측 환경 변수 지원 시간대 및 날짜 스타일.

  • 클라이언트/서버 연결을 위한 소켓 인터페이스. 이것은 지금은 기본값이므로 시작해야 할 수도 있습니다.우체국장그리고-i플래그.

  • 더 나은 비밀번호 인증 메커니즘. 기본 테이블 권한이 변경되었습니다.

  • 구식시간 여행이되었습니다 제거됨. 성능이 향상되었습니다.

참고:Bruce Momjian은 다음에 다음 메모를 썼습니다. 새 릴리스를 소개합니다.

제가 언급하고 싶은 몇 가지 일반적인 6.3 문제가 있습니다. 이것들은 하나로 설명할 수 없는 큰 항목들일 뿐입니다. 문장. 세부 변경사항 목록은 아직 검토 중 필요합니다.

먼저, 이제 하위 선택이 있습니다. 이제 우리에겐 그것들이 있으니, 나는 그렇게 할 것이다 subselect가 없으면 SQL은 매우 제한적입니다. 언어. 하위 선택은 주요 기능이므로 검토해야 합니다. 하위 선택이 더 나은 솔루션을 제공하는 장소에 대한 코드 귀하의 질문에. 더 활용도가 높을 것 같아요 당신이 생각하는 것보다 하위 선택에 대한 것입니다. Vadim이 우리를 큰 성과로 이끌었습니다. 하위 선택이 포함된 SQL 맵과 완전한 기능을 갖춘 맵도 있습니다. 유일한 하위 선택으로 할 수 없는 일은 대상에서 이를 사용하는 것입니다. 목록.

둘째, 6.3은 TCP/IP 대신 Unix 도메인 소켓을 사용합니다. 기본. 다른 컴퓨터에서 연결을 활성화하려면 다음을 수행해야 합니다. 새로운 postmaster -i 옵션을 사용하고 물론 편집하세요pg_hba.conf. 또한 이러한 이유로의 형식은pg_hba.conf변경되었습니다.

셋째,문자()필드는 이제 허용됩니다 보다 빠른 액세스varchar()또는텍스트. 구체적으로,텍스트그리고varchar()접속 시 페널티가 있습니다. 이 유형의 첫 번째 열 뒤의 모든 열.문자()이러한 액세스 페널티도 있었지만 더 이상 그렇지 않습니다. 이는 귀하의 일부를 재설계하는 것을 제안할 수도 있습니다. 테이블, 특히 짧은 문자 열이 있는 경우 다음과 같이 정의했습니다.varchar()또는텍스트. 이 변경 사항과 기타 변경 사항으로 인해 6.3이 더욱 빨라졌습니다. 이전 릴리스보다.

이제 우리는 Unix 파일과 독립적으로 정의할 수 있는 비밀번호를 갖게 되었습니다. 새로운 SQL USER 명령이 있습니다. 참조관리자 가이드10702_10868포스트그레스수퍼유저. pg_user는 이제 pg_shadow의 뷰이며 PUBLIC으로 선택 가능배트맨 토토. pg_user를 계속 사용해야 배트맨 토토. 변경 없이 적용됩니다.

이제 사용자가 생성한 테이블에는 더 이상 SELECT 권한이 없습니다. 기본적으로 공개입니다. 이는 ANSI 표준 때문에 수행되었습니다. 그것을 요구합니다. 물론 원하는 권한을 부여할 수 있습니다. 테이블이 생성된 후. 시스템 테이블은 계속해서 PUBLIC으로 선택 가능합니다.

실제 교착 상태 감지 코드도 있습니다. 더 이상은 안돼 60초의 시간 초과. 그리고 새로운 잠금 코드는 다음을 구현합니다.FIFO더 좋아야 배트맨 토토. 많이 사용하는 동안 리소스 부족이 줄어듭니다.

부적절한 문서에 대해 많은 불만이 제기되었습니다. 이전 릴리스에서는. Thomas는 많은 새로운 분야에 많은 노력을 기울였습니다. 이 릴리스의 설명서입니다. doc/ 디렉터리를 확인하세요.

성능상의 이유로 시간 여행은 사라졌지만 가능합니다. 트리거를 사용하여 구현됨(참조pgsql/contrib/spi/README). 확인해 보세요. 유형, 연산자 등에 대한 새로운 \d 명령. 또한 뷰에는 이제 기본 테이블을 기반으로 하지 않고 자신의 권한을 갖게 되므로 이에 대한 권한은 별도로 설정해야 배트맨 토토. 확인하다/pgsql/인터페이스대화하는 새로운 방법에 대해배트맨 토토.

이것은 실제로 설명이 필요한 첫 번째 릴리스입니다. 기존 사용자의 경우. 여러모로 이것은 필요했기 때문에 새 릴리스에서는 많은 제한 사항이 제거되었으며 해결 방법은 사람들입니다. 더 이상 필요하지 않습니다.

E.107.1. 버전 6.3으로 마이그레이션

다음을 사용하여 덤프/복원pg_dump또는pg_dumpall원하시는 분은 필수입니다. 이전 릴리스의 데이터를 마이그레이션합니다.포스트그레SQL.

E.107.2. 변경사항

버그 수정
---------
MOVE 구현으로 인해 손상된 바이너리 커서 수정(Vadim)
tcl 라이브러리 충돌 수정(1월)
Gerhard Hintermayer의 배열 처리 수정
acl 오류 수정 및 중복 pqtrace 제거(Bruce)
빈 파일에 대한 psql \e 수정(Bruce)
varchar() 필드의 textcat 수정(Bruce)
DBT Sendproc 수정(Zeugswetter Andres)
진공 분석 구문 문제 수정(Bruce)
국제 식별자 수정(Tatsuo)
상속된 테이블의 집계 수정(Bruce)
범위를 벗어난 데이터에 대한 substr() 수정
1=1 또는 2=2 선택에 대한 수정, 1=1 및 2=2 선택, 합계(2+2) 선택(Bruce)
상태 결과를 표시하도록 Notty 출력을 수정합니다.  -q 옵션이 여전히 꺼집니다(Bruce)
count(*), 뷰와 여러 테이블이 포함된 agg 및 sum(3)(Bruce)에 대한 수정
클러스터 수정(Bruce)
PQtrace가 여러 번 시작/중지되는 문제 수정(Bruce)
최신 잠금 웨이터가 가져오는 것과 같은 다양한 잠금 문제를 해결합니다.
       나이든 웨이터보다 먼저 잠금을 설정하고, 읽기 잠금을 설정한 사람들은 공유하지 않습니다.
       작성기가 잠금을 기다리고 있으면 잠기고, 대기 중인 작성기는 그렇지 않은 경우
       대기 중인 독자보다 우선권을 얻음(브루스)
외부 파일에서 쿼리를 실행할 때 psql에서 충돌이 발생하는 문제 수정(James)
열을 기준으로 여러 순서를 지정하는 문제를 해결합니다. 첫 번째 항목은 다음과 같습니다.
       NULL 값(제로엔)
float8 및 int4에 대한 올바른 해시 테이블 지원 함수 사용(Thomas)
CREATE OPERATOR 문에서 JOIN= 옵션을 다시 활성화합니다(Thomas).
예상 동작과 일치하도록 부울 연산자의 우선순위 변경(Thomas)
너무 큰 정수에 대해 elog(ERROR) 생성(Bruce)
제약 조건 절에 다중 인수 함수 허용(Thomas)
'true','false','yes','no','1','0'에 대한 부울 입력 리터럴을 확인하세요.
       인식되지 않으면 elog(ERROR)를 발생시킵니다(Thomas).
주요 대형 객체 수정
중복 항목을 표시하는 GROUP BY 수정(Vadim)
MergeJoin(Vadim)의 인덱스 스캔 수정

향상된 기능
------------
EXISTS, IN, ALL, ANY 키워드로 하위 선택(Vadim, Bruce, Thomas)
신규 사용자 매뉴얼(토마스 외)
자주 호출되는 일부 기능을 인라인 처리하여 속도 향상
실제 교착 상태 감지, 더 이상 시간 초과 없음(Bruce)
SQL92 "상수" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP를 추가합니다.
       CURRENT_USER(토마스)
SQL92와 호환되도록 제약 조건 구문 수정(Thomas)
인덱스를 사용하여 SQL92 PRIMARY KEY 및 UNIQUE 절 구현(Thomas)
FOREIGN KEY에 대한 SQL92 구문을 인식합니다. elog 공지 던지기(토마스)
NOT NULL UNIQUE 제약 조건 절 허용(각각 이전에 별도로 허용됨)(Thomas)
상수가 아닌 배트맨 토토 스타일 캐스팅("::") 허용(Thomas)
SQL3 TRUE 및 FALSE 부울 상수에 대한 지원 추가(Thomas)
IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)에 대한 SQL92 구문 지원
부울 리터럴에 대해 더 짧은 문자열 허용(예: "t", "tr", "tru")(Thomas)
SQL92 구분 식별자 허용(Thomas)
SQL92 2진수 및 16진수 문자열 디코딩 구현(b'10' 및 x'1F')(Thomas)
리터럴 문자열의 유형 강제를 위한 SQL92 구문 지원
       (예: "DATETIME '지금'")(토마스)
텍스트 간에 int2, int4 및 OID 유형에 대한 변환 추가(Thomas)
인덱스 구축 시 공유 잠금 사용(Vadim)
이후 트랜잭션 블록 내부의 사용자 쿼리에 할당된 여유 메모리
       이 쿼리는 완료되었으며 <= 6.2.1(Vadim)에서 꺼졌습니다.
새로운 SQL 문 CREATE PROCEDURAL LANGUAGE(1월)
새로운포스트그레SQL절차적 언어(PL) 백엔드 인터페이스(1월)
pg_dump -H 옵션의 이름을 -h(Bruce)로 바꿉니다.
비밀번호, 유럽 날짜에 대한 Java 지원 추가(Peter)
LIKE 및 ~, !~ 작업에 인덱스 사용(Bruce)
날짜/시간 및 기간에 대한 해시 함수 추가(Thomas)
시간 여행 삭제(바딤, 브루스)
\d 및 \z에 대한 페이징을 추가하고 \i를 수정합니다(Bruce).
백엔드 및 프런트엔드 라이브러리에 Unix 도메인 소켓 지원 추가(Goran)
CREATE DATABASE/WITH LOCATION 및 initlocation 유틸리티 구현(Thomas)
더 많은 SQL92 및/또는 허용배트맨 토토열 식별자로 예약된 단어(Thomas)
SQL92 SET TIME ZONE...에 대한 지원 강화(Thomas)
SET/SHOW/RESET TIME ZONE은 TZ 백엔드 환경 변수(Thomas)를 사용합니다.
SET 키워드 구현 = DEFAULT 및 SET TIME ZONE DEFAULT(Thomas)
TZ 환경 변수를 사용하여 SET TIME ZONE 활성화(Thomas)
프론트엔드 및 백엔드 초기화에 PGDATESTYLE 환경 변수 추가(Thomas)
PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO 추가
       프론트엔드 라이브러리 초기화 환경 변수(Thomas)
회귀 테스트 시간대는 "setenv PGTZ PST8PDT"(Thomas)를 사용하여 자동으로 설정됩니다.
테이블, 열, 연산자, 유형 등에 대한 정보를 보려면 pg_description 테이블을 추가하세요.
       집합체(브루스)
시스템 테이블/인덱스 이름의 16자 제한을 32자로 늘립니다(Bruce)
시스템 인덱스 이름 바꾸기(Bruce)
SET DATESTYLE(Thomas)에 'GERMAN' 옵션 추가
"hh:mm:ss" 필드를 사용하여 "ISO 스타일" 시간 범위 출력 형식 정의(Thomas)
델타 시간에 분수 값 허용(예: '2.5일')(Thomas)
델타 시간에 대해 숫자 입력을 더욱 주의 깊게 확인(Thomas)
date_part()에 가능한 입력으로 날짜를 구현합니다(Thomas)
timespan_finite() 및 text_timespan() 함수 정의(Thomas)
아카이브 항목 제거(Bruce)
별도의 pg_password 인증 데이터베이스를 허용합니다.
       시스템 비밀번호 파일(Todd)
ACL 덤프, GRANT, REVOKE 권한(Matt)
text, varchar 및 bpchar 문자열 길이 함수 정의(Thomas)
상속 및 비용 계산을 위한 쿼리 처리 수정(Bruce)
CREATE TABLE/AS SELECT 구현(SELECT/INTO 대체)(Thomas)
제약 조건에 NOT, IS NULL, IS NOT NULL 허용(Thomas)
SELECT(Bruce)에 대한 UNION 구현
INSERT(Bruce)에 UNION, GROUP, DISTINCT 추가
varchar()는 필요한 바이트만 디스크에 저장합니다(Bruce)
BLOB 수정(Peter)
JDBC용 메가 패치...변경 사항 목록은 README_6.3을 참조하세요(Peter)
PQconnectdb()에서 사용하지 않는 "옵션"을 제거합니다.
교착 상태를 설명하는 새로운 LOCK 명령 및 잠금 매뉴얼 페이지(Bruce)
새로운 psql \da, \dd, \df, \do, \dS 및 \dT 명령 추가(Bruce)
시퀀스를 표시하도록 psql \z 향상(Bruce)
psql \d 테이블에 NOT NULL 및 DEFAULT 표시(Bruce)
새로운 psql .psqlrc 파일 시작(Andrew)
syslog(Thomas)를 표시하도록 contrib/linux의 샘플 시작 스크립트를 수정합니다.
contrib/ip_and_mac(TomH)의 IP 및 MAC 주소에 대한 새로운 유형
contrib/unixdate(Thomas)의 날짜/시간 유형을 사용한 Unix 시스템 시간 변환
기여 항목 업데이트(Massimo)
DBD::Pg(Goran)에 Unix 소켓 지원 추가
새로운 Python 인터페이스(PyGreSQL 2.0)(D'Arcy)
새로운 프런트엔드/백엔드 프로토콜에는 버전 번호, 네트워크 바이트 순서(Phil)가 있습니다.
pg_hba.conf의 보안 기능이 강화되고 문서화되었으며 많은 정리가 이루어졌습니다(Phil)
이제 CHAR()가 VARCHAR() 또는 TEXT보다 더 빠르게 액세스합니다.
Ecpg Embedded SQL 전처리기
시스템 열 오버헤드 감소(Vadmin)
pg_time 테이블 제거(Vadim)
길이가 필요한 유형(bpchar, varchar)을 식별하기 위해 pg_type 속성을 추가합니다.
COPY 명령이 실패할 경우 문제가 있는 라인에 대한 보고서 추가
VIEW 권한이 기본 테이블과 별도로 설정되도록 허용합니다.
       보안을 위해 적절하게 뷰에 GRANT/REVOKE를 사용하세요(1월)
이제 테이블에는 기본 GRANT SELECT TO PUBLIC이 없습니다.  당신은해야합니다
       그러한 권한을 명시적으로 부여합니다.
튜토리얼 예제 정리(Darren)

소스 트리 변경 사항
------
/tools/backend에 새로운 HTML 개발 도구 및 순서도 추가
SCO 컴파일 수정
Stratus 컴퓨터 포트 Robert Gillies
BSD44_derived 및 i386_solaris에 대한 shlib 지원이 추가되었습니다.
구성을 더욱 자동화하세요(Brook)
회귀 테스트 결과를 확인하는 스크립트 추가
파서 기능을 더 작은 파일로 나누고 함께 그룹화(Bruce)
heap_create의 이름을 heap_create_and_catalog로 바꾸고, heap_creatr의 이름을 바꿉니다.
       heap_create()(브루스)
잠금용 Sparc/Linux 패치(TomS)
PORTNAME 제거 및 포트별 항목 재구성(Marc)
최적화 README 파일 추가(Bruce)
최적화 프로그램에서 일부 재귀를 제거하고 일부 코드를 정리합니다.(Bruce)
NetBSD 잠금 수정(Henry)
libptcl make 수정(Tatsuo)
AIX 패치(Darren)
IS TRUE, IS FALSE, ...를 대신 "="를 사용하는 표현식으로 변경합니다.
       최적화를 허용하기 위해 istrue() 또는 isfalse()에 대한 함수 호출(Thomas)
NetBSD/Sparc 관련 다양한 수정(TomH)
알파 리눅스 잠금(Travis,Ryan)
elog(WARN)를 elog(ERROR)(Bruce)로 변경합니다.
FreeBSD에 대한 FAQ(Marc)
표준 배포판의 일부로 PostODBC 소스 트리 가져오기(Marc)
HP/UX 10 대 9(Stan)용 마이너 패치
varchar 길이와 같은 유형별 정보를 위한 새로운 pg_attribute.atttypmod(Bruce)
UnixWare 패치(Billy)
spinlock asm을 위한 새로운 i386 'lock'(Billy)
멀티플렉싱된 백엔드에 대한 지원이 제거되었습니다.
OpenBSD 포트 시작
AUX 포트 시작
Cygnus 포트 시작
회귀 스위트에 문자열 함수 추가(Thomas)
이전에 잘린 몇 가지 함수 이름을 16자로 확장합니다(Thomas)
불필요한 malloc() 호출을 제거하고 palloc()(Bruce)로 대체합니다.