π Performance improvements
- Optimize not(bool_f) to not_bool_f (#28474)
β¨ Enhancements
- Allow callback sinks on cloud (#28458)
π Bug fixes
- Fix panic on self join of scan_delta / scan_iceberg (#28468)
- Fix UB on first/last_non_null with empty chunk (#28495)
- Do not CSE non-column height expr on streaming engine (#28480)
- Propagate adjusted sortedness through Gather (#28493)
- Deduplicate the expression equality checks (#28483)
- Address 3VL issue with SQL
NOT INinteraction withNULLvalues and joins (#28484) - Use total comparison in Expr literal values (#28482)
- Ensure SQL
SUMandCORRaggregates return NULL for all-null inputs, addTOTAL(#28475) - Share
null_count_dtypehelper between Delta and Iceberg, fixingSchemaError(#28479) - Remove non-output columns from the equi-join and semi/anti-join operators (#28446)
- Fix dropped slice on multiple unions (#28477)
- Fix in-memory engine incorrect slice on maintain order join (#28478)
- Check join schema by position (#28455)
- Block predicate pushdown past overwritten window keys (#28429)
π Documentation
- Update and restructure README (#28490)
- Minor fixes to Spark migration guide (#27730)
- Relocate Polars Cloud & On-Prem User Guide (#28462)
- Add notes on k8s operator (#28445)
π οΈ Other improvements
- Make hive_part extraction a function and public (#28507)
- Deduplicate the expression equality checks (#28483)
- Bump
ruffandmypypackage versions (#28456) - Fix flaky test (#28454)
Thank you to all our contributors for making this release possible!
@AnirudhRahul, @EndPositive, @Jesse-Bakker, @alexander-beedie, @carnarez, @dancsi, @mdroogh, @mroeschke, @nameexhaustion, @nchammas, @orlp, @r-brink and @ritchie46