🚀 Performance improvements
- Don't recompute full rolling moment window when NaNs/nulls leave the window (#25078)
- Skip filtering scan IR if no paths were filtered (#25037)
- Optimize ipc stream read performance (#24671)
✨ Enhancements
- Support BYTE_ARRAY backed Decimals in Parquet (#25076)
- Allow
glimpseto return aDataFrame(#24803) - Add
allow_emptyflag toitem(#25048)
🐞 Bug fixes
- The
SQLinterface should use logical, not bitwise, behaviour for unary "NOT" operator (#25091) - Fix panic if scan predicate produces 0 length mask (#25089)
- Ensure SQL table alias resolution checks against CTE aliases on fallback (#25071)
- Panic in
group_by_dynamicwithgroup_byand multiple chunks (#25075) - Minor improvement to internal
is_pycapsuleutility function (#25073) - Fix panic when using struct field as join key (#25059)
- Allow broadcast in
group_byforApplyExprandBinaryExpr(#25053) - Fix field metadata for nested categorical PyCapsule export (#25052)
- Block predicate pushdown when
group_bykey values are changed (#25032) - Group-By aggregation problems caused by
AmortSeries(#25043) - Don't push down predicates passed inserted cache nodes (#25042)
- Allow for negative time in
group_by_dynamiciterator (#25041)
📖 Documentation
- Fix typo in public dataset URL (#25044)
🛠️ Other improvements
- Disable recursive CSPE for now (#25085)
- Change group length mismatch error to
ShapeError(#25004) - Update toolchain (#25007)
Thank you to all our contributors for making this release possible!
@Kevin-Patyk, @Liyixin95, @alexander-beedie, @coastalwhite, @kdn36, @nameexhaustion, @orlp, @r-brink, @ritchie46 and @stijnherfst