github ClickHouse/pg_clickhouse v0.1.10
Release v0.1.10

5 hours ago

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

⚡ Improvements

  • Added mapping for the JSON and JSONB -> TEXT and ->> TEXT operators to be passed down to ClickHouse using its sub-column syntax. Thanks Kaushik Iska for the PR (#169).
  • Added pushdown support for jsonb_extract_path_text() and jsonb_extract_path() to ClickHouse sub-column syntax. Thanks Kaushik Iska for the PR (#176).
  • Added mapping to push down now() to now64 rather than [now], as previously, because PostgreSQL's now() produces sub-second precision, so should its clickHouse equivalent.
  • Added mappings to push down the Postgres statement_timestamp(), transaction_timestamp(), and clock_timestamp() functions to to nowInBlock64 (requires ClickHouse 25.8 or higher).
  • Pushdown window functions (ROW_NUMBER, RANK, DENSE_RANK, LEAD, LAG, FIRST_VALUE, LAST_VALUE, NTH_VALUE, NTILE, CUME_DIST, PERCENT_RANK, MIN/MAX OVER) to ClickHouse instead of computing them locally. Thanks Kaushik Iska for the PR (#175).
  • Pushdown bool_and/every as groupBitAnd, bool_or as groupBitOr, and string_agg as groupConcat to ClickHouse. Thanks Philip Dubé for the PR (#184).
  • Added mapping sot push down the Postgres "SQL Value Functions", including CURRENT_TIMESTAMP, CURRENT_USER, and CURRENT_DATABASE.
  • Changed the behavior of CURRENT_DATABASE() to push down the name of the current Postgres database rather than to the ClickHouse current_database() function.
  • Added result set streaming to the HTTP driver. The new fetch_size server and table option specifies the size of each batch to stream and defaults to 50000000, about 50MB. Set it to 0 to disable streaming altogether. A testing loading a 1GB table reduced memory consumption from over 1GB to 73MB peak. Thanks Kaushik Iska for the testing and PR (#181).

🐛 Bug Fixes

  • Improved memory management, fixing potential crashes in out of memory situations. Thanks to Philip Dubé for the PRs (#173, #173).
  • Fixed issue where the -Merge suffix was not consistently appended to aggregates on AggregateFunction columns. Thanks to Philip Dubé for the PR (#179).
  • Fixed NTILE, CUME_DIST, and PERCENT_RANK pushdown failing because the FDW emitted a ROWS UNBOUNDED PRECEDING frame clause that ClickHouse rejects for ranking functions. Thanks Philip Dubé for the PR (#184).
  • regr_avgx, regr_avgy, regr_count, regr_intercept, regr_r2, regr_slope, regr_sxx, regr_sxy, regr_syy, json_agg_strict, and jsonb_agg_strict now evaluate locally instead of being pushed to ClickHouse where they would fail. Thanks Philip Dubé for the PR (#184).∑

📔 Notes

  • Eliminated use of a constant that required libcurl 7.87.0, restoring support for earlier versions.
  • Introduced clang-tidy and integrated it into make lint and for use in CI. Thanks to Philip Dubé for the PR (#177).

🆚 For more detail compare changes since v0.1.6.

Don't miss a new pg_clickhouse release

NewReleases is sending notifications on new releases.