Repository navigation
chdb-core v26.9.0
Full changelog: v26.7.3...v26.9.0 β 63 commits, 14 pull requests.
ClickHouse baseline: v26.7.2.1-stable β v26.9.2.8-stable.
The first chdb-core on the ClickHouse 26.9 line.
π New features
- Python user-defined aggregate functions (#236) β a UDAF is registered like a UDF and runs inside the engine, so a Python aggregate can be used in
GROUP BYwithout pulling rows out first. The remaining paths where a shadowed name failed silently now report it. - Query
pyarrow.RecordBatchandpyarrow.dataset.Dataset(#237) β both are accepted wherever a table is, alongside thepyarrow.Tablethat already was, with cancellation, scan errors, concurrency and nesting covered by tests. chdb_insert_arrow_array/chdb_insert_arrow_stream(#227) β name-mapped Arrow ingest through the C ABI. A caller hands over anArrowArrayor anArrowArrayStreamand the engine matches columns by name instead of by position.- Every query API raises
ChdbError(#204) β connection and sessionquery(), the statelessquery(), streaming fetch and cursor execute. Only the engine call is wrapped, not result conversion, and the engine's own traceback is dropped so the message is the error rather than the path it took. - System logs on the embedded engine (#223) β
system.query_logand its siblings exist in an embedded session. Thetext_logqueue is reset only when a previous owner shut it down.
π Bug fixes
- An
INSERTno longer reads the host process's stdin as data (#245, closes #239). A host that had a pipe on stdin got its own input swallowed into the table. - Nulls in pandas masked float columns are read from the validity mask (#234), not from the payload underneath it.
- Four defects an ASan+UBSan build surfaced (#232): a read one byte past the result buffer, a process that could not start the engine a second time, the insert-stream worker holding two thread statuses, and the built-in users XML being parsed once per query instead of once per process.
β‘ Performance
- chdb's local settings overrides are shared by both entry points, adjusted defaults no longer masquerade as user choices, and statistics materialization is deferred to merges in chdb sessions (#250).
FiberLocaltakes the portable TLS path it already offers.
π ClickHouse baseline
- Synced to
v26.9.2.8-stable(#246). The two thread pools 26.9 gaveLocalServeralone are initialized on the embedded path, and the pool that initializes itself is left alone.
π WASM
- The browser bundle ships the workers ParquetV3 needs.
- Iceberg manifests are decoded in place where there are no threads.
- The UDF probe recognises a build with no engine at all.
- The lite size gate is at 15 MiB, deliberately and temporarily.
π§ CI / docs
- A ClickHouse baseline sync skill (#244, #248) and concise shared agent guidance (#235).
bindings.mdrewritten for the current C ABI (#233).- MinIO comes from the image, since there is nowhere left to download it from.
Assets
Four abi3 wheels (macOS x86_64 / arm64, manylinux x86_64 / aarch64), libchdb.so and libchdb.a per platform with chdb.h and chdb.hpp, debug symbols, and SHA256SUMS.