Changelog

All notable changes to this project will be documented in this file. It uses the Keep a Changelog format, and this project adheres to Semantic Versioning.

v0.1.2 β€” 2026-09-30

This release makes binary-only changes. Once installed and loaded, any existing use of chdb and chdb_hook v0.1 will get the v0.1.2 benefits without needing to ALTER EXTENSION UPDATE.

⚑ Improvements

  • Added mappings for additional chDB data types:
    • The Interval family maps to Postgres interval or bigint
    • A Map maps to a two-dimensional array of key/value pairs or a custom two-field composite type
    • A Tuple maps to an array of its values or composite type
    • An unflattened Nested column maps to a two-dimensional array or composite type array
    • All LowCardinality types now map to their Postgres equivalents, not just LowCardinality(String)
    • Parameterized JSON (JSON(...)) now maps to jsonb or json
  • Added the encoding_check option to COPY. Valid values are fail, replace, remove, and truncate. See the [COPY docs] for details (#96).
  • Linking to libchdb v26.9.0 fixes the CVS format with NULL geometric types.

🐞 Bug Fixes

  • Reject COPY FROM a URL with a WHERE clause, preventing imports from silently ignoring row filters (#86).
  • Fix CREATE TABLE inference to use text[] for Tuple and text[][] for Map and Nested instead of text. Reuse source types from DESCRIBE when loading rows, keeping Nested fields in one column (#89).
  • The install target no longer installs libchdb.a when using LIBCHDB_BUILD=static. Since we statically link it, we do not need to install it.

πŸ—οΈ Build Setup

  • Added the NO_FILE_SCHEME option to make. When set, chd_hook will be built without support for the file:// scheme, which may be useful for Postgres hosting providers (#85).
  • The install target no longer installs libchdb.a when using LIBCHDB_BUILD=static. Since we statically link it, we do not need to install it (#87).
  • Added the MAX_CONCURRENT_TESTS variable to minimize the number of concurrent tests in resource-constrained environments, such as CI runners (#91).
  • Added macOS testing to the CI workflow and adopted the PGXN actions for the CI and release workflows.

⬆️ Dependencies

  • Added testing for chDB v26.7.3 and v26.9.0.
  • Updated to support PostgreSQL 19 beta 4.

πŸ“š Documentation

COPY docs β€œchdb_hook docs: COPY Overloading”

v0.1.1 β€” 2026-09-06

This release makes binary-only changes. Once installed and loaded, any existing use of chdb and chdb_hook v0.1 will get the v0.1.1 benefits without needing to ALTER EXTENSION UPDATE.

⚑ Improvements

  • Support mapping BFloat16 to real, and Interval types to interval. Interval types also map to bigint transparently (#76, #92).
  • Added PostgreSQL 15 support.
  • Map UInt64, Int128, Int256, UInt128, and UInt256 to Postgres numeric, so values above the bigint range no longer raise an error. A derived column carries the precision spanning its chDB type (#78).

🐞 Bug Fixes

  • DateTime64 or Time64 now defaults to millisecond precision (#76).
  • Reading a ClickHouse string into a text column validates its bytes against database encoding, raising an error instead of returning unreadable text. Use bytea to preserve raw bytes (#80).
  • Added the date_time_output_format='iso' setting to each chDB query to always format timestamp and timestamptz values in plain text formats with the ISO-8601 format in UTC, converting timestamp values from the current timezone setting.

πŸ’…πŸ» Quality

  • Added comprehensive tests for timestamp and timestamptz COPY output and round-tripping, including the impact of the timezone setting on timestamp values.

πŸ“š Documentation

  • Added the β€œTimestamp Conversion” section to the chdb_hook docs to document the ISO-8601 format of plain text exports of timestamp and timestamptz values, as well as the impact of the timezone setting on exported and imported values.
  • Added a benchmark and documented its results in the README.

v0.1.0 β€” 2026-08-25

The theme of this release is Shakedown.

⚑ Improvements

  • New extension, everything fresh!
  • Relies on a helper app, chdb_helper, to encapsulate all interaction with chDB
  • chdb extension provides chdb_query() to execute a single, stateless query.
  • chdb_hooks module hooks into the COPY command to copy data from a remote URL in any of the formats supported by chDB
  • chdb_hooks also hooks into the CREATE TABLE command to copy and or define the column structure for the table from a remote URL in any of the formats supported by chDB
  • The COPY and CREATE TABLE hooks support a variety of URL schemes, including:
  • Data type mapping provided by the pg-clickhouse-c header-only library

πŸ—οΈ Build Setup

  • Requires chDB v26.7.0
  • PGXS build pipeline
  • PGXN and GitHub release workflows
  • Limited to macOS and Linux (only platforms supported by chDB)
  • Dynamic linking to chDB by default
  • Statically link chDB with LIBCHDB_BUILD=static
  • Automatically download chDB with BUNDLE_LIBCHDB=1

πŸ“š Documentation