| PostgreSQL 9.0.23 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.0 : 윈 토토 9.0.8 | 위로 | 부록 E. 사설 토토 노트 | PostgreSQL : 문서 : 9.0 : 토토 캔 9.0.6 | |
출시일: 2012-02-27
이 릴리스에는 9.0.6의 다양한 수정 사항이 포함되어 있습니다. 에 대한 9.0 주요 릴리스의 새로운 기능에 대한 자세한 내용은 다음을 참조하세요.토토 사이트 순위 PostgreSQL : 문서 : 9.0 : 릴리스 9.0.
9.0.X를 실행하는 경우 덤프/복원이 필요하지 않습니다.
그러나 다음 버전보다 이전 버전에서 업그레이드하는 경우 9.0.6, 참조PostgreSQL : 문서 : 9.0 : 토토 캔 9.0.6.
다음에 대한 트리거 기능에 대한 실행 권한이 필요합니다.트리거 생성(로버트 하스)
이 누락된 검사로 인해 다른 사용자가 다음을 실행할 수 있습니다. 위조된 입력 데이터로 트리거 기능을 설치하여 그가 소유한 테이블에. 이는 다음 사용자에게만 의미가 있습니다. 표시된 트리거 기능보안 정의자, 그렇지 않으면 트리거 함수가 다음과 같이 실행됩니다. 어쨌든 테이블 주인. (CVE-2012-0866)
일반 이름 길이에 대한 임의 제한을 제거합니다. SSL 인증서(Heikki Linnakangas)
둘 다libpq그리고 서버가 SSL에서 추출된 일반 이름을 잘랐습니다. 32바이트의 인증서입니다. 일반적으로 이로 인해 아무 문제도 발생하지 않습니다. 예상치 못한 검증 실패보다 더 나쁜 것은 다소 믿기 어려운 시나리오가 있습니다. 한 인증서 보유자가 다른 인증서 보유자를 가장할 수 있도록 허용합니다. 는 피해자는 정확히 32바이트의 일반 이름을 가져야 합니다. 공격자는 신뢰할 수 있는 CA를 설득해야 합니다. 일반 이름에 다음이 포함된 인증서를 발급합니다. 문자열을 접두사로 사용합니다. 서버를 가장하면 클라이언트를 리디렉션하려면 추가 공격이 필요합니다. 연결. (CVE-2012-0867)
개행 문자를 이름의 공백으로 변환pg_dump댓글(로버트 하스)
pg_dump부주의했어요 SQL 내에서 방출되는 객체 이름 삭제에 대한 정보 출력 스크립트의 주석. 개행 문자가 포함된 이름 적어도 스크립트를 구문론적으로 부정확하게 렌더링합니다. 악의적으로 제작된 개체 이름은 SQL을 나타낼 수 있습니다. 스크립트를 다시 로드할 때 주입 위험이 있습니다. (CVE-2012-0868)
동시 삽입으로 인한 btree 인덱스 손상 수정 진공청소기로 청소 중(톰 레인)
삽입으로 인한 색인 페이지 분할은 다음과 같습니다. 때때로 동시 실행이 발생함진공인덱스 항목 제거를 놓치기 위해 제거해야합니다. 해당 테이블 행이 다음과 같이 된 후 제거되면 매달린 색인 항목으로 인해 오류가 발생합니다. (예:"다음에서 블록 N을 읽을 수 없습니다. 파일 ...") 또는 더 나쁜 경우, 조용히 잘못된 쿼리 결과 관련 없는 행이 이제 비어 있는 테이블에 다시 삽입된 후 위치. 이 버그는 사설 토토 8.2부터 존재했지만 발생 빈도가 너무 낮아 지금까지 진단되지 않았습니다. 귀하에게 그러한 일이 발생했다고 의심할 만한 이유가 있는 경우 데이터베이스에서 영향을 받은 인덱스를 다시 인덱싱하면 문제가 해결됩니다. 것들.
WAL 중 공유 버퍼의 일시적인 제로화 수정 재생(톰 레인)
재생 논리는 때때로 0이 되고 다시 채워집니다. 공유 버퍼로 인해 콘텐츠가 일시적으로 유효하지 않습니다. 상시 대기 모드사설 토토는 쿼리가 발생할 수 있습니다. 그것은 가비지 데이터를 보면서 병렬로 실행됩니다. 다양한 증상은 이로 인해 발생할 수 있지만 가장 흔한 증상은 것 같습니다"잘못된 메모리 할당 요청 크기".
핫 대기 후 다시 시작을 시도하도록 포스트마스터 수정 충돌(톰 레인)
논리 오류로 인해 포스트마스터가 종료되었습니다. 백엔드 프로세스가 있는 경우 클러스터를 다시 시작하려고 시도하는 것보다 상시 대기 모드사설 토토 작동하는 동안 충돌이 발생했습니다.
수정클러스터/진공이 가득 참소유한 토스트 값 처리 최근 업데이트된 행 기준(Tom Lane)
이러한 감독으로 인해 다음이 발생할 수 있습니다."중복된 키 값이 고유한 값을 위반합니다. 제약"토스트에 대한 오류가 보고되고 있습니다. 이러한 명령 중 하나가 실행되는 동안 테이블의 인덱스가 생성됩니다.
테이블별 권한뿐만 아니라 열별 권한 업데이트 권한, 테이블 소유자 변경 시(Tom Lane)
이렇게 하지 않으면 이전에 부여된 모든 열 권한이 여전히 부여된 것으로 표시되었습니다. 옛 주인에 의해. 이는 새 소유자도 아니고 슈퍼유저는 현재 추적할 수 없는 테이블 소유자를 취소할 수 있습니다. 권한.
외부 데이터 래퍼 및 외부 서버 지원소유 재지정(알바로 헤레라)
이 명령은 다음과 같이 실패했습니다."예기치 못한 일이었어 기밀"소유권을 변경해야 하는 경우 오류 발생 그러한 객체의.
일부 설정에 존재하지 않는 값 허용사용자/데이터베이스 세트 변경(헤이키 린나캉가스)
허용default_text_search_config, default_tablespace및temp_tablespaces다음 이름으로 설정됩니다. 알려지지 않았습니다. 다른 곳에서도 알려질 수 있기 때문입니다. 설정을 사용할 데이터베이스 또는 테이블스페이스가 그렇지 않을 수도 있기 때문에 테이블스페이스의 경우 아직 생성되지 않았습니다. 동일한 문제가 이전에 인식되었습니다.검색_경로및 다음 설정 이제 그렇게 행동하세요.
테이블 삭제 문제 발생 시 충돌 방지 파일 커밋 후(Tom Lane)
테이블을 삭제하면 기본 테이블도 삭제되어야 합니다. 트랜잭션이 커밋된 후에만 디스크 파일을 생성합니다. 다음의 경우 실패(예: 잘못된 파일로 인해) 권한) 코드는 경고만 내보내야 합니다. 중단하기에는 너무 늦었기 때문에 메시지를 보내고 계속하세요. 거래. 이 논리는 릴리스 8.4부터 깨졌습니다. 그러한 상황을 초래하면 PANIC 및 데이터베이스를 다시 시작할 수 없습니다.
WAL 재생 중 발생하는 오류 복구드롭 테이블스페이스(톰 레인)
Replay는 테이블스페이스를 제거하려고 시도합니다. 하지만 이것이 가능한 데에는 여러 가지 이유가 있습니다. 실패(예: 잘못된 소유권 또는 사용 권한) 해당 디렉토리). 이전에는 재생 코드가 패닉 상태였습니다. 수동 없이 데이터베이스를 다시 시작할 수 없도록 렌더링 개입. 문제를 기록하는 것이 더 나은 것 같습니다. 제거 실패의 유일한 결과이기 때문에 계속하십시오. 디렉토리는 낭비되는 디스크 공간입니다.
다음에 대한 AccessExclusiveLocks 로깅의 경쟁 조건 수정 상시 대기(Simon Riggs)
때때로 자물쇠는 다음 사람이 보유하고 있는 것으로 기록됩니다."거래 0". 이 시간은 슬레이브 서버사설 토토 어설션 오류를 생성하는 것으로 가장 잘 알려져 있지 않습니다. 더 심각한 문제의 원인이 될 수도 있습니다.
WAL 재생 중에 OID 카운터를 올바르게 추적하십시오. 감쌀 때 (톰 레인)
이전에는 OID 카운터가 높은 상태로 유지되었습니다. 시스템이 재생 모드를 종료할 때까지의 값입니다. 실용적인 그 결과는 일반적으로 전혀 없지만 승격된 대기 서버가 있는 시나리오 마스터가 OID 카운터를 다음으로 진행하는 데 시간이 오래 걸릴 수 있습니다. 값이 필요하면 합리적인 값이 됩니다.
오해의 소지가 있는 내용을 내보내는 것을 방지"일관적인 복구 상태에 도달했습니다"로그 충돌 복구 시작 시 메시지(Heikki 린나캉가스)
초기값 수정pg_stat_replication.replay_location(후지이 마사오)
이전에는 표시된 값이 다음까지 잘못되었습니다. 최소한 하나의 WAL 레코드가 재생되었습니다.
정규식 역참조 수정*첨부됨 (톰 레인)
정확한 문자열 일치를 시행하는 대신 코드는 다음을 만족하는 모든 문자열을 효과적으로 받아들입니다. 역참조에 의해 참조되는 패턴 하위 표현식 기호.
비슷한 문제가 여전히 역참조에 영향을 미치고 있습니다. 아니라 더 큰 수량화된 표현에 포함되어 있습니다. 수량자의 직접적인 주제가 됩니다. 이것은 앞으로 다루겠습니다PostgreSQL출시.
최근에 발생한 처리 중 메모리 누수 수정inet/cidr값 (Heikki Linnakangas)
2011년 12월 사설 토토의 패치PostgreSQL다음에서 메모리 누수를 일으켰습니다. 시나리오에서 중요할 수 있는 이러한 작업 그러한 열에 btree 인덱스를 구축하는 것과 같은 것입니다.
다음 이후에 매달린 포인터 수정만들기 표는 다음과 같습니다/선택에 SQL 언어 함수(Tom Lane)
대부분의 경우 이는 어설션 실패로만 이어졌습니다. 어설션 지원 빌드가 있지만 더 나쁜 결과가 나타납니다. 가능합니다.
다음의 syslogger에서 파일 핸들을 두 번 닫는 것을 방지하세요 윈도우(마우마우)
보통 이 오류는 눈에 보이지 않지만 이로 인해 디버그 버전사설 토토 실행할 때 예외 윈도우.
plpgsql에서 I/O 변환 관련 메모리 누수 수정 (안드레스 프로인드, 얀 어반스키, 톰 레인)
특정 작업은 작업이 끝날 때까지 메모리 누수를 일으킬 수 있습니다. 현재 기능.
개선pg_dump의 상속된 테이블 열 처리(Tom Lane)
pg_dump잘못 처리됨 하위 열의 기본값이 다른 상황 상위 열보다 표현식입니다. 기본값이 텍스트상으로 부모의 기본값과 동일하지만 그렇지 않습니다. 실제로는 동일합니다(예를 들어 스키마 검색으로 인해 경로 차이) 다른 것으로 인식되지 않으며, 덤프 및 복원 후에 아이가 허용되도록 부모의 기본값을 상속합니다. 다음과 같은 하위 열입니다.NULL이 아님부모가 없는 곳 미묘하게 잘못 복원될 수도 있습니다.
수정pg_restore의 INSERT 스타일 테이블 데이터에 대한 데이터베이스 직접 모드(Tom 레인)
다음으로 만든 아카이브 파일에서 데이터베이스로 직접 복원--삽입또는--열 삽입사용 시 옵션이 실패함pg_restore릴리스에서 2011년 9월 또는 12월의 결과로 다른 문제에 대한 수정 감독. 아카이브 파일 자체에는 문제가 없으며 텍스트 모드 출력은 괜찮습니다.
허용pg_upgrade에 다음을 포함하는 프로세스 테이블regclass열(브루스 몸지안)
이후pg_upgrade지금 보존에 주의를 기울입니다pg_classOID, 더 이상 이에 대한 이유가 없습니다. 제한.
만들다libpq무시ENOTDIR찾을 때 오류 발생 SSL 클라이언트 인증서 파일(Magnus Hagander)
이렇게 하면 SSL 연결이 설정될 수 있지만 사용자의 홈 디렉터리인 경우에도 인증서 없이 다음과 같이 설정되었습니다./dev/null.
다음 필드 정렬 문제를 좀 더 수정하세요.ecpg의 SQLDA 영역(졸탄 보스조르메니)
허용AT옵션 포함ecpg 해제진술(Michael Meskes)
이를 지원하는 인프라는 잠시였지만 실수로 인해 여전히 오류가 발생했습니다. 케이스 거부를 확인하세요.
varchar를 정의할 때 변수 이름을 사용하지 마십시오 Ecpg의 구조(Michael Meskes)
수정contrib/auto_explain의 유효한 JSON을 생성하는 JSON 출력 모드(Andrew Dunstan)
출력은 최상위 레벨사설 토토 괄호를 사용했습니다. 중괄호를 사용했어야 했습니다.
오류 수정기여/intarray'sint[] & int[]연산자(기욤 르라지)
두 개의 입력 배열에 포함된 가장 작은 정수인 경우 common은 1이고 두 배열 모두에 더 작은 값이 있습니다. 그러면 결과사설 토토 1이 잘못 생략됩니다.
오류 감지 수정contrib/pgcrypto'sencrypt_iv()그리고decrypt_iv()(마코 크린)
이 함수는 특정 유형의 보고에 실패했습니다. 잘못된 입력 오류가 발생하고 대신 무작위로 반환됩니다. 잘못된 입력에 대한 쓰레기 값입니다.
1바이트 버퍼 오버런 수정contrib/test_parser(폴 기요)
코드는 필요한 것보다 1바이트 더 읽으려고 시도합니다. 코너 케이스사설 토토는 충돌이 발생합니다. 부터contrib/test_parser은 예시 코드일 뿐이며, 이는 그 자체로는 보안 문제가 아니지만 나쁜 예입니다. 코드가 여전히 좋지 않습니다.
사용__sync_lock_test_and_set()스핀락용
가능한 경우 ARM사설 토토(Martin Pitt)
이 기능은 이전의 사용을 대체합니다.SWPB명령입니다. ARMv6 이상에서는 더 이상 사용되지 않으며 사용할 수 없습니다. 보고서 이전 코드가 명백한 방식으로 실패하지 않도록 제안합니다. 최신 ARM 보드이지만 단순히 동시 연동이 되지 않습니다. 액세스로 인해 다중 프로세스에서 이상한 오류가 발생합니다. 작동합니다.
사용-fexcess-정밀도=표준이 옵션을 허용하는 gcc 버전으로 빌드할 때의 옵션 (앤드류 던스턴)
이것은 최신 버전이 발생하는 다양한 시나리오를 방지합니다. gcc의 창의적인 결과가 나올 것입니다.
FreeBSD에서 스레드 Python 사용 허용(Chris Rees)
우리의 구성 스크립트는 이전에 이것이 조합이 작동하지 않습니다. 하지만 FreeBSD가 문제를 해결했습니다. 따라서 해당 오류 검사를 제거하세요.