# Polars 1.4.0 — Python Polars 1.4.0 - Product: Polars (https://whatsnew.fyi/product/polars) - Vendor: Polars - Date: 2024-08-02 - Version: 1.4.0 - Original notes: https://github.com/pola-rs/polars/releases/tag/py-1.4.0 - Permalink: https://whatsnew.fyi/product/polars/releases/1.4.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Delay selection expansion - **changed** — Optimize strings slices - **changed** — Make .dt.weekday 20x faster - **changed** — Shrink MemSliceInner enum - **changed** — Push down slice with non-zero offset to Parquet - **changed** — Reduce copy in MemSlice - **added** — Add nested SQL join support - **added** — Add support for binary size method to Expr and Series bin namespace - **added** — Add IO plugins - **added** — Add SQL interface support for PostgreSQL dollar-quoted string literals - **changed** — Allow for parsing parquet file where the time zone is stored as lowercase utc - **fixed** — Respect strict argument - **fixed** — Multi-output column expressions in frame sort method - **fixed** — Fix Asof join by schema - **fixed** — Set default flags for FFI plugin - **fixed** — Fix glob resolution for Hugging Face - **fixed** — Several parquet reader/writer regressions - **fixed** — Incorrect filter on categorical columns from parquet files - **fixed** — SQL COUNT(DISTINCT x) should not include NULL values - **fixed** — Default to None in pycapsule interface export ##### 🚀 Performance improvements - Delay selection expansion (#18011) - Optimize strings slices (#17996) - Make `.dt.weekday` 20x faster (#17992) - Shrink `MemSliceInner` enum (#17991) - Push down slice with non-zero offset to Parquet (#17972) - Reduce copy in `MemSlice` (#17983) ##### ✨ Enhancements - Add nested SQL join support (#18006) - Push down slice with non-zero offset to Parquet (#17972) - Add support for binary `size` method to Expr and Series "bin" namespace (#17924) - IO plugins (#17939) - Add `SQL` interface support for PostgreSQL dollar-quoted string literals (#17940) - Allow for parsing parquet file where the time zone is stored as lowercase "utc" (#17925) ##### 🐞 Bug fixes - Add nested SQL join support (#18006) - Respect `strict` argument (#17990) - Multi-output column expressions in frame `sort` method (#17947) - Fix Asof join by schema (#17988) - Set default flags for FFI plugin (#17984) - Fix glob resolution for Hugging Face (#17958) - Several parquet reader/writer regressions (#17941) - Incorrect filter on categorical columns from parquet files (#17950) - SQL `COUNT(DISTINCT x)` should not include NULL values (#17930) - Default to `None` in pycapsule interface export (#17922) ##### 📖 Documentation - Fix aggregation guide discrepancies (#18003) - Ensure `last` is never ambiguous with `max` (#17962) - Documentation for Arrow PyCapsule interface integration (#17935) - Fix Hugging Face link in user guide (#17943) ##### 🛠️ Other improvements - Add unit tests for `str.contains_any` and `str.replace_many` (#17961) - Suggest `allow_null` as replacement (#17969) - Remove apply\_generic, use unary\_elementwise (#17902) - Add general filters in Parquet (#17910) Thank you to all our contributors for making this release possible! @JamesCE2001, @MarcoGorelli, @alexander-beedie, @coastalwhite, @deanm0000, @deepyaman, @dependabot, @dependabot[bot], @henryharbeck, @kylebarron, @nameexhaustion, @ritchie46 and @wangxiaoying