Skip to content

v6.1.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 15:31
· 538 commits to master since this release

This is the first externally published release from the major v6 releases. As such it includes some breaking changes to the type system

⚠️ Breaking Changes

  • Groupby using dynamic schema now produces a stable dtype. Previously, the dtype depended on the segments being processed; now the dtype will always be the same dtype able to represent the column across all segments on disk.
  • Return type for min/max aggregations in groupby for libraries using dynamic schema now is the type able to represent the column across all segments, while in earlier versions it was float64 regardless of the type of the column across different segments.
  • Using sum aggregation in groupby on a bool column now returns the count of rows containing True as a uint64.
  • Using mean aggregation in groupby on timestamp columns now returns a timestamp (instead of float64). It is computed by taking the integer part of (1/n) * Σ ts[i], for i = 1 to n
  • The return type of a projection operation involving a floating point number will always be of type float64 regardless of the types involved in the computation.
  • Performing a filter or projection on an empty DataFrame might throw an exception depending on the dtype of the columns, while older versions always returned an empty DataFrame. The dtype of the columns of an empty DataFrame depends on the version of Pandas that is used to write them. Some versions use float64 by default; others use object. Filtering like query_builder = query_builder[query_builder["col"] < 5] will throw an exception if the DataFrame is empty and the type of an empty column is object.

🚀 Features

  • Resampling for libraries that use dynamic schema
  • Add batch_delete APIs and functionality (#2463)
  • Support open ended row_range on QueryBuilder and read methods (#2550)

🐛 Fixes

  • Fix handling of segments contained only of None values in sort merge (#2536)
  • Fix OverflowError from to_json() call (#2556)
  • Storage lock increase wait time and add artificial slow writes (#2497)
  • Remove signaled threads on TaskScheduler destruction on Windows (#2544)
  • Add utilities to let the storage failure simulator simulate high latency conditions (#2407)
  • Extend testing for the index names returned by get_info (#2448)
  • Fix flaky segfault in concat testing (#2458)
  • conda-build: Use clang and clang++ 18 for osx (#2476)
  • fix: Remove use after free (#2459)
  • Fix segfault during encoding sparse data (#2475)
  • maint: Replace Folly's ranges with the standard library's (#2479)
  • conda-build: Use macos-14 (#2482)
  • Bugfix 8083916814: Respect pickle_on_failure kwarg (#2474)
  • Remove numpy pin (#2487)
  • Update_batch additional tests (#2437)
  • Make append_batch and update_batch noop with empty dataframes when there's an existing version (#2507)
  • Release the GIL when logging from the Python API (#2486)

The wheels are on PyPI. Below are for debugging: