DeepSeek总结的pg_clickhouse v0.3.0的新特性
来源https://justatheory.com/2026/05/pg_clickhouse-0.3.0/pg_clickhouse 的新特性日期: 2026年5月11日关于 pg_clickhouse 项目的新闻汇总。新特性首先几周前 ClickHouse 博客发表了《pg_clickhouse 的新特性》一文其中我介绍了该扩展的多项改进我们很高兴社区对 pg_clickhouse用于从 Postgres 查询 ClickHouse 数据库的扩展的反响。最近的采用产生了大量反馈我们在过去的几个版本中一直努力处理这些反馈。这些更改遵循我们为 pg_clickhouse 不断重复的口号下推、下推、再下推让我们快速浏览一下。它包括针对 JSONB 访问器、CURRENT_TIMESTAMP等 SQL 值函数、array_cat()和array_to_string()等数组函数的工作下推示例。它还通过演示 HTTP 结果集流式传输并使用漂亮的条形图展示前后对比剧透pg_clickhouse 的 HTTP 驱动程序变得更加节省内存。v0.3.0 版本但这还不是全部。今天我们发布了 pg_clickhouse 0.3.0。没有什么比客户问题更能推动改进了v0.3.0 版本包含一系列此类改进包括在二进制驱动程序中添加了 ClickHouseJSON类型到 PostgreSQLJSONB类型的映射HTTP 驱动程序此前已支持此映射。支持将 PostgresJSON类型映射到 ClickHouseJSON类型。通常JSONB更能匹配 ClickHouseJSON语义但我们希望支持这个明显的替代方案。将 Postgres 的to_char(timestamp[tz], fmt)函数下推到 ClickHouse 的formatDateTime()函数适用于映射到二进制兼容等效项的格式YYYY、MM、DD、DDD、HH24、HH12、HH、MI、SS、Q、Mon、Dy、AM/PM以及小写变体。支持下推来自新版re2扩展的函数该扩展在 Postgres 中提供了与 ClickHouse 兼容的、基于 RE2 的正则表达式函数。这可以避免 v0.2.0 版本帖子中提到的 Postgres POSIX 与 ClickHouse RE2 正则表达式之间的不匹配只需使用该扩展即可在 Postgres 中获得一致的行为或将其下推到 ClickHouse。pg_clickhouse 0.3.0 还增加了对下推fuzzystrmatch函数soundex()和levenshtein()的支持并记录了现有对intarray的idx函数的下推支持。记录了CREATE FOREIGN TABLE的column_name选项以允许 Postgres 列拥有与 ClickHouse 列不同的名称。还修复了它与二进制驱动程序的集成。添加了一个升级脚本以从public角色移除clickhouse_raw_query()的EXECUTION权限解决了一个 SSRF 漏洞。此更改需要增加主版本号并且需要执行ALTEREXTENSION pg_clickhouseUPDATETO0.3;修复了几个 HTTP 驱动程序 TSV 解析错误、一个使用窗口函数时EXPLAIN (VERBOSE)的错误并将length(text)和strpos(text, text)切换到作为lengthUTF8和positionUTF8下推。移除了从原始postgres_fdw分支继承的自动下推内置函数的行为。所有可以下推的内置函数现在都已显式映射。请从通常的位置获取新版本PGXNGitHubDocker现在包含了re2扩展再次感谢我的同事 Kaushik Iska 和 Philip Dubé 提供了大量的拉取请求以及 Andrey Borodin 报告的clickhouse_raw_query()漏洞。下一步计划pg_clickhouse 项目提供了足够多的改进素材足以让我们忙碌好一阵子。但首先我将在下周出现在 PGConf.dev 会议上做一个题为《构建外部数据包装器》的演讲。可以将其视为建立在 Christoph Pettus 在 PGCon 2023 上的演讲《编写外部数据包装器》基础上深入探讨将执行下推到远程数据库的原因和方法。非常希望能在那里见到您。如果无法参加请关注本周晚些时候发布的配套博文。我们还计划撰写更多关于正则表达式不匹配问题的文章当然也会继续全面改进下推功能。我将在未来几周内在这里提供相关细节。