Lukas Fittl:为 Postgres 16 推出 pg_query - 解析 SQL/JSON、支持 Windows、PL/pgSQL 解析模式及更多功能

Lukas Fittl:为 Postgres 16 推出 pg_query - 解析 SQL/JSON、支持 Windows、PL/pgSQL 解析模式及更多功能

💡 原文英文,约1900词,阅读约需7分钟。
📝

内容提要

pg_query发布了一个基于Postgres 16解析器的新版本,其中包括支持在Windows上运行和解析新的Postgres语法。该库可以解析SQL查询并返回Postgres解析树。它还引入了查询指纹以将查询分组在一起,并支持反解析以将查询升级到Postgres 16 SQL/JSON语法。新版本还包括对解析PL/pgSQL表达式的支持。社区在pg_query的发展中发挥了重要作用,团队正在考虑将pg_query的部分功能上游合并为Postgres的核心部分。

🎯

关键要点

  • pg_query发布了基于Postgres 16解析器的新版本,支持在Windows上运行和解析新的Postgres语法。

  • 该库可以解析SQL查询并返回Postgres解析树,支持反解析以将查询升级到Postgres 16 SQL/JSON语法。

  • 新版本引入了查询指纹功能,以将查询分组在一起,并支持解析PL/pgSQL表达式。

  • pg_query的核心功能是提供Postgres的“raw_parser”函数,支持完整的Postgres语法。

  • 新版本增加了对Windows的支持,允许使用MSVC或MSYS2堆栈编译libpg_query。

  • pg_query使用查询指纹来识别跨服务器的查询,避免了Postgres原有queryid的局限性。

  • pg_query支持将查询升级到Postgres 16的SQL/JSON语法,允许将旧语法转换为新语法。

  • 新版本支持PL/pgSQL表达式的解析,允许直接解析PL/pgSQL特定语法。

  • pg_query的发展离不开社区的支持,团队希望将部分功能合并到Postgres核心部分。

  • 用户可以通过pg_query优化Postgres查询性能,并可以在GitHub上提出改进建议。

➡️

继续阅读