PostgreSQL 9.5.4 문서 | |||
---|---|---|---|
이전 | 위로 | 부록 E. 출시 소식 | 다음 |
출시일: 2016-05-12
이번 릴리즈에는 9.5.2 버전 출시 이후 발견된 다양한 개선 사항들이 포함되었다. 9.5 메이저 릴리즈에 포함된 새 기능들의 자세한 내용은 E.5절에서 다룬다.
9.5.X 버전에서는 덤프/복원 작업을 할 필요는 없다.
하지만, 9.5.2 이전 버전을 사용하고 있다면, E.3절 소개를 먼저 읽어 보아야 한다.
OpenSSL을 이용한 접속에서 오류 큐가 이미 빈 것이라고 가정하지 않고, 접속 전에 이 오류 큐를 비움; 오류 큐가 비어 있지 않은 상태에서 접속이 되는 상황을 막음 (Peter Geoghegan, Dave Vitek, Peter Eisentraut)
단일 프로세스로 OpenSSL 라이브러리를 이용한 여러 접속에서, 오류 큐를 비울 때, 오류 큐가 깔끔하게 비워지지 않는 문제를 고쳤다. PHP, Python, Ruby 환경에서 libpq 라이브러리를 사용해서 동시 접속을 하는 경우, OpenSSL 라이브러리를 이용하는 경우에 이 문제가 발견 되었다. 이 문제는 확장 모듈에서 SSL 연결을 사용할 경우도 같은 문제를 일으킬 가능성이 있어, 서버도 안전하지는 않다.
left join 구문에서 오른쪽 집합이 full join을 사용할 경우 실행 계획기의 "failed to build any N-way joins" (불특정 N방향 조인 생성 실패) 오류 수정 (Tom Lane)
다중 nestloop 계획에서 = 연산 검사가 잘못 되었던 것 수정 (Tom Lane)
WHERE 절에 X.X = Y.Y = Z.Z 형태와 같이 삼중 이상 다중 = 연산자를 사용하는 경우, 실행 계획기가 잘못된 실행 계획을 짤 수 있던 문제를 수정함. 오래전부터 있었던 버그였으나, 실재로 이런 문제가 발생된 경우가 없었기 때문에, 이제 수정 되었음.
operator_precedence_warning 설정값이 on으로 지정된 경우, 아주 드물게 구문 오류가 발생한 부분 수정 (Tom Lane)
SELECT (ARRAY[])::text[] 경우 오류가 발생했음. 괄호가 없으면 정상.
GIN 인덱스 검색에서 쿼리 실행 중 메모리 누수 수정 (Julien Rouhaud)
GIN 인덱스 자료 입력시 쿼리 실행 메모리 누수 방지와, 잠재적 인덱스 손상 위험 막음 (Tom Lane)
메모리 누수 현상은 간단한 쿼리에서는 소량이기 때문에, 잘 찾기 힘드나, maintenance_work_mem를 초과하는 대량 GIN 인덱스 만들기를 할 때는 그 누수량이 심했다.
to_timestamp()
함수에서
TH, th, Y,YYY
양식 출력에서 잘못된 부분 수정
(Tom Lane)
서브시퀀스 양식 코드가 잘못 인식되어 입력 문자열의 끝부분이 잘못 잘리는 문제가 있었다.
룰이나 뷰에서 값 연산자 ANY (배열) 형태가 서브 SELECT 구문으로 있는 경우 잘못된 처리를 수정함 (Tom Lane)
ALTER SYSTEM 구문의 매개변수값으로 줄바꿈 문자 허용하지 않음 (Tom Lane)
환경 설정파일에서 값으로 사용되는 문자열 가운데 줄바꿈 문자가 있으면 오류를 내기 때문에, ALTER SYSTEM 구문에서 사용하는 그 값에도 허용하지 않게 함.
OID가 있는 인덱스가 사용될 경우 바르게 작동하도록 ALTER TABLE ... REPLICA IDENTITY USING INDEX 처리 방식 수정 (David Rowley)
테이블스페이스 심볼릭 링크 삭제 시 발생할 수 있는 오동작 가능성 방지 (Tom Lane)
자료형 길이 계산이 엄격한 몇몇 플랫폼에서 논리 디코딩 모듈 오동작 해결 (Tom Lane, Andres Freund)
이 문제는 트랜잭션의 크기가 커 디스크로 임시 보관하고, 기본키가 바뀌는 트랜잭션에서 문제가 생겼다.
wal 송신기가 종료될 때 수신기의 응답을 위한 요청이 반복되던 부분 수정 (Nick Cleaton)
pg_regress 에서 PGCTLTIMEOUT 환경 변수를 이용해 작업 시작 초과시간을 지정할 수 있도록 함 (Tom Lane)
pg_ctl 명령에서 추가된 이 기능을 느린 시스템의 기능 검사 자동화를 위해 확장함.
하나 뿐인 연산자 클래스로 구성된 연자자 패밀리의 소유주 지정이 바르게 되도록 pg_upgrade 수정함 (Tom Lane)
이 문제는 새 데이터베이스에 연사자 패밀리가 복원되었을 때, 그 연산자 클래스들이 그 패밀리에 속하지 못하는 부분이었다. 사용하는 부분에 크게 문제가 되지는 않았지만, 새로 만들어진 데이터베이스를 pg_dump 명령을 이용해서 덤프하는 경우 문제가 생길 수 있었다.
TOAST 규칙이 다른 버전간 pg_upgrade 명령이 바르게 작동하도록 수정함 (Tom Lane)
pg_upgrade 명령은 옛 버전에서는 TOAST 테이블이 없는데, 새 PostgreSQL 버전에서 한 테이블이 TOAST 테이블을 추가로 있어야 한다고 판단하는 경우를 위해 특별한 예외처리를 했다. 이 부분에서 문제가 있었고, 이부분을 이 버전에서 뺐다.
IBM XLC 컴파일러를 사용할 경우 atomic 연산 오류 수정 (Noah Misch)
빌드 시 --disable-spinlocks 옵션을 추가해서 SysV 세마포어 수를 줄임 (Tom Lane)
NetBSD 라이브러리 함수와 충돌을 피하기 위해,
strtoi()
함수를 strtoint()
함수로 이름을 바꿈
(Thomas Munro)
Windows에서 bind()
, listen()
함수가 반환하는 오류 처리 수정
(Tom Lane)
Microsoft Visual Studio로 빌드 할 때 컴파일러의 출력 내용을 간략하게 처리함 (Christian Ullrich)
Visual Studio 2015에서 빌드 가능함 (Michael Paquier, Petr Jelínek)
VS2015 환경은 Windows Vista 이전 환경에서는 사용할 수 없다.
Visual Studio 2013 환경에서 putenv()
처리를 수정함
(Michael Paquier)
Windows FormatMessage()
함수 처리에서
위험성 제거
(Christian Ullrich)
적절한 곳에 FORMAT_MESSAGE_IGNORE_INSERTS 플래그를 사용해야 함. 알려진 버그는 아니나, 위험성을 제거함.
러시아와 베니주엘라 일광시간법 변경에 따른 tzdata 파일을 2016d로 바꿈. 여기에는 Europe/Kirov, Asia/Tomsk 지역 이름이 추가 되었음.