Postg토토 꽁 머니SQL 주간 뉴스 - 2022년 1월 2일

게시일2022-01-05작성자: PWN
PWN

Postg토토 꽁 머니SQL 주간 뉴스 - 2022년 1월 2일

Postg토토 꽁 머니SQL 제품 뉴스

Pgpool-II 4.2.7, 4.1.10, 4.0.17 및 3.7.22 연결 풀러 및 명령문 Postg토토 꽁 머니SQL용 복제 시스템,다시 으로 에드.

parquet_s3_fdw 0.2.1, S3의 쪽모이 세공 파일용 외부 데이터 래퍼,해제.

Database Lab 3.0, 대규모 Postg토토 꽁 머니SQL 데이터베이스를 빠르게 복제하여 구축할 수 있는 도구 비프로덕션 환경,해제.

sqlite_fdw 2.1.1해제.

다이나모DB FDW 1.1.0출시.

pg_query_토토 꽁 머니write 0.0.3, 특정 유형의 Postg토토 꽁 머니SQL 문을 위한 재작성기,해제.

InfluxDB fdw 1.1.1 출시됨 https://github.com/pgspider/influxdb_fdw

pgspider v2.0, Postg토토 꽁 머니SQL 외부 기반 분산 데이터용 클러스터 엔진 데이터 래퍼,해제.

pg_builder 2.0.0 Postg토토 꽁 머니SQL용 PHP 쿼리 빌더,해제.

JDBC FDW 0.1.0해제

griddb_fdw 2.1.1이 출시되었습니다. https://github.com/pgspider/griddb_fdw

1월의 Postg토토 꽁 머니SQL 작업

https://archives.postg토토 꽁 머니sql.org/pgsql-jobs/2022-01/

Postg토토 꽁 머니SQL 로컬

Nordic PGDay 2022는 핀란드 헬싱키의 힐튼 헬싱키에서 개최됩니다 2022년 3월 22일 스트랜드 호텔.여기

pgDay 파리 2022파리에서 개최됩니다. 2022년 3월 24일 프랑스.

FOSDEM PGDay 2022가 2022년 2월 5~6일 온라인으로 개최됩니다.https://fosdem.org/2022/

가상 글로벌 개발자 이벤트인 Citus Con이 2022년 4월 12~13일에 개최됩니다. TheCFP이제 열려있습니다.

뉴스의 Postg토토 꽁 머니SQL

플래닛 Postg토토 꽁 머니SQL:https://planet.postg토토 꽁 머니sql.org/

Postg토토 꽁 머니SQL 주간 뉴스는 David Fetter가 이번 주에 여러분에게 전해 드립니다.

뉴스 및 공지사항을 일요일 오후 3시(PST8PDT)까지 david@fetter.org로 제출하세요.

적용된 패치

피터 아이젠트라우트가 밀었습니다:

John Naylor가 푸시함:

  • utf-8 텍스트 검증을 위한 빠른 경로를 추가합니다. 이전 유효성 검사기는 한 바이트씩 비교하고 분기하는 기존 알고리즘 시간. 우리가 가지고 있는 바이트 수를 항상 정확히 알 수 있다는 점에서 유용합니다. 검증되었지만 그 정확성에는 비용이 듭니다. 입력 유효성 검사가 나타날 수 있습니다. COPY FROM 프로필과 COPY FROM에 대한 향후 개선 사항에서 눈에 띄게 나타납니다. 병렬성이나 더 빠른 라인 구문 분석은 입력에 더 많은 압력을 가할 것입니다. 검증. 따라서 ASCII 및 멀티바이트 utf-8 모두에 대해 빠른 경로를 추가하십시오. ASCII에 대해 한 번에 16바이트를 확인하는 비트 연산입니다. 실패하면 다음을 포함하여 일반적인 경우를 처리하기 위해 해당 바이트에 대한 "교대 기반" DFA 멀티바이트. 이러한 경로는 상대적으로 분기가 없으며 따라서 다음과 같은 공격에 대해 견고합니다. 모든 종류의 바이트 패턴. 이러한 알고리즘을 사용하면 utf-8 유효성 검사가 여러 가지로 이루어집니다. 플랫폼과 입력 바이트 분포에 따라 몇 배 더 빠릅니다. 는 pg_utf8_verifystr()의 이전 코딩은 짧은 문자열과 빠른 경로가 오류를 반환하는 경우. 검토, 성능 테스트 및 추가 해킹 작성자: Heikki Linakangas, Vladimir Sitnikov, Amit Khandekar, Thomas Munro 및 Greg Stark 토론:/message-id/CAFBsxsEV_SzH%2BOLyCiyon%3DiwggSyMh_eF6A3LU2tiWf3Cy2ZQg%40mail.gmail.com https://git.postg토토 꽁 머니sql.org/pg/commitdiff/911588a3f816d875261d8f7d89e2517978831cd5

톰 레인이 푸시됨:

  • psql에 \getenv 명령을 추가하세요. \getenv는 환경의 값을 가져옵니다. 변수를 psql 변수로 변환합니다. 이는 \setenv 명령의 반대입니다. 10여년 전에 추가된 내용입니다. 우리는 다음에 대한 강력한 사용 사례를 본 적이 없습니다. 당시에는 \getenv이지만 향후 회귀 테스트 리팩토링에서는 지금 추가할 이유가 충분합니다. 토론:https://postgr.es/m/1655733.1639871614@sss.pgh.pa.us https://git.postg토토 꽁 머니sql.org/pg/commitdiff/33d3eeadb21d2268104840cfef6bc2226ddfc680

  • 회귀 테스트 스크립트의 동적 번역 제거, 1단계. pg_regress에는 오랫동안 경로 이름을 회귀로 동적으로 대체하는 규정이 있었습니다. 테스트 스크립트와 결과 파일을 사용했지만 해당 기능을 사용하는 것은 항상 결과 파일을 업데이트하려면 목에 심각한 통증이 발생합니다. 지루한 수동 편집. 다음으로 넘어가기 위해 이를 제거하자. 환경 변수의 경로. 유지 관리가 더 쉬울 뿐만 아니라, way는 런타임 시 이스케이프가 필요한 경로 이름을 처리할 수 있습니다. 예를 들어 작은따옴표가 포함된 경로입니다. (다른 걸림돌이 있습니다 실제로 그렇게 보이는 길을 건설하는 데 방해가 되지만 이것을 제거하는 것이 좋은 일인 것 같습니다.) 키 코딩 규칙은 이를 가능하게 하는 것은 동적 변수 문자열의 조각을 연결하는 것입니다. psql의 \set 명령을 사용한 다음 :'variable' 표기법을 사용하여 인용하고 다음 수준의 해석을 위해 문자열을 이스케이프 처리하세요. 만들어지길 바라는 마음으로 이 변경 사항은 "git 비난"에 더 투명하기 때문에 두 단계로 나눴습니다. 이 커밋은 필요한 pg_regress.c 지원을 추가하고 모든 내용을 변경합니다.*.source파일이 제자리에 있으므로 더 이상 동적이 필요하지 않습니다. 번역. 다음 커밋에서는 일반 sql/에 "git mv"를 적용합니다. 및 예상/디렉토리. 토론:https://postgr.es/m/1655733.1639871614@sss.pgh.pa.us https://git.postg토토 꽁 머니sql.org/pg/commitdiff/d1029bb5a26cb84b116b0dee4dde312291359f2a

  • 회귀 테스트 스크립트의 동적 번역 제거, 2단계. "git mv" all 입력/.소스 및 출력/.source 파일을 해당 sql/ 및 예상/디렉토리. 그런 다음 pg_regress 및 Makefile 인프라를 제거합니다. 동적 번역과 관련이 있습니다. 토론:https://postgr.es/m/1655733.1639871614@sss.pgh.pa.us https://git.postg토토 꽁 머니sql.org/pg/commitdiff/dc9c3b0ff21465fa89d71eecf5e6cc956d647eca

  • dblink의 경로 테스트 스크립트를 기본 테스트에 병합합니다. 더 이상 없습니다 이러한 함수를 생성하기 위해 별도의 psql 실행을 실행해야 하는 이유입니다. (일부 주요 회귀 테스트에서 리팩토링도 필요하지만 그렇게 되면 좀 더 생각해 보세요.) 토론:https://postgr.es/m/1655733.1639871614@sss.pgh.pa.us https://git.postg토토 꽁 머니sql.org/pg/commitdiff/0e6e7f0806b2080cb31f33ff992ec2e4e35fa6f1

  • 누락된 EmitWarningsOnPlaceholders() 호출을 추가합니다. 무엇이든 정의하는 확장 사용자 정의 GUC는 그렇게 한 후 EmitWarningsOnPlaceholders를 호출해야 합니다. 틀린 철자를 잡아라. 많은 contrib 모듈이 메모를 받지 못했습니다. 그래도. 또한 다음과 같은 src/test/modules 확장에 대한 호출을 추가하세요. GUC. 실제로 사용자를 대상으로 하는 것은 아니지만 좋은 점을 설명해야 합니다. 연습은 잘못된 연습이 아니다. 카토 신야 토론:https://postgr.es/m/524fa2c0a34f34b68fbfa90d0760d515@oss.nttdata.com https://git.postg토토 꽁 머니sql.org/pg/commitdiff/1fada5d81e6769ded832a4ca62ee9371bac3fb9f

  • psql의 \getenv에 대한 도움말 및 탭 완성 지원을 추가합니다. 나는 이것들을 잊어버렸다 33d3eeadb의 세부사항 :-(. Christoph Berg가 기록함. 토론:https://postgr.es/m/YcI8i/mduMi91uXY@msg.df7cb.de https://git.postg토토 꽁 머니sql.org/pg/commitdiff/0f2abd05441f524a67bc58ef5f0cc32054f7fb66

  • 확장 프로그램에 예약된 접두어가 있는 설정 처리를 다시 생각해보세요. 커밋 75d22069e 인식할 수 없는 설정을 시도하면 SET가 경고를 인쇄하도록 했습니다. 이전에 확장 프로그램에 의해 예약된 네임스페이스 내의 매개변수입니다. 것 같다 하지만 이는 완전한 오류인 것이 더 좋습니다. 인식할 수 없고 규정되지 않은 매개변수 이름을 설정하지 마세요. 어쨌든, 이전 구현은 비효율적이고 오류가 있었습니다. 체크인을 수행하세요 더 적절한 지점이고 접두사 일치 사례에 더 주의하세요. 토론:https://postgr.es/m/116024.1640111629@sss.pgh.pa.us https://git.postg토토 꽁 머니sql.org/pg/commitdiff/2ed8a8cc5b634d33ea07d681c6b02213da07f792

  • EmitWarningsOnPlaceholders()의 이름을 MarkGUCPrefixReserved()로 바꿉니다. 이 것 같다 지금 하는 일에 대한 더 명확한 이름처럼 말이죠. 호환성 매크로를 제공하여 확장 프로그램이 즉시 새 이름으로 변환될 필요는 없습니다. 토론:https://postgr.es/m/116024.1640111629@sss.pgh.pa.us https://git.postg토토 꽁 머니sql.org/pg/commitdiff/5609cc01c69b80f8788771dc6f5696a459469119

  • 자리표시자의 경고/오류에 대한 변경사항을 되돌립니다. 커밋 되돌리기 5609cc01c, 2ed8a8cc5 및 75d22069e를 사용하는 방법에 대한 아이디어가 덜 깨질 때까지 이는 병렬 작업자에서 작동해야 합니다. 빌드팜당. 논의:https://postgr.es/m/1640909.1640638123@sss.pgh.pa.us https://git.postg토토 꽁 머니sql.org/pg/commitdiff/cab5b9ab2c066ba904f13de2681872dcda31e207

  • pgarch의 새로운 디렉토리 검색 논리 문제를 수정했습니다. Arch_filenames[] 배열 요소가 1바이트 너무 작아서 파일 이름의 최대 길이가 그 이후에 다른 항목을 입력하면 손상될 수 있습니다. (토마스가 지적한 것 Munro, Nathan Bossart의 수정.) 이 배열을 palloc'd 구조체로 이동하십시오. 각 비 아카이버에서 몇 킬로바이트의 정적 데이터를 낭비하지 않는다는 것입니다. 프로세스. Binaryheap_reset() 호출을 추가하여 우리가 빈 힙으로 디렉터리 스캔 내 생각엔 라이브 버그가 없는 것 같아 일종의, 하지만 깨지기 쉬운 것 같고 이것은 매우 저렴한 보험입니다. 다음에 대한 정리 beb4e9ba1을 커밋하므로 백 패치가 필요하지 않습니다. 토론:https://postgr.es/m/CA+hUKGLHAjHuKuwtzsW7uMJF4BVPcQRL-UMZG_HM-g0y7yLkUg@mail.gmail.com https://git.postg토토 꽁 머니sql.org/pg/commitdiff/1fb17b1903414676bd371068739549cd2966fe87

  • pg_dump의 사소한 정리/최적화. 커밋 05649b88c 및 5209c0ba0, findComments() 및 findSecLabels()는 더 이상 "Archive를 사용하지 않습니다.*fout"인수이므로 제거하세요. 그러던 중에 나는 깨달았다. dumpCompositeTypeColComments()를 수행해야 하는 타당한 이유가 없습니다. 복합 유형의 열 이름을 가져오는 자체 쿼리 호출 함수가 방금 동일한 데이터를 가져왔습니다. 해당 쿼리를 사용하도록 조정하세요. 결과. 이것은 아마도 대부분의 사람들에게 많은 비용을 절약하지 못할 것입니다. 5209c0ba0 복합 유형이 다음 위치에 있지 않으면 이 코드에 전혀 들어가지 않습니다. 적어도 하나의 댓글. 그럼에도 불구하고 이는 낭비적인 쿼리입니다.https://git.postg토토 꽁 머니sql.org/pg/commitdiff/c7cf73eb7b9e7911748ebe117a7219f21e504121

  • pg_dump: make dumpPublication et al. 형제 기능과 덜 다릅니다. dumpPublication, dumpPublicationNamespace, dumpPublicationTable 및 dumpSubscription이 dataOnly를 확인하지 못했습니다. 이것은 단지 잠재된 버그일 뿐입니다. 왜냐하면 pg_backup_archiver.c는 나중에 ArchiveEntry를 필터링합니다. 하지만 그들은 데이터 전용 덤프에서 주기를 낭비하고 누락이 라이브 버그가 될 수 있음 언젠가. 어쨌든 일부 dumpFoo 함수가 이 작업을 수행하도록 하는 것은 좋지 않습니다. 일부는 그렇지 않습니다. 같은 이유로 dumpPublicationNamespace를 다음과 같이 만듭니다. 다른 모든 dumpFoo 함수와 동일한 패턴으로 DUMP_COMPONENT_DEFINITION 플래그입니다. (5209c0ba0 이후로 우리는 여기에 도달하지도 못했습니다. 해당 플래그가 설정되어 있지 않은 경우 현재 확인하는 것은 단지 임시적인 방법일 뿐입니다. 하지만 그것은 영원히 지속되지 않을 수도 있습니다.) 이는 단지 외관상의 목적 및/또는 미래 보장에 불과하므로, 백패치가 필요하지 않습니다.https://git.postg토토 꽁 머니sql.org/pg/commitdiff/5e65df64d631257ce60016bec0aca43f042b1d33

  • pg_dump: 하위 SELECT를 제거하여 성능이 약간 향상되었습니다. 제거하다 역할의 로컬 조회를 선호하는 "username_subquery" 메커니즘 역할 OID의 이름입니다. PG 백엔드는 스칼라에 대해 그다지 똑똑하지 않습니다. SELECT 출력 목록의 하위 링크이므로 약간의 성능을 제공합니다. 적어도 두 명 이상의 사용자가 있는 설치에서는 개선됩니다. 에서 어쨌든 이전 방법으로는 특히 읽기 쉬운 SQL 코드가 만들어지지 않았습니다. 동안 거기에서 나는 찾기 실패에 대한 다양한 사용자 정의 경고 메시지를 제거했습니다. 객체의 소유자, 로컬 조회 기능에서 치명적인 결과를 낳는 것을 선호합니다. AFAIK 더 이상 그것을 다른 것으로 취급할 이유가 없습니다. 카탈로그 손상 사건, 번역가가 처리하도록 할 이유가 전혀 없습니다. 한 사람이 할 수 있는 12개의 다른 메시지. (만약 그것이 치명적인 것으로 판명된다면() 정말 나쁜 생각입니다. pg_log_warning() 발행으로 물러나서 빈 문자열을 반환하여 이전과 동일한 동작을 수행합니다. 더 일관성이 있습니다.) 또한 확인하기 위해 완전히 불필요한 하위 SELECT를 삭제합니다. 시퀀스 관계의 pg_dependent 상태: 이미 LEFT JOIN이 있습니다. FROM 절에서 관심 있는 행을 가져옵니다. 토론:https://postgr.es/m/2460369.1640903318@sss.pgh.pa.us https://git.postg토토 꽁 머니sql.org/pg/commitdiff/d5e8930f50e31d836d84b353b9dadedd5007bb70

  • pg_dump: getPolicies()에서 안전하지 않은 함수 호출을 피하세요. getPolicies()에는 e3fcbbd62 커밋의 다른 위치에서 수정한 동일한 질병, 즉 호출 중이었습니다. 잠금이 필요하지 않은 테이블의 표현식에 대한 pg_get_expr() 에. 문제를 해결하려면 쿼리를 쿼리가 아닌 흥미로운 행만 수집하도록 제한하세요. 클라이언트 측에서 필터링을 수행합니다. 이전 패치와 마찬가지로 적용 대상은 다음과 같습니다. 지금은 HEAD만 사용하세요. 토론:https://postgr.es/m/2273648.1634764485@sss.pgh.pa.us토론:https://postgr.es/m/7d7eb6128f40401d81b3b7a898b6b4de@W2012-02.nidsa.loc https://git.postg토토 꽁 머니sql.org/pg/commitdiff/3e6e86abca0138abd7265306beb6346dc2d9e221

  • 모든 인덱스 열을 반환할 수 없는 경우 인덱스 전용 스캔 계획을 수정합니다. 만약 인덱스에는 반환 가능 열과 반환 불가능 열이 모두 있고 다음 중 하나가 있습니다. 반환 불가능 열은 반환 가능 열에 있는 Var를 사용하는 표현식입니다. 열인 경우 해당 표현식을 반환하는 쿼리로 인해 인덱스 전용이 발생할 수 있습니다. 대신 반환할 수 없는 열을 읽으려고 시도하는 스캔 계획 의도한 대로 반환 가능한 열에서 표현식을 다시 계산합니다. 고치려면, IndexOnlyScan 계획 노드의 "indextlist" 목록을 다음을 포함하도록 재정의합니다. 반환할 수 없는 열을 대신하는 null 상수입니다. 이는 다음과 같이 문제를 해결합니다. setrefs.c가 그러한 항목과 잘못 일치하는 것을 방지합니다. 집행자는 항목의 노출된 유형에만 관심이 있기 때문에 만족스럽습니다. ruleutils.c는 올바른 계획이 해당 항목을 참조하지 않기 때문에 신경 쓰지 않습니다. 나는 setrefs.c가 잘못된 일을 하는 것을 방지하기 위한 몇 가지 다른 방법을 고려했습니다. 하지만 이 방법은 (a) 매우 국지적인 수정을 허용하고, (b) 많은 경우 indextlist 구조가 더 컴팩트하며 (c) indextlist는 다음과 같습니다. 이제 AM 인덱스가 실제로 생성하는 내용을 보다 충실하게 표현합니다. 즉. 반환할 수 없는 열의 경우 null입니다. 이것은 우리가 공격하기 더 쉽습니다. 포함된 열을 도입했지만 실패한 예제를 구성하는 것이 가능합니다. 그것 없이는 추가된 회귀 테스트에 따라. 따라서 모든 항목에 백패치를 적용합니다. 지원되는 지점. Louis Jachiet의 버그 #17350당. 논의:https://postgr.es/m/17350-b5bdcf476e5badbb@postg토토 꽁 머니sql.org https://git.postg토토 꽁 머니sql.org/pg/commitdiff/4ace456776524839ef3279ab0bad8a2c9f6cc2a7

Amit Kapila가 푸시됨:

Michaël Paquier가 푸시됨:

브루스 몸지안이 밀었습니다:

후지 마사오가 밀었습니다:

토마스 먼로가 밀었습니다:

다니엘 구스타프손이 밀었습니다:

Álvaro Her토토 꽁 머니ra가 푸시됨:

And토토 꽁 머니s F토토 꽁 머니und가 밀었습니다:

Magnus Hagander가 밀었습니다: