TileDB v2.4.0 Release Notes

  • Disk Format

    • Store array schemas under __schema directory #2258

    ๐Ÿ†• New features

    • ๐Ÿ Perform early audit for acceptable aws sdk windows path length #2260
    • ๐Ÿ‘Œ Support setting via config s3 BucketCannedACL and ObjectCannedACL via SetACL() methods #2383
    • โšก๏ธ Update spdlog dependency to 1.9.0 fixing c++17 compatibility and general improvements #1973
    • โž• Added Azure SAS token config support and new config option #2420
    • Load all array schemas in storage manager and pass the appropriate schema pointer to each fragment #2415
    • First revision of the Interval class #2417
    • Add tiledb_schema_evolution_t and new apis for schema evolution #2426
    • โž• Add ArraySchemaEvolution to cpp_api and its unit tests are also added. #2462
    • โž• Add c and cpp api functions for getting the array schema of a fragment #2468
    • โž• Add capnp serialization and rest support for array schema evolution objects #2467

    ๐Ÿ‘Œ Improvements

    • encryption_key and encryption_type parameters have been added to the config; internal APIs now use these parameters to set the key. #2245
    • ๐ŸŽ‰ Initial read refactor #2374
    • Create class ByteVecValue from typedef #2368
    • Encapsulate spdlog.h #2396
    • ๐Ÿš€ Update OSX target to 10.14 for release artifacts #2401
    • โž• Add nullable (and unordered, nullable) support to the smoke test. #2405
    • ๐ŸŽ‰ Initial sparse global order reader #2395
    • Remove sm.sub_partitioner_memory_budget #2402
    • โšก๏ธ Update the markdown documents for our new version of array schemas #2416
    • ๐Ÿ“œ Sparse global order reader: no more result cell slab copy. #2411
    • ๐Ÿ“œ Sparse global order reader: initial memory budget improvements. #2413
    • ๐Ÿ“œ Optimization of result cell slabs generation for sparse global order reader. #2414
    • โœ‚ Remove selective unfiltering. #2410
    • โšก๏ธ Updated Azure Storage Lite SDK to 0.3.0 #2419
    • ๐Ÿ“œ Respect memory budget for sparse global order reader. #2425
    • ๐Ÿ‘‰ Use newer Azure patch for all platforms to solve missing header error #2433
    • increased diag output for differences reported by tiledb_unit (some of which may be reasonable) #2437
    • Adjustments to schema evolution new attribute reads #2484
    • ๐Ÿ”„ Change Quickstart link in readthedocs/doxygen index.rst #2448
    • ๐ŸŽ‰ Initial sparse unordered with duplicates reader. #2441
    • โž• Add calls to malloc_trim on context and query destruction linux to potentially reduce idle memory usage #2443
    • โž• Add logger internals for std::string and std::stringstream for developer convenience #2454
    • ๐Ÿ‘ Allow empty attribute writes. #2461
    • ๐Ÿ”จ Refactored readers: serialization. #2458
    • ๐Ÿ‘ Allow null data pointers for writes. #2481
    • โšก๏ธ Update backwards compatibility arrays for 2.3.0 #2487

    ๐Ÿ—„ Deprecations

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fix to correctly apply capnproto create_symlink avoidance patch #2264
    • The bug for calculating max_size_validity for var_size attribute caused incomplete query #2266
    • Always run ASAN with matching compiler versions #2277
    • ๐Ÿ›  Fix some loop bounds that reference non-existent elements #2282
    • Treating std::vector like an array; accessing an element that is not present to get its address. #2276
    • ๐Ÿ›  Fix buffer arguments in unit-curl.cc #2287
    • Stop loop iterations within limits of vector being initialized. #2320
    • ๐Ÿ— Modify FindCurl_EP.cmake to work for WIN32 -EnableDebug builds #2319
    • ๐Ÿ›  Fixing test failure because of an uninitialized buffer. #2386
    • ๐Ÿ”„ Change a condition that assumed MSVC was the only compiler for WIN32 #2388
    • Fix defects in buffer classes: read, set_offset, advance_offset #2342
    • ๐Ÿ‘‰ Use CHECK_SAFE() to avoid multi-threaded conflict #2394
    • ๐Ÿ‘‰ Use tiledb _SAFE() items when overlapping threads may invoke code #2418
    • ๐Ÿ”„ Changes to address issues with default string dimension ranges in query #2436
    • Only set cmake policy CMP0076 if cmake version in use knows about it #2463
    • ๐Ÿ›  Fix handling curl REST request having all data in single call back #2485
    • Write queries should post start/end timestamps for REST arrays #2492

    API additions

    • Introduce new tiledb_experimental.h c-api header for new feature that don't have a stabilized api yet #2453
    • Introduce new tiledb_experimental cpp-api header for new feature that don't have a stabilized api yet #2453

    C API

    • ๐Ÿ”จ Refactoring [get/set]_buffer APIs #2315
    • Add tiledb_fragment_info_get_array_schema functions for getting the array schema of a fragment #2468
    • Add tiledb_schema_evolution_t and new apis for schema evolution #2426

    C++ API

    • ๐Ÿ”จ Refactoring [get/set]_buffer APIs #2399
    • โž• Add FragmentInfo::array_schema functions for getting the array schema of a fragment #2468
    • โž• Add ArraySchemaEvolution to cpp_api and its unit tests are also added. #2462