github ClickHouse/clickhouse-connect v1.0.1

3 hours ago

clickhouse-connect 1.0.1

If you are upgrading from 0.15.x or earlier, see MIGRATION.md for the 1.0 breaking changes.

What's Changed

Bug Fixes

  • Recognize Fixed/UTC±HH:MM:SS timezones emitted by ClickHouse servers without an IANA tz database (in column types, the X-ClickHouse-Timezone header, and SELECT timezone()). Previously these raised ProgrammingError on any column read, parameter bind, or client init that touched one. The exact ±24:00:00 boundary remains rejected because Python's datetime.timezone cannot represent it. Closes #702.
  • Async client: drain in-flight requests before closing the underlying aiohttp session. Sharing a single AsyncClient across concurrent coroutines previously raised RuntimeError: Session is closed (and related Connection reset / QUERY_WITH_SAME_ID_IS_ALREADY_RUNNING cascades) whenever max_connection_age triggered a pool rotation while other tasks had requests in flight. close_connections() now installs the new session before retiring the old one, and waits for outstanding requests (including streaming responses) to release their lease before tearing it down. close() clears self._session so post-close calls fail with ProgrammingError instead of leaking aiohttp's RuntimeError. Closes #744.
  • Async client: ca_cert="certifi" shorthand now resolves to certifi.where(), matching the sync client. Previously the async path passed the literal string to ssl_context.load_verify_locations, producing FileNotFoundError. Closes #742.
  • SQLAlchemy: render ILIKE and NOT ILIKE expressions using native ClickHouse syntax instead of the generic SQLAlchemy lower(...) LIKE lower(...) fallback.

Don't miss a new clickhouse-connect release

NewReleases is sending notifications on new releases.