출시일: 2004-03-08
이 릴리스에는 7.4.1의 다양한 수정 사항이 포함되어 있습니다. 에 대한 7.4 주요 릴리스의 새로운 기능에 대한 자세한 내용은 참조PostgreSQL : 문서 : 7.4 : 릴토토 사이트 추천 7.4.
7.4.X를 실행하는 경우 덤프/복원이 필요하지 않습니다. 그러나 가장 쉬운 방법으로 권장될 수 있습니다. 에서 발견된 두 가지 오류에 대한 수정 사항을 통합했습니다. 7.4.X 시스템 카탈로그의 초기 내용. 덤프/initdb/다시 로드 7.4.2의 initdb를 사용하는 시퀀스는 이러한 문제를 자동으로 수정합니다. 문제.
두 가지 오류 중 더 심각한 것은 해당 데이터 유형입니다.모든 배열정렬 라벨이 잘못되었습니다. 이것이 문제가 되는 이유는 다음과 같습니다.pg_statistic시스템 카탈로그 사용모든 배열열. 라벨을 잘못 지정하면 플래너가 문제를 일으킬 수 있습니다. 쿼리를 계획할 때 잘못된 예측이 발생하고 충돌이 발생하기도 합니다. 참여하다어디절 이중 정렬 열(예:float8그리고타임스탬프). 그것은 강하게 모든 설치에서 다음 중 하나를 수행하여 이 오류를 복구하는 것이 좋습니다. initdb 또는 제공된 수동 복구 절차에 따라 수행 아래.
더 적은 오류는 시스템 보기입니다.pg_settings있는 것으로 표시되어야 합니다 공개 업데이트 액세스, 허용업데이트 pg_settings대체로 사용됨세트. 이 문제는 initdb 또는 수동으로 사용하지만 사용하지 않는 한 수정할 필요는 없습니다.pg_settings 업데이트.
initdb를 수행하지 않으려면 다음 절차를 따르십시오. 문제를 해결하는 데 도움이 될 것입니다pg_statistic. 데이터베이스 슈퍼유저로서 다음을 수행합니다.
-- pg_statistic에서 오래된 데이터를 삭제합니다: pg_statistic에서 삭제; 진공 pg_statistic; -- 행 1개를 업데이트해야 합니다. 업데이트 pg_type SET typalign = 'd' WHERE oid = 2277; -- 6개 행을 업데이트해야 합니다. 업데이트 pg_attribute SET attalign = 'd' WHERE atttypid = 2277; -- -- 이 시점에서 충돌을 방지하려면 새로운 백엔드를 시작해야 합니다! -- -- pg_statistic을 다시 채우십시오: 분석;
이것은 라이브 데이터베이스에서 수행될 수 있지만 모든 것이 변경된 데이터베이스에서 실행 중인 백엔드를 다시 시작해야 합니다. 다시 채우는 것이 안전하기 전에pg_statistic.
수리하려면pg_settings오류, 그냥 그렇게 하세요:
선택 권한 부여, pg_settings를 공개로 업데이트;
위 절차는 다음에서 수행되어야 합니다.각설치 데이터베이스, 포함템플릿1, 이상적으로는 포함템플릿0또한. 만약 당신이 템플릿 데이터베이스를 수정하지 않은 후 이후에 생성된 데이터베이스 데이터베이스에는 동일한 오류가 포함됩니다.템플릿1다른 것과 같은 방법으로 수정할 수 있습니다. 다른 데이터베이스가 있지만 수정 중입니다.템플릿0추가 단계가 필요합니다. 먼저, 데이터베이스 문제에서:
UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
다음 연결 대상템플릿0그리고 위의 수리 절차를 수행하십시오. 마지막으로 다음을 수행하세요.
-- template0 다시 고정: 진공 동결; -- 향후 변경으로부터 보호합니다. 업데이트 pg_database SET datallowconn = false WHERE datname = 'template0';
릴리스 7.4.2에는 릴리스에 포함된 모든 수정 사항이 포함되어 있습니다. 7.3.6 및 다음 수정 사항:
수정pg_statistics정렬 최적화 프로그램이 충돌할 수 있는 버그
이 문제에 대한 자세한 내용은 위를 참조하세요.
슈퍼 사용자가 아닌 사용자의 업데이트 허용pg_settings
몇 가지 최적화 도구 버그 수정, 그 중 대부분은 다음과 같습니다."하위 계획 대상에서 변수를 찾을 수 없습니다 목록"오류
대규모 시작 중 메모리 부족 오류 방지 다중 인덱스 스캔
다음으로 이어질 수 있는 멀티바이트 문제 해결"메모리 부족"오류 발생 중복사
문제 해결선택 / 다음으로 테이블 생성테이블에서 OID 없음
문제 해결alter_table병렬 테스트 중 회귀 테스트
특히 파일 열기 제한에 도달하는 문제 수정 OS X(톰)
터키어 로케일 문제에 대한 부분 수정
initdb는 이제 터키어 로케일에서 성공하지만 여전히 몇 가지 불편함을 겪고 있습니다.i/I문제.
복원 시 pg_dump가 클라이언트 인코딩을 설정하도록 합니다.
기타 사소한 pg_dump 수정
ecpg가 다시 C 키워드를 열 이름으로 사용하도록 허용 (마이클)
ECPG 추가찾을 수 없는 경우에선택/삽입/업데이트/삭제(마이클)
set-returning을 호출하는 쿼리에 대한 ecpg 충돌 수정 함수(마이클)
기타 다양한 ecpg 수정 사항(마이클)
Borland 컴파일러 수정 사항
스레드 빌드 개선(Bruce)
다양한 기타 빌드 수정
다양한 JDBC 수정