New features
- Breaking:
clickhouse::UInt128type definition has been changed fromstd::pair<uint64_t,uint64_t,>toabsl::uint128for consistency withclickhouse::Int128 - Added methods
ReserveandCapacityto numeric and date columns #330 by @rtcote - Added the
Reservemethod to other columns #341 by @1261385937 - Added Block::Clear() and Block::Reserve() to clear or preallocate block capacity #427 by @Enmk
- Modified
ColumnLowCardinality::Reserve(X)to reservesqrt(X)items, since items usually repeat #427 by @Enmk
AddedSwapElementsand a comparison function to numeric and date columns to enable in-place sorting #330 by @rtcote - Added method
GetWritableDatato numeric columns #330, https://github.com/ClickHouse/clickhouse-cpp/pull/338/files by @rtcote and @Enmk - Implemented rvalue reference overload for
ColumnArray::Appendto allow optimizations when passing rvalues #345 by @1261385937 - Added
Client::GetVersion()to get the current library version; addedversion.h; extended build scripts to read and validate the version number during release; fixed #347 #348 #351 by @Enmk - Added
FixedStringType::GetSize()#355 by @german3w1 - Added support for ZSTD compression #367 by @byian
- Added missing
ColumnDateTime::RawAt()#375 by @moaazassali - Added
Client::SelectWithExternalData(...)andClient::SelectWithExternalDataCancelable(...)to support queries with external data #419 by @pet74alex - Added
UInt128support; fixed #378 #424 by @pet74alex - Added validation when inserting into
ColumnArrayto prevent possible data corruption #428 by @IyeOnline - Changed the client name reported to the server to avoid confusion with the
clickhouse clientclienthttps://github.com//pull/439 by @slabko - Disabled
BUILD_SHARED_LIBS,BUILD_BENCHMARK, andBUILD_TESTSwhen used as a submodule in another project #386 by @AndreyAlifanov - Allowed specifying parameters for each query via
Query::SetParams(...)#394 by @OlegGalizin - Added
DISABLE_CLANG_LIBC_WORKAROUNDCMake parameter to disable linking compiler-rt & gcc_s when using Clang with libstdc++ #399 by @kclonts
Fixes
- Fixed #408 by including dependencies in installation #409 by @fdr400
- Correctly handled the return value of the
sendsyscall #404 #407 by @dngrudin - Avoided calling the exception copy constructor when throwing exceptions #413 by @OlegGalizin
- Fix #432 by adding missing files to installation #435 by @slabko
- Portability fix: corrected types for
recv_timeoutandsend_timeout#337 by @jiayuehua - Portability fix: renamed deprecated
std::memory_order::memory_order_relaxedtostd::memory_order_relaxed#343 by @georgthegreat - Portability fix: added missing includes #357 by @hdnpth
- Portability fix: fixed compilation on MinGW #414 by @HRex39
Various test and documentation improvements
- Documentation for using asynchronous inserts #393 by @1261385937
- Documentation improvements #438 by @theory
- Tests improvements https://github.com/ClickHouse/clickhouse-cpp by @Enmk
- Tests improvements #342 by @1261385937
- Tests improvements #410 by @Enmk
- Tests and CI improvements #429 by @Enmk
Full Changelog: v2.5.1...v2.6.0
Huge thanks to all contributors for their work on this release. Special thanks to @Enmk, whose long-term dedication and stewardship have kept this library thriving. It wouldn’t be the same without you.