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:SStimezones emitted by ClickHouse servers without an IANA tz database (in column types, theX-ClickHouse-Timezoneheader, andSELECT timezone()). Previously these raisedProgrammingErroron any column read, parameter bind, or client init that touched one. The exact±24:00:00boundary remains rejected because Python'sdatetime.timezonecannot represent it. Closes #702. - Async client: drain in-flight requests before closing the underlying aiohttp session. Sharing a single
AsyncClientacross concurrent coroutines previously raisedRuntimeError: Session is closed(and relatedConnection reset/QUERY_WITH_SAME_ID_IS_ALREADY_RUNNINGcascades) whenevermax_connection_agetriggered 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()clearsself._sessionso post-close calls fail withProgrammingErrorinstead of leaking aiohttp'sRuntimeError. Closes #744. - Async client:
ca_cert="certifi"shorthand now resolves tocertifi.where(), matching the sync client. Previously the async path passed the literal string tossl_context.load_verify_locations, producingFileNotFoundError. Closes #742. - SQLAlchemy: render
ILIKEandNOT ILIKEexpressions using native ClickHouse syntax instead of the generic SQLAlchemylower(...) LIKE lower(...)fallback.