Change8

py-1.44.0

📦 polarsView on GitHub →
21 features🐛 43 fixes3 deprecations🔧 39 symbols

Summary

This release introduces several performance improvements, new features like Iceberg schema evolution and correlated subqueries, and numerous bug fixes. It also deprecates the `rechunk` parameter and related functions.

✨ New Features

  • Support integer fixed-array dot products (#28829)
  • SQL correlated in (#28927)
  • Support more join_types in `join_where` (#28880)
  • Support Iceberg schema evolution (#28794)
  • SQL conformance (#28494)
  • Introduce `RemoteEngine` and a common base class for all engines (#28800)
  • Support Iceberg table with V3 deletion vectors in native `scan_iceberg` (#28772)
  • Support Iceberg snapshot properties (#28793)
  • Expose `sinked_paths_callback` on `sink_parquet` as unstable parameter (#28814)
  • Add `infer_schema_files` to CSV inference hint (#28809)
  • Add native fixed-array dot (#28504)
  • Export query metrics to polars_cloud (#28757)
  • Support Iceberg object storage paths (#28634)
  • More CSEE simplification (#28731)
  • Improve error in Series constructor with name in context (#28743)
  • Add adaptive HTTP rate-limiter for cloud IO (#28591)
  • Add `struct.drop()` (#28666)
  • Improve error message when CSV name de-duplication fails (#28658)
  • Always keep first metadata per source for Parquet (#28661)
  • Improve plan-time row estimates for multi-file parquet scans (#28380)
  • Expose array and plugin function views in Python visitor (#28635)

🐛 Bug Fixes

  • SQL handle quantified comparisons against a subquery (#28929)
  • Fix SQL subquery qualified lowering and cache row-index (#28926)
  • Clippy-stable failures (#28919)
  • Use uuidv7 for cloud observed queries (#28910)
  • Unsoundness in AnyValue::into_static for structs (#28889)
  • Invalidate suborders on projection (#28866)
  • Ensure SQL function registry is available in isolated subqueries (#28881)
  • Handle null in Expr.is_not_nan (#28883)
  • Ensure eager `unpivot` column selection aligns with the lazy engine (#28846)
  • Fix assertion error / incorrect data load from parquet written by fastparquet (#28656)
  • Fix projection pushdown incorrect `select()` height (#28751)
  • Restore `monitoring` as an engine-level parameter (#28821)
  • Bincode serialization of IR hints (#28837)
  • Retain datetime inference across CSV fallback (#28663)
  • Avoid chunk fragmentation on bool agg `min` and `max` (#28789)
  • Merge join with coalesce and empty suffix (#28799)
  • Wrong function name call in test (#28801)
  • Preserve row mapping in nested over expressions (#28767)
  • Restore CI compatibility with NumPy 2.5.2 (#28782)
  • Do not deduplicate inherently nondeterministic plan nodes (#28768)
  • Fix OOC spilling of categoricals (#28761)
  • Correct partitionable filter handling for pivot (#28749)
  • Small typo in docstring (#28763)
  • Avoid chunk fragmentation on bool agg `any` and `all` (#28754)
  • Ignore nans in (min|max)_horizontal (#28710)
  • Correct function display for str.replace_all (#28742)
  • Exclude debug tests from nodebug streaming run (#28747)
  • Convert predicate series dtype during prefiltered parquet reading (#28711)
  • Do not remove nested caches when performing predicate pushdown past a cache node (#28740)
  • Correct handling of nulls at the start of business day functions (#28703)
  • Do not panic when exceeding Parquet metadata scan cache (#28721)
  • Remove cryptographic hashing from CSPE (#28716)
  • Unsoundness in rayon block_on (#28709)
  • Check for (shallow) IR node equality on top of hashing in CSPE (#28506)
  • Don't hand IO plugins a predicate they cannot evaluate (#28643)
  • Raise on overflow in Decimal sum instead of silently wrapping (#28688)
  • Preserve nulls when importing Arrow maps (#28680)
  • Propagate null `by` column values in `rolling_*_by` (#27367)
  • Fix self-referencing `field` in `struct.with_fields` with `over` (#28678)
  • Fix Arrow buffer offset for `Utf8` and `Binary` (#28662)
  • Clamp group-by slice offset (#28579)
  • Release the GIL while resolving the schema in `__arrow_c_stream__` (#28642)
  • Fix data corruption on Series from nested Arrow `LargeList` (#28632)

Affected Symbols

⚡ Deprecations

  • Deprecate `rechunk` parameter for all read/scan functions (#28063)
  • Deprecate `Expr.rechunk()` (#28692)
  • Deprecate `struct.rename_fields()` with an incorrect number of fields (#28672)