Repository navigation
v6.1.0
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
groupbyfor libraries using dynamic schema now is the type able to represent the column across all segments, while in earlier versions it wasfloat64regardless of the type of the column across different segments. - Using
sumaggregation ingroupbyon aboolcolumn now returns the count of rows containingTrueas auint64. - Using
meanaggregation ingroupbyontimestampcolumns now returns atimestamp(instead offloat64). 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
float64regardless of the types involved in the computation. - Performing a
filterorprojectionon 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 usefloat64by default; others useobject. Filtering likequery_builder = query_builder[query_builder["col"] < 5]will throw an exception if the DataFrame is empty and the type of an empty column isobject.
🚀 Features
- Resampling for libraries that use dynamic schema
- Add
batch_deleteAPIs and functionality (#2463) - Support open ended
row_rangeonQueryBuilderandreadmethods (#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: