Skip to content

v26.7.3

Latest

Choose a tag to compare

@ShawnChen-Sirius ShawnChen-Sirius released this 10 Sep 21:19
7d84d71

chdb-core v26.7.3

Full changelog: v26.7.0...v26.7.3 — 113 commits, 21 pull requests.
ClickHouse baseline unchanged: v26.7.2.1-stable.

The first stable release carrying the Durable V1 C ABI, and the first chdb-core on PyPI that has it. A chdb.durable user needs nothing but pip install -U chdb-core — name chdb-core rather than chdb, because pip leaves a satisfied dependency alone and an installed 26.7.0 satisfies chdb's floor.

🚀 New features

  • Backup, restore and query classification in the C ABI (#202) — chdb_backup_database_n, chdb_restore_database_n and chdb_classify_query_n. A caller passes the database name and the archive path as separate arguments instead of assembling BACKUP DATABASE ... TO File(...) and quoting it itself, and can ask the parser what a statement does without executing it: its class, how many executable statements the text holds, whether it carries a credential, and whether every persistent write lands in one named database. The report is versioned by size, so a caller that sets struct_size gets a refusal rather than a write past the end of its struct. The same surface is exposed through _chdb.connect in the Python module.
  • chdb_shutdown() (#185) — stops the engine's thread pools. The transition is atomic against concurrent connects and against itself.
  • ADBC: read-only connections, statement cancellation and bounded reads (#230).
  • Python UDFs accept Optional[X] and X | None annotations (#205).

🐛 Bug fixes

  • Connecting no longer takes over the host process's deadly signal handlers (#224).
  • python -m chdb crashed with a NameError (#219).
  • Fixed a deadlock in the parallel Arrow output encoder's backpressure wait (#213).
  • An active streaming read is cancelled before a query on the same connection (#215), and cancelling an exhausted stream is a no-op, like fetching one (#180).
  • ADBC entrypoints are exported from Linux Python wheels (#189), and Arrow ADBC compatibility options propagate (#197).
  • Connection argv settings apply to the connection's own session (#196).
  • libchdb.a no longer exposes bundled libc++ / libc++abi / libunwind symbols (#199), and no longer overrides libc's posix_spawn (#218).
  • chdb.h ships world-readable in the libchdb release tarballs (#195).

⚡ Performance

  • Many-core scaling and DataFrame scan speed (#183).

🔧 CI / build / release

  • A release tag has to name the ClickHouse line the tree is synced to (#184).
  • Every release now carries a SHA256SUMS over its assets (#218).
  • PyPI publication is decided per release (#220, #229): a candidate never publishes, only a plain vX.Y.Z tag publishes, and a release can opt out through a marker in its own notes. This one does not opt out, which is why it is on PyPI.
  • Linux ARM64 debuginfo is packaged as tar.xz to stay under GitHub's 2 GiB asset limit (#201).
  • CI workflows hardened against self-hosted runner infrastructure failures (#208).
  • Removed the dead ownership probe from operator delete (#211).

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.