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 support for parameterized execution, including
PREPAREandEXECUTE, by converting PostgreSQL$1-style parameters to ClickHouse{param:type}-style parameters. - Added support for inserting arrays to the http engine.
📚 Documentation
- Documented
IMPORT FOREIGN SCHEMAidentifier case preservation behavior. - Fixed the Postgres Docker start and connect info in the tutorial.
- Added complete DML documentation to the reference docs, including the new
PREPARE/EXECUTEsupport andINSERT,SET,COPY, as well as shared library preloading.
🪲 Bug Fixes
- Fixed the http engine's parsing of UUID arrays selected from ClickHouse.
- Fixed the binary engine's conversion of Date values, which in arrays ended up too large by several orders of magnitude (e.g.,
2025-12-05would be converted to10529827-09-17😱). Thanks to Tom Lane for the pointer to the proper function to easily convert epoch seconds to a date. - Fixed a binary engine bug where dates and timestamps for epoch 0 (
1970-01-01 00:00:00) rendered asNULL. - Added support for the
Date32ClickHouse type. - Fixed conversion of
array_agg()to support ClickHouse versions prior to 23.8. - Fixed the precision of fractional seconds in the binary engine's conversion of ClickHouse
DateTime64values to PostgresTIMESTAMP(#114).
📔 Notes
- Removed unused code designed to support custom PostgreSQL extensions: ajbool, ajtime, country, and istore.
- Tweaked cost estimation to encourage pushdown of
min()andmax().
📚 Documentation
- Added a note to the
IMPORT FOREIGN SCHEMAdocumentation explaining how table and column names imported from ClickHouse will have their letter casing and blank spaces preserved if they have uppercase characters or blank spaces. - Fixed the commands to start and connect to the pg_clickhouse Docker image in the tutorial.
- Documented the Postgres aggregate functions known (via new tests) to push down to ClickHouse.
🆚 For more detail compare changes since v0.1.1.