Skip to content

Release v0.3.2

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Jun 18:43
v0.3.2
4e05bff

This release makes binary-only changes. Once installed, any existing use of pg_clickhouse v0.3 will get its benefits on reload without needing to ALTER EXTENSION UPDATE.

⚡ Improvements

  • Added a compression server option for the binary driver to enable ClickHouse native protocol compression of query results and INSERT data. Accepts none, lz4, or zstd, and defaults to lz4 (#268).
  • Added a secure server option giving explicit control over TLS for both the binary and HTTP drivers, rather than inferring it from the host name and port. Accepts on (force TLS), off (force plaintext), or auto (the previous cloud-host/port heuristic, still the default). Thanks to Andrey Borodin for the PR (#272).
  • Added a min_tls_version server option to set the minimum TLS protocol version negotiated by both drivers. Accepts TLSv1, TLSv1.1, TLSv1.2, or TLSv1.3, and defaults to the TLS library's own minimum (#272).
  • Added mapping for regexp_match() to pushdown to extractGroups(), or arraySlice(extractAll(text, pattern), 1, 1) if the regex contains no capturing groups (#270).

🚀 Distribution

  • Added support for PostgreSQL 19beta1 (#269).

🐞 Bug Fixes

  • Fixed incorrect translation of regular expression flags introduced in v0.2.0 to more accurately match the Postgres behavior when executing in ClickHouse. We no longer automatically push down -s, because it is enabled by default in both Postgres and ClickHouse. But the Postgres flags s and m cancel each other out, so we only set s if there is no m and if there is an m we set (?m-s).
  • Changed the pushdown of the p regular expression fag as -s instead of s to more accurately match the Postgres behavior (#271).
  • Eliminated push down of regular expression functions when the regular expression argument is not a constant (#270).
  • Fixed a memory leak in the http driver when not using streaming (#281).
  • Fixed a memory leak when a foreign scan repeatedly re-scans, typically a nested-loop join with a parameterized inner foreign scan (#282).
  • Changed the deparsing of ANY() with an empty array (WHERE x = ANY('{}')) to a has() function rather than an IN() expression. This fixes errors on versions prior to ClickHouse 25, where IN() with no list returns an error (#285)

🏗️ Build Setup

  • Replaced code formatting, previously performed by pg_bsd_indent, with clang-format using a modified "Mozilla style" with an emphasis on legibility and safety (#283).

🆚 For more detail compare changes since v0.3.1.