py-1.43.1

moeru-ai/airipy-1.43.1Jul 27, 2026by github-actions[bot]

AI Summary

A maintenance release for Polars featuring performance optimizations and bug fixes, specifically improving join stability and SQL NULL handling.

Key Highlights

  • Optimization of `not(bool_f)` to `not_bool_f`.
  • Fixed panic on self-join of `scan_delta` and `scan_iceberg`.
  • Enhanced SQL `NOT IN` interaction with NULL values.
  • Fixed undefined behavior on `first/last_non_null` with empty chunks.

New Features

  • Allow callback sinks on cloud
  • Improved stability for Delta and Iceberg scans
  • Better handling of NULL values in SQL `NOT IN`
  • Fixed UB in first/last_non_null with empty chunks

Full Release Notes

## 🚀 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 IN` interaction with `NULL` values and joins (#28484)
- Use total comparison in Expr literal values (#28482)
- Ensure SQL `SUM` and `CORR` aggregates return NULL for all-null inputs, add `TOTAL` (#28475)
- Share `null_count_dtype` helper between Delta and Iceberg, fixing `SchemaError` (#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 `ruff` and `mypy` package 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