🚀 Performance improvements
✨ Enhancements
- let "ambiguous" take "null" value (#14961)
- Raise informative error message when join would introduce duplicate column name (#15042)
- Allow cast of decimal to boolean (#15015)
- Add
strict
parameter toDataFrame
constructor to allow non-strict construction (#15034) - Support Array statistics in parquet (#15031)
- Support decimal groupby (#15000)
- Add thread names to rayon thread pool (#15024)
- Support decimal uniq (#15001)
- expose timings in verbose state of OOC sort (#14979)
🐞 Bug fixes
- Prevent "index out of range for slice" error in parquet reader (#15021)
- Respect
nulls_last
in streaming sort (#15061) - Fix Series construction from nested list with mixed data types (#15046)
- Don't count nulls in streaming
count
agg (#15051) - agg_list on decimal lost scale (#15054)
- Block predicate pushdown on equality that are use in join (#15055)
- Enum equality based on categories (#15053)
- Don't panic in
string_addition_to_linear_concat
(#15006) - CSV do utf8-validation after escaping fields (#15004)
- Use primitive constructors to create a Series of lists when dtype is provided (#15002)
- replace_time_zone with single-null-element "ambiguous" was panicking (#14971)
📖 Documentation
- Improve API reference landing page (#14888)
- improve join_asof example (#14993)
- Fix inadvertent swap of
new
andold
parameters inreplace
description (#15019)
🛠️ Other improvements
- Add parameterized-scan-tests (#15057)
- Simplify streaming execution (#15039)
- Ensure we hit the spilled source path in ooc sort test (#15010)
- Refactor constructor code (#15009)
- fix features (#14977)
- Revert pinning PyPI publish action (#14975)
Thank you to all our contributors for making this release possible!
@MKisilyov, @MarcoGorelli, @alexander-beedie, @c-peters, @flisky, @jqnatividad, @mcrumiller, @mickvangelderen, @nameexhaustion, @petrosbar, @ritchie46, @stinodego and @trueb2