Skip to content

TileDB 2.17.0

Compare
Choose a tag to compare
@ihnorton ihnorton released this 14 Sep 11:27

TileDB v2.17.0 Release Notes

Disk Format

  • Storage format version is now 20, bringing changes to support enumerated types. (#4051).

Configuration Changes

  • Add Enumeration max size configuration. #4308

New features

  • Enumerated data types (aka: "categoricals" in Pandas, "factors" in R). #4051
  • Support optimized creation of set membership (IN, NOT_IN) QueryConditions, replacing create+combine pattern for specifying the target set. #4164
  • Add C and C++ APIs to reflect as-built (build-time) configuration options as a JSON string. #4112, #4199
  • Filter pipeline support for datatype conversions based on filtered output datatype. #4165
  • Add TileDB-REST support for vacuum and consolidation requests. #4229
  • TileDB-REST support for dimension labels. #4084

Improvements

  • Add TileDB-REST serialization for reinterpret_datatype. #4286
  • Update VFS to call ListObjectsV2 from the AWS SDK, providing significant performance improvements for array opening and other listing-heavy operations. #4216
  • Wrap KV::Reader::getKey calls into std::string_view. #4186
  • Unify ca_file and ca_path configuration parameters. #4087
  • Inline and optimize some trivial methods of the internal Array class. #4226
  • Merge overlapping ranges on sparse reads. #4184
  • Legacy reader: reading non written region causes segfault. #4253
  • Make generic tile decompression single threaded to fix multi-query hang condition. #4256
  • Add tiledb_handle_load_enumerations_request. #4288
  • Add TileDB-REST array open v2 serialization support for enumerations. #4307

Defects removed

  • Save error on the context before returning error code in tiledb_vfs_open #4347
  • Filter pipeline: fix coord filter type. #4351
  • Dense reader: fix nullable string values when reading with QueryCondition. #4174
  • Fix segmentation fault in delta compressor test. #4143
  • Fix VFS is_empty_bucket in C++ API. #4154
  • Initialize a Query at the end of deserialization to fix QueryCondition error against TileDB-REST. #4148
  • Sparse unordered w/ dups reader: adding ignored tiles. #4200
  • Allow Subarray::get_est_result_size_nullable on remote arrays. #4202
  • Fix version check bug when deserializing attributes. #4189
  • Fix container issues in windows builds. #4177
  • Unordered writes: fix deserialization for older clients. #4246
  • Fix serialization of var-size property for nonempty domains. #4264
  • Clear pending changes during group delete to avoid updating a deleted group. #4267
  • Update filter checks for accepted datatypes. #4233
  • Check if Subarray label ranges are set in Query::only_dim_label_query. #4285
  • Optimize capnp traversal size usage. #4287
  • Fix QueryCondition set conditions on attributes with enumerations. #4305
  • Backwards compatibility: correctly handle 0 chunk variable-size tiles. #4310

API changes

C API

  • Add C API attribute handle. #3982
  • Add result_buffer_elements_nullable for variable size dimension labels. #4142
  • Add new C APIs for dimension label REST support. #4072
  • Add tiledb_as_built_dump, to reflect the build-time configuration options as a JSON string. #4199
  • Add tiledb_query_condition_alloc_set_membership for optimized set membership QC creation. #4164
  • Add C API handle for domain. #4053

C++ API

  • Throw if incorrect type is passed to set_data_type. #4272
  • Add tiledb::AsBuilt::dump class method, to reflect the build-time configuration options as a JSON string. #4199
  • Add QueryCondition::create vectorized signature for set membership QC creation. #4164

Build System Changes

  • TileDB core library now requires C++20. Note that the public C++ API still only requires C++17. #4034
  • Fix macOS "experimental-features" build; CMake and CI QOL improvements #4297
  • Libxml2 needs to be linked after Azure libraries #4281
  • Adds macos experimental build to nightly CI. #4247
  • Fix static linking from the GitHub Releases package on Windows. #4263
  • Fix Azure build failures on non-Windows when vcpkg is disabled. #4258
  • Do not install static libraries when TILEDB_INSTALL_STATIC_DEPS is not enabled. #4244
  • Use tiledb:stdx stop_token and jthread; fix experimental/ build on macOS. #4240
  • Export Azure::azure-storage-blobs on install when vcpkg is enabled. #4232
  • Move Azure DevOps CI jobs to GitHub Actions. #4198
  • Bump catch2 to 3.3.2 in vcpkg #4201
  • Fix static linking to the on Windows. #4190
  • Fix build with Clang 16 #4206
  • Remove a workaround for a no longer applicable GCC/linker script bug. #4067
  • Build curl with ZStandard support on vcpkg when serialization is enabled. #4166
  • Use clipp from vcpkg if enabled. #4134
  • Support acquiring libmagic from vcpkg. #4119
  • Simplify linking to Win32 libraries. #4121
  • curl version bump to resolve MyTile superbuild failure #4170
  • Improve support for multi-config CMake generators. #4147
  • Support new Azure SDK in superbuild #4153
  • Update libwebp to version 1.3.1. #4211
  • Fix Ninja builds on Windows #4173
  • Fix azure static library linking order for superbuild #4171
  • Fix vcpkg dependencies building only in Release mode. #4159
  • Fix compile error on macos 13.4.1 with c++20 enabled. #4222
  • Fix compilation with GCC 13 #4331

Test Changes

  • Add tests for TILEDB_NOT. #4169
  • Fix regression test exit status; fix unhandled throw (expected). #4311
  • Fix as_built definitions in the C API compilation unit, and add validation test. #4289
  • Smoke test: only recreate array when needed. #4262
  • Array schema: C.41 changes, test support. #4004
  • Conditionally disable WhiteboxAllocator tests to fix GCC-13 build. #4291
  • Sorted reads tests: faster tests. #4278