Skip to content

v26.7.0

Latest

Choose a tag to compare

@wudidapaopao wudidapaopao released this 12 Aug 19:34
· 3 commits to main since this release
dc8b8de

What's Changed

⬆️ ClickHouse upgrade

  • Sync chdb-core to ClickHouse upstream v26.7.2.59-stable (from v26.5.1.882-stable) by @wudidapaopao in #165

🚀 New features

  • WebAssembly (wasm64) build of chDB — run the full engine in the browser by @wudidapaopao in #77
  • WebAssembly UDF runtime + tests by @ShawnChen-Sirius in #94; live query progress / peak-memory / cancellation for WASM by @wudidapaopao in #100; DataLakeCatalog + Iceberg queries in WASM by @wudidapaopao in #106
  • Streaming INSERT interface (C + Python API) by @wudidapaopao in #98, with parameterized streaming INSERT and idempotent fetch-after-EOF in #127
  • ADBC driver — export chdb_adbc_init from libchdb by @ShawnChen-Sirius in #132 (marked experimental + conformance-tested in #145, #160)
  • Arrow PyCapsule interface (__arrow_c_stream__) for query results and Python() table input by @wudidapaopao in #149
  • MySQL, MongoDB and HNSW vector-similarity index enabled on all platforms by @ShawnChen-Sirius in #84
  • C API: expose INSERT write progress (written_rows / written_bytes) by @ShawnChen-Sirius in #89
  • Expose the chDB version as a compile-time constant in chdb.h by @wudidapaopao in #157
  • Opt-in error-string stack traces via --stacktrace by @wudidapaopao in #151
  • Support bytes / bytearray / memoryview values in Python UDFs by @wudidapaopao in #162
  • chdb-cloudflare — a chDB bundle for Cloudflare Workers by @wudidapaopao in #147
  • Split chdb.wasm into a hot primary and a lazily-loaded deferred module by @wudidapaopao in #121

⚡ Performance

  • Faster Pandas DataFrame scans — session metadata cache, zero-copy buffer mounts, and jemalloc background threads by @wudidapaopao in #174
  • Zero-copy Arrow string scan + GIL/NUL correctness fixes by @wudidapaopao in #87
  • Faster scan/read path — non-null inference, PREWHERE, top-N late materialization, Arrow string predicate, anchored replaceRegexp by @wudidapaopao in #95
  • Python UDF: cut per-row overhead and free-threaded GC pressure in the scalar call loop by @wudidapaopao in #142

🐞 Fixes

  • Make concurrent queries on one connection reliable (token-paired Python() name bindings) by @wudidapaopao in #175
  • Destroy EmbeddedServer in the atexit hook when a connection is left open (fixes a teardown SIGSEGV) by @wudidapaopao in #178
  • Fix DROP ... SYNC in fresh persistent sessions by @dannanors in #173
  • Fix a handled_signals data race and a leaked connection cell by @wudidapaopao in #172
  • Avoid a leak in connect_chdb_with_exception on allocation failure by @serprex in #166; contain exceptions inside dl_iterate_phdr callbacks by @serprex in #167
  • Fix named-collection shutdown by @ShawnChen-Sirius in #83 and readonly-mode bypass via named-collection DDL in #120
  • Fix BACKUP/RESTORE to S3 in embedded mode by @ShawnChen-Sirius in #134
  • Keep trailing NUL bytes when binding fixed_size_binary by @ShawnChen-Sirius in #161
  • Python(df): fail per-column on pandas ArrowDtype instead of misreading buffers by @wudidapaopao in #140; fix on_null="skip" invoking UDFs on NULL rows in #112
  • Make pyarrow optional at import time so plain queries work without it by @wudidapaopao in #118
  • Apply query-level SETTINGS to streaming query output by @wudidapaopao in #144; surface the real error from the streaming INSERT init handshake in #129
  • Fix SELECT chdb() returning "None" in libchdb.so by @wudidapaopao in #154
  • Fix the free-threaded cold-start UDF deadlock by @wudidapaopao in #141
  • Give macOS libchdb.so a relocatable install name (@rpath) by @wudidapaopao in #108; hide libcxx std::__1 symbols from the pybind11 shim dylibs in #93
  • Run scalar subqueries synchronously on the single-threaded WASM build by @andrey-framer in #101

📦 Packaging & CI

  • Ship a single full-featured wasm bundle (drop CHDB_LITE) by @alxhill in #164
  • Fix the silently-missing linux-x86_64 debug-symbols release asset (2 GiB limit) by @wudidapaopao in #104
  • Document the five chdb-core distribution artifacts in the README by @wudidapaopao in #155; fix stale single-connection claims in the connect() docstring by @ShawnChen-Sirius in #130; add a C usage example for chdb_query_with_params in #110
  • Temporarily disable PyPI publishing of chdb-core-lite (#102) and free-threading wheels (#124); disable chdb-wasm distribution on tags (#103) by @wudidapaopao
  • Regression coverage for Python(df) string columns with NULLs (#138) and byte-exact non-ASCII strings (#139) by @wudidapaopao
  • CI fixes by @serprex in #168; drop the v26.5 datastore compat shim / fix the wheel release trigger by @ShawnChen-Sirius in #86; remove the split-bundle test flow from wasm CI by @wudidapaopao in #176

New Contributors

Full Changelog: v26.5.0...v26.7.0