v1.8.0rc3
Pre-releaseclickhouse-connect v1.8.0rc3
This is the third release candidate for clickhouse-connect 1.8.0. Please test it with your workloads and report any problems.
RC3 brings the Rust release branch up to date with work merged after 1.7.2 and adds further Python/Rust codec parity fixes. The Rust codec remains experimental and opt-in. The Python codec remains
the default. The compiled clickhouse-connect-core wheel is unchanged from RC2 at version 0.1.0.
Installation
Install RC3 with the optional Rust codec:
pip install "clickhouse-connect[rust]==1.8.0rc3"Or install RC3 with the standard Python codec only:
pip install "clickhouse-connect==1.8.0rc3"Enable the Rust codec when creating a client:
client = clickhouse_connect.get_client(
host="...",
native_codec="rust",
)Use native_codec="rust_strict" to reject unsupported Rust paths instead of falling back to Python.
What's Changed Since v1.8.0rc2
Rust codec and temporal types
-
Rust NumPy and Pandas queries now support Time64(0) with second resolution, including nullable, container, Nested, Variant, and typed JSON paths.
-
Unsupported statically declared Time64 scales now raise the same
ProgrammingErrorunder the Rust and Python codecs instead of leaking aKeyError. -
Time64 now accepts every server-valid precision from 0 through 9 for parsing, reflection, Native queries, and DataFrame inserts. NumPy and Pandas query output remains limited to scales 0, 3, 6, and 9.
-
Negative Time64 timedelta inserts and NumPy timedelta magnitudes are now stored correctly. Out-of-range NumPy values are rejected instead of wrapping.
-
Pandas Timedelta row inserts now follow normal timedelta conversion. Nullable DataFrame columns insert missing values as NULL on Pandas 3.
-
Dynamic(Time64) retains documented experimental limitations because Dynamic member metadata is erased before driver conversion.
JSON and driver type handling
- SQLAlchemy JSON columns can declare typed paths, dynamic path and type limits, and plain or regular-expression skip rules. Alembic autogeneration preserves configured JSON types. Closes #981.
- Dynamic type names preserve their max_types argument.
- Generic Enum definitions are accepted and canonicalized to Enum8 or Enum16 according to their value range.
- Type parsing now handles double-quoted identifiers and quoted string literals consistently.
Native format and connectivity fixes
- Source builds no longer swallow unrelated packaging failures and retry them as pure Python builds.
CLICKHOUSE_CONNECT_REQUIRE_C=1makes extension build failures fatal for CI and redistributable wheels.CLICKHOUSE_CONNECT_SKIP_CYTHON=1continues to request an explicit pure-Python build.- Missing Cython outside skip mode now fails clearly, and setting both build flags is rejected. Closes #994.
Please report RC problems at:
https://github.com/ClickHouse/clickhouse-connect/issues