🚀 Performance improvements
- Lower .sort(maintain_order=True).head() to streaming top_k (#24014)
- Lower top-k to streaming engine (#23979)
- Allow order pass through Filters and relax to row-seperable instead of elementwise (#23969)
✨ Enhancements
- Add native streaming for
peaks_{min,max}
(#24039) - IR graph arrows, monospace font, box nodes (#24021)
- Add
DataTypeExpr.default_value
(#23973) - Lower
rle
to a native streaming engine node (#23929) - Add support for
Int128
to pyo3-polars (#23959)
🐞 Bug fixes
- Scan of multiple sources with
null
datatype (#24065) - Categorical in nested data in row encoding (#24051)
- Missing length update in builder for pl.Array repetition (#24055)
- Race condition in global categories init (#24045)
- Revert "fix: Don't encode entire CategoricalMapping when going to Arrow (#24036)" (#24044)
- Error when using named functions (#24041)
- Don't encode entire CategoricalMapping when going to Arrow (#24036)
- Fix cast on arithmetic with
lit
(#23941) - Incorrect slice-slice pushdown (#24032)
- Dedup common cache subplan in IR graph (#24028)
- Allow join on Decimal in in-memory engine (#24026)
- Fix datatypes for
eval.list
in aggregation context (#23911) - Allocator capsule fallback panic (#24022)
- Accept another zlib "magic header" file signature (#24013)
- Fix
truediv
dtypes socast
inlist.eval
is not dropped (#23936) - Don't reuse cached
return_dtype
for expanded map expressions (#24010) - Cache id is not a valid dot node id (#24005)
- Align
map_elements
with and withoutreturn_dtype
(#24007) - Fix column dtype lifetime for
csv_write
segfault onCategorical
(#23986) - Allow serializing
LazyGroupBy.map_groups
(#23964) - Correct allocator name in
PyCapsule
(#23968) - Mismatched types for
write
function for windows (#23915) - Fix
unpivot
panic whenindex=
column not found (#23958)
📖 Documentation
- Fix a typo in "lazy/execution" user-guide page (#23983)
🛠️ Other improvements
- Update pyo3-polars versions (#24031)
- Remove insert_error_function (#24023)
- Remove cache hits, clean up in-mem prefill (#24019)
- Use .venv instead of venv in pyo3-polars examples (#24024)
- Fix test failing mypy (#24017)
- Remove outdated comment (#23998)
- Add a
_plr.pyi
to removemypy
issues (#23970) - Don't define CountStar as dyn OptimizationRule (#23976)
- Rename
atol
andrtol
toabs_tol
andrel_tol
(#23961) - Introduce
Row{Encode,Decode}
as FunctionExpr (#23933) - Dispatch through
pl.map_batches
andAnonymousColumnsUdf
(#23867)
Thank you to all our contributors for making this release possible!
@JakubValtar, @Kevin-Patyk, @borchero, @cmdlineluser, @coastalwhite, @iishutov, @jarondl, @kdn36, @orlp, @rawhuul, @ritchie46 and @stijnherfst