E.4. 배트맨 토토 13.19

출시일: 2025-02-13

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

포스트그레SQL커뮤니티는 2025년 11월에 13.X 릴리스 시리즈에 대한 업데이트 출시를 중단합니다. 사용자는 곧 최신 릴리스 브랜치로 업데이트하는 것이 좋습니다.

E.4.1. 버전 13.19로 마이그레이션

13.X를 실행배트맨 토토 경우 덤프/복원이 필요하지 않습니다.

그러나 13.17 이전 버전에서 업그레이드하는 경우에는 다음을 참조하세요.PostgreSQL : 문서 : 13 : E.4. 배트맨 토토 13.17.

E.4.2. 변경사항

  • 강화PQescapeString및 잘못 인코딩된 입력 문자열에 대한 관련 함수(Andres Freund, Noah Misch)§ § § § § § §

    다음에서 제공하는 데이터 인용 기능libpq이제 입력의 인코딩 유효성을 완전히 확인합니다. 유효하지 않은 문자가 감지되면 가능하면 오류를 보고합니다. 오류 반환 규칙이 없는 경우 출력 문자열은 서버가 잘못된 인코딩을 보고하고 작은따옴표, 백슬래시 등과 일치배트맨 토토 바이트에 의해 중간 처리가 속지 않도록 조정됩니다.

    이 변경의 목적은 이러한 함수 중 하나가 조작된 입력을 인용배트맨 토토 데 사용되는 경우 발생할 수 있는 SQL 주입 공격으로부터 보호배트맨 토토 것입니다. 결과 문자열이 a로 직접 전송되면 위험이 없습니다.포스트그레SQL서버(어차피 인코딩을 확인하지만)를 통과할 때 위험이 있습니다.psql또는 기타 클라이언트측 코드. 역사적으로 이러한 코드는 인코딩을 주의 깊게 조사하지 않았으며 많은 경우 이러한 문제를 감지한 경우 어떻게 해야 배트맨 토토지 명확하지 않습니다.

    이 수정은 데이터 인용 기능, 서버 및 중간 처리가 사용 중인 문자 인코딩에 동의배트맨 토토 경우에만 효과적입니다. 신뢰할 수 없는 입력을 SQL 명령에 삽입배트맨 토토 애플리케이션은 이것이 사실인지 확인하기 위해 특별한 주의를 기울여야 합니다.

    이것을 사용하지 않고 신뢰할 수 없는 입력을 인용배트맨 토토 애플리케이션 및 드라이버libpq함수에도 비슷한 문제가 발생할 위험이 있습니다. 먼저 서버에서 예상배트맨 토토 인코딩에서 데이터가 유효한지 확인해야 합니다.

    포스트그레SQL프로젝트는 이 문제를 보고한 Stephen Fewer에게 감사드립니다. (CVE-2025-1094)

  • 연결 권한 확인 및 제한에서 병렬 작업자 제외(Tom Lane)§

    확인하지 마세요데이타로우콘, rolcanlogin그리고ACL_CONNECT병렬 작업자를 시작할 때 리더 프로세스가 원래 유사한 검사를 통과배트맨 토토 것으로 충분하다고 가정배트맨 토토 대신 권한을 부여합니다. 예를 들어, 리더가 로그인 권한이 없는 역할로 실행 중일 때 병렬 쿼리의 예기치 않은 실패를 방지합니다. 같은 맥락에서 시행ReservedConnections, datconnlimitrolconnlimit일반 백엔드에 대해서만 제한하며, 제한에 이미 도달했는지 확인하면서 일반 백엔드만 계산합니다. 이러한 한도는 일반 백엔드에 대한 프로세스 슬롯의 과도한 소비를 방지하기 위한 것입니다. 그러나 병렬 작업자 및 기타 특수 프로세스에는 자체 한도 확인 기능이 있는 자체 프로세스 슬롯 풀이 있습니다.

  • 계속TransactionXmin동기화됨내프록-xmin(헤이키 린나칸가스)§

    이러한 감독으로 인해 프로세스는 이미 제거된 데이터에 액세스하려고 시도할 수 있습니다. 알려진 결과 중 하나는 일시적입니다.거래 상태에 접근할 수 없습니다.오류.

  • 새로 삽입된 카탈로그 항목을 카탈로그 캐시 목록에 추가배트맨 토토 데 실패할 수 있는 경쟁 조건 수정(Heikki Linnakangas)§

    예를 들어 기존 세션 내에서 새로 생성된 기능을 사용하지 못배트맨 토토 결과가 발생할 수 있습니다.

  • 업데이트와 동시에 시스템 카탈로그를 정리할 때 발생할 수 있는 카탈로그 손상 방지(Noah Misch)§

  • 관계 잘림 실패 시 데이터 손상 수정(토마스 먼로)§ § §

    관계 자르기를 수행배트맨 토토 데 필요한 파일 시스템 호출이 실패하여 디스크에 일관되지 않은 상태가 남을 수 있습니다(예: 삭제된 데이터를 효과적으로 되살리는 경우). 실제로 이를 방지할 수는 없지만 이러한 실패를 PANIC으로 만들어 복구할 수 있으므로 WAL에서 잘림 시도 직전까지 재생하여 일관성이 복원됩니다. 이는 매우 바람직한 동작은 아니지만 이러한 실패는 허용 가능한 해결책으로 보일 만큼 드물습니다.

  • 관계 잘림 중 체크포인트 시작 방지(로버트 하스)§

    이것은 수정된 파일이 검사점을 완료하기 전에 fsync가 이루어지지 않아 운영 체제가 곧 충돌할 경우 데이터 손상 위험을 초래배트맨 토토 경쟁 조건을 방지합니다.

  • 사용이름 바꾸기()아님링크()/연결 해제()파일 이름 바꾸기(Nathan Bossart)§

    이전 코딩은 작업이 실수로 기존 파일을 덮어쓰는 일이 없도록 보장하기 위한 것이었습니다. 그러나 오류가 발생하면 동일한 파일에 대한 두 개의 링크가 남아 후속 작업이 혼란스러워지고 데이터 손상 위험이 발생할 수 있습니다. 실제로 대상 파일 이름이 이미 존재할 수 있는 위치에서는 이 기능을 사용하지 않으므로 다중 링크 위험을 제거하기 위해 덮어쓰지 않음 보장을 포기하는 것이 더 나은 것 같습니다.

  • 업데이트 손실 가능성 방지pg_database.datfrozenxid언제진공a와 동시에 실행됩니다.소유 재지정해당 데이터베이스의 소유자를 변경합니다(Kirill Reshke)§

  • 잘못된 부분 수정tg_updatedcols다음에 전달된 값업데이트 후트리거(톰 레인)§

    어떤 경우에는tg_updatedcolsbitmap은 동일한 트랜잭션의 이전 명령으로 업데이트된 열 집합을 설명하여 트리거를 속여 잘못된 작업을 수행할 수 있습니다.

    또한 너무 많은 복사본을 만들어 메모리 팽창을 방지합니다.tg_updatedcols비트맵.

  • 잘못된 처리 수정to_timestampFFn형식 코드(톰 레인)§

    바로 앞의 정수 형식 코드FFn사용 가능한 모든 숫자를 소비하고 아무것도 남기지 않을 것입니다.FFn.

  • 해제할 때XMLTABLE()표현식, 필요한 경우 XML 네임스페이스 이름이 큰따옴표로 묶여 있는지 확인하세요(Dean Rasheed)§

  • 포함ldapscheme옵션 포함pg_hba_file_rules()출력 (로렌츠 알베)§ §

  • 병합하지 마세요유니온열 데이터 정렬이 일관되지 않은 경우의 작업(Tom Lane)§

    이전에는 병합해도 안전한지 결정할 때 대조를 무시했습니다.유니온단일 N 방향으로 들어갑니다유니온작업. 이는 비결정적 데이터 정렬이 도입되기 전에는 틀림없이 유효했지만 사용 중인 데이터 정렬이 고유성 정의에 영향을 미칠 수 있으므로 더 이상 유효하지 않습니다.

  • 파티션 정리 단계에서 누락된 표현식 처리 수정(Tom Lane)§

    이러한 감독으로 인해 다음이 발생할 수 있습니다.인식할 수 없는 노드 유형파티션을 나눈 테이블에 액세스배트맨 토토 쿼리에서 오류 및 기타 문제가 발생할 수 있습니다.

  • dshash 테이블이 1GB를 초과하도록 허용(Matthias van de Meent)§

    이것은 다음과 같은 오류를 방지합니다잘못된 DSA 메모리 할당 요청 크기. 예를 들어 수백만 개의 테이블을 처리배트맨 토토 트랜잭션에서 이러한 사례가 발생할 수 있습니다.

  • 정수 오버플로 방지bringetbitmap()(제임스 헌터, 예브게니 고르바뇨프)§

    결과는 통계 목적으로만 사용되므로 이 오류의 효과는 대부분 외관상입니다.

  • 페이지를 교차배트맨 토토 WAL 레코드를 읽을 때 스트리밍 대기 서버가 무한 루프되는 것을 방지합니다(Kyotaro Horiguchi, Alexander Kukushkin)§

    이것은 레코드의 연속이 다른 WAL 소스에서 읽어야 배트맨 토토 페이지에 있을 때 발생합니다.

  • 초기 프로세스 시작 중 의도치 않게 FATAL 오류가 PANIC으로 승격되는 문제 수정(Noah Misch)§

    이것은 다음과 같은 결과가 발생할 가능성이 낮은 경우를 수정합니다.패닉: 하위 프로세스에서 proc_exit()가 호출됨.

  • 운영자 가족 구성원 운영자 또는 지원 절차가 매달린 참조가 될 수 있는 사례 수정(Tom Lane)§ §

    어떤 경우에는 OID에 대한 참조가 여전히 남아 있는 동안 데이터 유형이 삭제될 수 있습니다.pg_amop또는pg_amproc. 이로 인해 즉각적인 문제가 발생하지는 않았지만 소유 운영자 계열을 삭제하려는 시도는 실패합니다.pg_dump연산자 계열을 덤프할 때 가짜 출력이 생성됩니다. 이 수정 사항으로 인해 연산자 계열/클래스를 생성하고 수정하여 필요한 종속성 항목을 추가할 수 있으므로 데이터 유형을 삭제하면 종속 연산자 계열 요소도 함께 삭제됩니다. 하지만 이는 취약한 기존 운영자 가족에게는 도움이 되지 않으므로 반창고도 추가되었습니다.드롭 운영자 가족매달린 구성원이 있는 가족을 삭제할 때 실패를 방지하기 위해.

  • 논리적 디코딩 출력에서 여러 메모리 누수 수정(Vignesh C, Masahiko Sawada, Boyu Yang)§ §

  • 실패 반환 확인 누락으로 인해 메모리 부족 시 발생 가능성이 낮은 충돌 방지malloc()(카리나 릿스케비치)§

  • 테스트 중 정수 오버플로 방지wal_skip_threshold조건 (톰 레인)§

    매우 큰 관계를 생성한 트랜잭션은 관계를 fsync배트맨 토토 대신 WAL에 복사하여 내구성을 보장하기로 실수로 결정하여 요점을 무효화할 수 있습니다.wal_skip_threshold. (이것은 언제에만 중요합니다.wal_level다음으로 설정됨최소, 그렇지 않으면 어쨌든 WAL 사본이 필요합니다.)

  • 캐시 조회 중 안전하지 않은 작업 순서 수정(Noah Misch)§

    유일하게 알려진 결과는 일반적으로 무해한 것이었습니다.귀배트맨 토토 ExclusiveLock 유형의 잠금 장치를 소유하고 있지 않습니다.경고 중그랜트 테이블스페이스.

  • 수정 가능이름 확인 실패이전 ARM 플랫폼에서 JIT를 사용할 때 실패함(Thomas Munro)§

    이는 기본 설정에 대한 불일치로 인해 발생할 수 있습니다.-moutline-atomicsgcc와 clang 사이. 최소한 Debian과 Ubuntu는 armv8-a를 대상으로 하는 gcc 및 clang 컴파일러를 제공하는 것으로 알려져 있지만 기본적으로 개요 원자 사용이 다릅니다.

  • 다음에 속하지 않는 Windows 연결 지점 처리 수정PostgreSQL원산지(토마스 먼로)§ §

    이전에는,initdb데이터 디렉터리 경로에 확장이 없는 연결 지점이 포함된 경우 실패합니다.절대 드라이브형식이거나 확장이 다른 연결 지점을 가리킵니다.

  • 어설션 실패 수정재귀적 ... UNION쿼리(데이비드 로울리)§

  • 집합 연산 리프 쿼리에 집합 연산이 포함된 경우 규칙 분석에서 어설션 실패 방지(Man Zeng, Tom Lane)§

  • 병렬 쿼리 시작 시 극단적인 사례 어설션 실패 방지(Tom Lane)§

  • 관계 잘림 중 드문 어설션 실패 방지(Heikki Linnakangas)§

  • NULLIF(), 읽기-쓰기 확장 객체 포인터를 데이터 유형의 동등 함수에 전달하지 마십시오(Tom Lane)§

    등등 함수는 읽기-쓰기 포인터가 주어지면 객체를 수정하거나 삭제할 수 있습니다. 우리가 그것을 반환하기로 결정하면 좋지 않을 것입니다.NULLIF()결과. 내장된 동등 함수에는 문제가 없을 수 있지만 PL/pgSQL로 코딩된 함수를 사용하면 실패를 쉽게 입증할 수 있습니다.

  • PL/Python의 메모리 누수 복구(Mat Arye, Tom Lane)§

    반복적인 사용PLyPlan.execute또는plpy.cursorPL/Python 함수를 호출배트맨 토토 동안 메모리 누수가 발생했습니다.

  • Tcl 9로 컴파일하도록 PL/Tcl 수정(Peter Eisentraut)§

  • 에서ecpg전처리기, 범위를 벗어난 변수를 참조배트맨 토토 커서의 잘못된 처리 가능성 수정(Tom Lane)§

  • ecpg, 지원되지 않는 사용에 대한 컴파일 시간 경고 수정STDIN에서 복사...(칸바야시 료)§

    이전에는 오타로 인해 의도한 경고가 발행되지 않았습니다.

  • 수정psqlSJIS(Tom Lane)로 인코딩된 파일 경로 이름을 안전하게 처리하기 위해§

    SJIS의 일부 2바이트 문자에는 ASCII 백슬래시와 동일한 두 번째 바이트가 있습니다(\). 이러한 문자는 경로 이름 정규화로 인해 손상되어 이름에 해당 문자가 포함된 파일에 대한 액세스가 차단되었습니다.

  • 잘못된 버전 사용 수정pq신호()pgbench그리고psql(후지이 마사오, 톰 레인)§

    이 오류는 다음을 사용할 때 오작동을 일으킬 수 있습니다.-T옵션 포함pgbench또는\watch명령 입력psql, 중단된 시스템 호출이 예상대로 재개되지 않기 때문입니다.

  • 일부 중첩의 잘못된 실행 수정\if구성pgbench(미하일 니콜라예프)§

    \iffalse(실행되지 않음) 내에 나타나는 명령\if분기가 다음과 동일하게 잘못 처리되었습니다.\elif.

  • pgbench, 테이블 초기화 중 진행 메시지가 잘못 표시될 수 있는 문제 수정(오기와라 유시, 이시이 타츠오, 후지이 마사오)§ §

  • 만들다pg_controldata손상에 대해 더욱 강력함pg_control파일 (Ilyasov Ian, Anton Voloshin)§

    이후pg_controldata다음 내용을 인쇄하려고 시도합니다pg_controlCRC 검사가 실패하더라도 유효하지 않은 필드 값으로 인해 오작동하지 않도록 주의해야 합니다. 이 패치는 유효하지 않은 타임스탬프와 음수로 보이는 WAL 세그먼트 크기로 인해 발생하는 일부 문제를 수정합니다.

  • 충돌 가능성 수정pg_dump확장 멤버인 테이블에 ID 시퀀스가 첨부됨(Tom Lane)§

  • 수정pg_basebackup올바르게 처리하려면pg_wal.tarWindows에서 2GB를 초과하는 파일(Davinder Singh, Thomas Munro)§ §

  • ARM CRC 명령어에 액세스하는 데 필요한 컴파일러 스위치를 결정하는 구성 프로브 업데이트(Tom Lane)§

    기본 CPU 대상에 CRC 지침이 없는 ARM 플랫폼에서는 다음을 제공해야 합니다.-3월컴파일러가 이러한 명령어를 컴파일하도록 설득배트맨 토토 스위치입니다. 최신 버전의 gcc는 우리가 시도한 가치를 거부하여 자동으로 소프트웨어 CRC로 되돌아갑니다.

  • 구성, C23 컴파일러가 감지되면 C17(Thomas Munro)을 요청해 보세요§

    PostgreSQLv16 이전 버전은 C23 규칙에 따라 컴파일되지 않습니다. 선택한 컴파일러의 기본값이 C23 이상인 경우 다음을 추가해 보세요.-std=gnu17변경하려면 전환하세요. (이것이 컴파일러에서 작동하지 않으면 수동으로 지정하십시오.CFLAGS적절한 스위치가 있습니다.)

  • 다음으로 시간대 데이터 파일 업데이트tzdata파라과이의 DST 법률 변경 사항과 필리핀의 역사적 수정 사항에 대한 2025a 릴리스(Tom Lane)§

수정사항 제출

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