DeepSeek总结的pg_clickhouse v0.3.2 新特性:Postgres 19、TLS、正则表达式与内存

来源:https://clickhouse.com/blog/pg_clickhouse-whats-new-june-2026

pg_clickhouse v0.3.2 新特性:Postgres 19、TLS、正则表达式与内存

David Wheeler

2026年6月23日 · 4 分钟阅读

上周我们发布了 pg_clickhouse 的最新版本,这是用于从 Postgres 查询 ClickHouse 的接口。作为一个小版本更新,v0.3.2 无需重载、重启或执行 ALTER EXTENSION UPDATE,并且我们已经升级了所有 ClickHouse Cloud 实例。你下次连接到数据库时将会加载最新的版本。

尽管是小版本号递增,此版本在四个关键领域显著改进了 pg_clickhouse:Postgres 19、TLS 连接、正则表达式下推和内存消耗。

Postgres 19

最重要的变化是什么?支持 PostgreSQL 19 Beta1。新的 Postgres 版本需要对 pg_clickhouse 源代码进行相对较小的修改,以利用元组和数组优化、移除旧的 typedef、添加新的头文件以及调整一些测试输出。这样一来,我们将为今年秋季 Postgres 的最终发布做好准备,并在第一天就在 Managed Postgres for ClickHouse 上提供支持。

TLS 连接

pg_clickhouse 自首次发布以来就支持 TLS 连接,但 v0.3.2 引入了几个新的 CREATE SERVER 选项:

  • secure 指定连接的安全要求:on(强制 TLS)、off(强制明文)或 auto(基于云托管/端口启发式判断,默认值)。感谢 Andrey Borodin 启发了这个拉取请求。
  • min_tls_version 指定最低 TLS 协议版本:TLSv1TLSv1.1TLSv1.2TLSv1.3。默认使用 TLS 库自身的最低版本。

正则表达式

对正则表达式标志不同行为的更深入探索,暴露了我们下推逻辑中的错误,现已修复。Postgres 标志现在按如下方式下推到 ClickHouse:

标志 下推为 说明
i i 不区分大小写匹配
m m-s ^$ 除了匹配文本开头/结尾外,还匹配行开头/结尾
n m-s Postgres 中 m 的别名
p -s 不让 .[^x] 匹配 \n
s s .[^x] 匹配 \n
t 严格语法,被忽略
w m 反向的部分新行敏感匹配

文档还注明了 mp 行为上的差异:Postgres 阻止否定字符类([^xyz])匹配换行符,而 ClickHouse 的对应实现则不会。请务必仔细测试使用了字符类的正则表达式。

内存消耗

一些客户查询暴露了内存消耗方面的问题。

其中一个问题是由使用 HTTP 驱动程序的未缓冲查询触发的。自 v0.1.10 以来,这种配置已不被推荐且不是默认配置,因此应该相当罕见。

另一个问题出现在外部扫描重复重新扫描时,例如嵌套循环连接中带有参数化内部外部扫描的情况------这是一个相当典型的执行计划。如果你在查询外部表时发现内存膨胀,请务必升级。

更多内容

其他值得一提的更改:

  • CREATE SERVER 添加了 compression 选项,以启用 ClickHouse 原生协议压缩,用于查询结果和 INSERT 数据
  • 添加了当 regexp_match() 的正则表达式参数不包含捕获组时的下推映射
  • 修复了在 ClickHouse 25 版本之前,ANY() 配合空数组(WHERE x = ANY('{}'))会产生错误的 bug

请从以下常用渠道下载:

  • PGXN
  • GitHub
  • Docker