E.11. 토토 커뮤니티 15.4

출시일: 2023-08-10

이 릴리스에는 15.3의 다양한 수정 사항이 포함되어 있습니다. 주요 릴리스 15의 새로운 기능에 대한 자세한 내용은 다음을 참조하세요.토토 캔 PostgreSQL : 문서 : 15 : E.13. 릴리스 15.

E.11.1. 버전 15.4로 마이그레이션

15.X를 실행하는 경우 덤프/복원이 필요하지 않습니다.

그러나 BRIN 색인을 사용하는 경우 다시 색인화하는 것이 좋습니다. 아래의 세 번째 변경 로그 항목을 참조하세요.

또한 15.1 이전 버전에서 업그레이드하는 경우 다음을 참조하세요.PostgreSQL : 문서 : 15 : E.12. 스포츠 토토 사이트 15.1.

E.11.2. 변경사항

  • 이름에 따옴표, 백슬래시 또는 달러 기호가 포함된 경우 확장 스크립트에 스키마 또는 소유자 이름을 대체하는 것을 허용하지 않음(Noah Misch)§

    이 제한은 신뢰할 수 있는 확장 프로그램에 대한 SQL 주입 위험으로부터 보호합니다.

    포스트그레SQL프로젝트는 이 문제를 보고한 Micah Gates, Valerie Woolard, Tim Carey-Smith 및 Christoph Berg에게 감사드립니다. (CVE-2023-39417)

  • 수정병합행 보안 정책을 적절하게 시행하기 위해(Dean Rasheed)§

    언제병합수행업데이트작업, 어떤 것이든 시행해야 합니다업데이트또는선택일반 테이블과 일치하도록 대상 테이블에 정의된 RLS 정책업데이트어디절이 작동합니다. 대신에 그것은 시행되었습니다.삽입둘 모두에 대한 RLS 정책삽입그리고업데이트행동.

    또한 언제병합수행아무것도 하지 않음작업, 대상 테이블의를 적용했습니다.삭제해당 행이 삭제되지 않더라도 기존 행에 대한 RLS 정책. 보안 문제는 아니지만 원하지 않는 오류가 발생할 수 있습니다.

    포스트그레SQL프로젝트는 이 문제를 보고한 Dean Rasheed에게 감사드립니다. (CVE-2023-39418)

  • BRIN 인덱스에서 비어 있는(행 없음) 범위와 모두 NULL인 범위 사이의 혼동을 수정하고 모두 NULL인 요약의 잘못된 병합을 수정했습니다(Tomas Vondra)§ §

    이러한 각 실수로 인해 BRIN 인덱스 범위에 NULL 값이 포함되어 있다는 사실을 잊어버릴 수 있으며 잠재적으로 NULL 값을 반환해야 하는 후속 쿼리가 이를 놓칠 수 토토 커뮤니티.

    이 수정 자체로는 잘못된 BRIN 항목을 수정하지 않습니다. 다음을 수행하는 것이 좋습니다.REINDEX널 검색에 사용될 수 있는 모든 BRIN 인덱스.

  • 다음과 같은 경우 손상된 데이터베이스를 남겨두지 마십시오.데이터베이스 삭제중단되었습니다(Andres Freund)§

    만약데이터베이스 삭제이미 되돌릴 수 없는 단계를 시작한 후 중단되었으며 대상 데이터베이스는 계속 액세스할 수 토토 커뮤니티(해당 데이터베이스가 제거되었기 때문에pg_database행은 롤백되지만) 내용이 손상될 수 있습니다. 되돌릴 수 없는 작업을 수행하기 전에 데이터베이스를 액세스할 수 없는 것으로 표시하여 문제를 해결하세요. 그 이후에 실패하면 데이터베이스가 여전히 부분적으로 남아 있지만 다른 것을 발행하는 것 외에는 아무것도 할 수 없습니다.데이터베이스 삭제.

  • 분할된 인덱스가 생성 시 유효한지 여부가 올바르게 표시되는지 확인하세요(Michael Paquier)§

    새 분할된 인덱스가 파티션 중 하나에 있는 기존의 유효하지 않은 인덱스와 일치하는 경우 분할된 인덱스가 조기에 유효한 것으로 표시될 수 토토 커뮤니티. 이로 인해 파티션을 나눈 테이블에 대한 후속 쿼리에서 잘못된 동작이나 어설션 오류가 발생할 수 토토 커뮤니티.

  • 파티션된 인덱스를 하위 인덱스와 일치시키는 동안 잘못된 하위 인덱스를 무시테이블 연결 파티션 변경(마이클 파퀴에)§

    이러한 색인은 이제 무시되며 대신 새 하위 색인이 생성됩니다.

  • 모든 파티션이 연결된 후 파티션된 인덱스를 유효하게 표시할 때 발생할 수 있는 오류 수정(Michael Paquier)§

    색인 업데이트pg_index항목이 다른 열에 오래된 데이터를 사용할 수 있습니다. 보고된 증상 중 하나는 다음과 같습니다.보이지 않는 튜플을 업데이트하려고 시도했습니다.오류.

  • 수정확장 프로그램 설정 스키마 변경확장 프로그램에 확장 프로그램 스키마 외부의 개체가 포함되어 있는지 불평합니다(Michael Paquier, Heikki Linnakangas)§

    확장 프로그램에 여러 스키마의 개체가 포함되어 있으면 오류가 발생하는 것은 항상 의도된 것입니다. 하지만 검사 코드가 잘못되어 일부 사례를 감지하지 못하여 놀라운 동작이 발생했습니다.

  • 테이블의 액세스 방법 종속성 추적 수정(Michael Paquier)§

    테이블 변경...액세스 방법 설정관련 업데이트 실패pg_dependent테이블의 액세스 방법을 변경할 때 항목. 내장되지 않은 액세스 방법을 사용하면 테이블이 여전히 이에 의존하더라도 액세스 방법이 삭제될 수 있는 위험이 발생합니다. 이 수정으로 인해 논리가 수정되었습니다.테이블 변경, 그러나 이미 누락된 항목은 조정되지 않습니다.pg_dependent항목.

  • 플래너에서 고유성 증명을 위해 부분 고유 인덱스를 사용하지 마십시오(David Rowley)§

    문제의 인덱스가 테이블을 스캔하는 데 사용되지 않으면 테이블에서 읽은 행의 고유성이 유지되지 않을 수 있으므로 잘못된 계획이 발생할 수 토토 커뮤니티.

  • 휘발성 조인 조건이 있는 측면 조인을 메모하지 마십시오(Richard Guo)§

    휘발성 필터 조건이 포함된 하위 계획에 Memoize를 적용하면 잘못된 답변이 나올 가능성이 높습니다. 이를 방지하기 위한 검사에서는 다음을 사용할 때 발생할 수 있는 몇 가지 경우를 놓쳤습니다.측면.

  • 의사 상수 조인 절을 사용하여 외부 조인에 대한 잘못된 계획 생성 방지(Etsuro Fujita)§

    플래너는 현재 푸시다운 원격 조인에 의사 상수 조인 절을 첨부하는 지원이 부족하므로 이러한 경우 원격 조인 생성을 비활성화하십시오. (더 나은 솔루션을 위해서는 플래너 데이터 구조의 ABI를 깨뜨리는 변경이 필요하므로 향후 주요 릴리스를 기다려야 합니다.)

  • 규칙 작업 확장 시 RLS 정책 표현식 및 보안 장벽 보기에서 하위 SELECT를 올바르게 처리합니다(Tom Lane)§

  • 충돌 감지의 경쟁 조건 수정직렬화 가능격리 모드(토마스 먼로)§ § §

    비트맵 힙 스캔을 사용할 때, GIN 인덱스를 사용할 때, 처음에 비어 있던 btree 인덱스를 검사할 때 충돌이 누락될 수 토토 커뮤니티. 이러한 모든 경우에는 충돌하는 트랜잭션이 커밋되도록 부적절하게 허용하여 직렬화 실패가 발생할 수 토토 커뮤니티.

  • 상속되거나 분할된 대상 테이블에 대한 EvalPlanQual 검사의 잘못된 동작 수정(Tom Lane)§

    이러한 감독으로 인해 작업이 업데이트되거나 삭제될 수 있습니다.읽어 커밋됨충돌하는 동시 업데이트로 인해 건너뛰어야 할 격리 모드가 수행되고 있습니다.

  • 외부 중첩 루프에서 오는 매개변수를 포함하는 내부 해시 키로 해시 조인 수정(Tom Lane)§

    해당 매개변수 값이 변경된 후 조인을 다시 검색할 때 해시 테이블을 다시 작성해야 하지만 이를 무시했습니다. 이로 인해 조인 출력 행이 누락될 수 토토 커뮤니티.

  • 복합 열의 필드를 업데이트하려고 할 때 간헐적으로 실패하는 문제 수정(Tom Lane)§

    복합 열의 전체 값이 라인 외부 토스트를 요구할 만큼 충분히 넓은 경우, 불행하게도 캐시 플러시로 인해 오류나 서버 충돌이 발생할 수 토토 커뮤니티.

  • 일부 쿼리 수명 메모리 누수 방지업데이트트리거를 사용한 쿼리(Tomas Vondra)§ §

  • 증분 정렬 계획 노드가 다시 검색될 때 쿼리 수명 메모리 누수 방지(James Coleman, Laurenz Albe, Tom Lane)§

  • 입력에 소수 초를 허용jsonpath's날짜시간()방법(톰 레인)§

  • 매우 복잡한 텍스트 검색 패턴으로 스택 오버플로 충돌 방지(Tom Lane)§

  • 최대 10240바이트 길이의 토큰 허용pg_hba.conf그리고pg_ident.conf(톰 레인)§

    이전 제한인 256바이트는 일부 사용 사례에서는 충분하지 않은 것으로 나타났습니다.

  • 확장 프로그램이 예약된 GUC 접두사를 선언할 때 모든 기존 자리 표시자가 일치하는지 확인하십시오(Karina Litskevich, Ekaterina Sokolova)§

    잘못된 루프 논리로 인해 일부 항목을 건너뛸 수 토토 커뮤니티.

  • C++ 메모리 부족 조건의 잘못된 처리 수정(Heikki Linnakangas)§

    JIT를 사용 중인 경우 C++에서 메모리 부족신규전화는 다음으로 이어질 것입니다.PostgreSQL예상된 C++ 예외 대신 치명적인 오류입니다.

  • 드문 널 포인터 충돌 수정plancache.c(톰 레인)§

  • 구독이 삭제될 때 구독에 대한 통계 항목 유출을 방지하세요(Masahiko Sawada)§

  • 페이지 여유로 인해 여유 공간 범위가 합쳐질 때 유용할 수 있는 공유 메모리 세그먼트의 추적을 잃지 않도록 방지하십시오(Dongming Liu)§

    세그먼트가 적절한 위치로 이동되었는지 확인하세요이후 검색을 통해 찾을 수 있도록 새로운 여유 공간을 확보합니다.

  • 허용진공특정 유형의 b-트리 인덱스 손상을 감지한 후 계속하려면 (Peter Geoghegan)§ §

    잘못된 형제 페이지 링크가 감지되면 이전처럼 오류를 발생시키지 말고 문제를 기록하고 계속 진행하십시오. 아무것도 부족하지 않음REINDEX깨진 색인을 수정하지만 방지진공완료부터 완료까지 상황을 더욱 악화시킬 위험이 토토 커뮤니티.

  • 다음을 확인하세요WrapLimitsVacuumLock다음 이후에 출시됨진공잘못된 데이터 감지pg_database.datfrozenxid또는pg_database.datminmxid(안드레스 프룬드)§

    이 잠금을 해제하지 못하면 나중에 교착 상태가 발생할 수 있지만 세션이 종료되거나 다른 오류가 발생하면 잠금이 정리됩니다.

  • 충돌 복구 중 준비된 트랜잭션의 이중 재생 방지(suyu.cmj, Michael Paquier)§ §

    이 체크포인트에 의해 이미 디스크에 플러시된 일부 2단계 트랜잭션 상태 데이터가 있는 체크포인트 도중에 충돌이 발생한 후 충돌 복구는 준비된 트랜잭션을 두 번 재생하려고 시도하여 다음과 같은 치명적인 오류로 이어질 수 있습니다.잠금이 이미 걸려토토 커뮤니티.시작 프로세스 중.

  • 새로 생성되었지만 아직 비어 있는 테이블이 있는지 확인하세요fsync다음 검문소에 도착했습니다(Heikki Linnakangas)§

    이것이 없으면 운영 체제 충돌로 인해 빈 파일이 사라지는 경우 테이블에 대한 후속 작업이 실패할 수 토토 커뮤니티.파일을 열 수 없습니다오류.

  • 기록되지 않은 인덱스의 초기화 포크 생성이 WAL에 기록되는지 확인하세요(Heikki Linnakangas)§

    로그되지 않은 인덱스의 기본 데이터 포크는 WAL에 로그되지 않지만 초기화 포크는 충돌 후 인덱스를 복원할 수 있는 일관된 상태를 보장해야 합니다. 초기화 포크에 데이터가 포함되어 있지 않은 경우(표준 인덱스 AM에서 사용하지 않는 경우) 이 단계가 누락되었습니다. 하지만 일부 확장 프로그램은 그런 식으로 동작할 수도 토토 커뮤니티.

  • 침묵 가짜연속기록 누락오류 (토마스 먼로)§

    다음의 부정확한 불만 사항이 기록되는 것을 방지하기 위해 이 사례를 WAL의 일반적인 종료로 처리pg_waldump그리고월센더.

  • 지나치게 엄격한 주장 수정jsonpath코드 (데이비드 로울리)§

    쿼리가 적용된 경우 이 주장은 실패했습니다..type()연산자를 a로like_regex결과. 비어설션 빌드에는 버그가 없었습니다.

  • 이미 중단된 트랜잭션에서 확장 쿼리 프로토콜을 통해 빈 명령문을 처리할 때 어설션 실패 방지(Tom Lane)§

  • 다음과 같은 경우 어설션 실패를 방지하세요.stats_fetch_consistency트랜잭션 중에 설정이 변경되었습니다(호리구치 쿄타로)§

  • 수정contrib/fuzzystrmatch의 Soundex차이()빈 입력을 제대로 처리하는 함수 (Alexander Lakhin, Tom Lane)§

    알파벳 문자가 포함되지 않은 입력 문자열로 인해 예측할 수 없는 출력이 발생했습니다.

  • 공백 검사 강화기여/hstore입력(에반 존스)§

    어떤 경우에는 문자가 공백으로 잘못 인식되어 폐기될 수 토토 커뮤니티.

  • 너무 큰 입력 배열을 허용하지 않음기여/intarray'sgist__int_ops색인 opclass (Ankit Kumar Pandey, Alexander Lakhin)§

    이전에는 이 코드가 다음을 보고했습니다.공지그러나 어쨌든 계속 누르면 색인을 읽을 때 충돌 위험이 있는 잘못된 색인 항목이 생성됩니다.

  • GiST 인덱스 항목의 쓸모없는 이중 압축 해제를 피하세요.기여/intarray(Konstantin Knizhnik, Matthias van de Meent, Tom Lane)§

  • 수정기여/페이지검사'sgist_page_items()포함된 인덱스 열이 있을 때 작동하는 함수 (Alexander Lakhin, Michael Paquier)§

    이전에는 색인에 열이 포함된 경우,gist_page_items()인덱스 리프 페이지에 해당 값을 표시하지 못하거나 리프가 아닌 페이지에서 완전히 충돌이 발생합니다.

  • psql, 무시PSQL_WATCH_PAGERstdin/stdout이 터미널이 아닐 때의 환경 변수 (Tom Lane)§

    이것은 다음의 치료에 해당합니다.PSQL_PAGER외의 명령에서\watch.

  • 수정pg_dump본문에 고유 인덱스에 대한 구문 분석 시간 종속성이 필요한 새로운 스타일의 SQL 언어 함수를 올바르게 처리하기 위해(Tom Lane)§

    이러한 경우는 다음에서 발생할 수 있습니다.그룹별그리고충돌 중26893_27007pg_dump그렇게 하지 않았고 대신 다음에 대한 경고를 인쇄했습니다.종속성 루프를 해결할 수 없습니다..

  • 개선pg_dump의 종속성 루프 문제에 대한 세부정보 표시(Tom Lane)§

  • 충돌 방지pgbench빈 파이프라인 및 준비된 모드 사용(Álvaro Herrera)§

  • 다음을 확인하세요pg_index.무례한관계 캐시 항목이 최신 상태로 유지됩니다(Shruthi Gowda)§

    이 값은 어떤 경우에는 유효하지 않을 수 토토 커뮤니티. 관계 캐시의 복사본에 의존하는 핵심 코드가 없으므로 이는 Postgres 자체에 관한 한 잠재적인 버그일 뿐입니다. 그러나 라이브 버그인 확장이 있을 수 토토 커뮤니티.

  • 수정make_etags비충격적인 작업을 위한 스크립트ctags(사와다 마사히코)§

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.