# Polars 1.13.0 — Python Polars 1.13.0 - Product: Polars (https://whatsnew.fyi/product/polars) - Vendor: Polars - Date: 2024-11-12 - Version: 1.13.0 - Original notes: https://github.com/pola-rs/polars/releases/tag/py-1.13.0 - Permalink: https://whatsnew.fyi/product/polars/releases/1.13.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** — Improve DataFrame.sort().limit/top_k performance - **changed** — Improve cloud scan performance - **fixed** — Fix quadratic 'with_columns' behavior - **changed** — Improve hive partition pruning with datetime predicates from SQL - **changed** — Allow for arbitrary skips in Parquet Dictionary Decoding - **changed** — Rechunk in DataFrame.rows if needed - **changed** — Dispatch Parquet Primitive PLAIN decoding to faster kernels when possible - **changed** — Use faster iteration in 'starts_with'/'ends_with' - **changed** — Improve branchless Parquet Prefiltering - **changed** — Reduce size of IdxVec from 24 to 16 bytes - **added** — Try to support native SAP HANA driver via read_database - **added** — Implement max/min methods for dtypes - **changed** — Improve n_chunks typing - **added** — Identify inefficient use of Python string removeprefix, removesuffix, and zfill in map_elements - **changed** — Automatically use boto3 / google-auth if installed when scanning cloud - **added** — Identify inefficient use of Python string replace in map_elements - **added** — Parallel IPC sink for the new streaming engine - **added** — Add SQL support for RIGHT JOIN and fix an issue with wildcard aliasing - **added** — Add show_graph to display a GraphViz plot for expressions - **changed** — Streamline use of predicates connected by & with IEJoin (join_where) ##### 🚀 Performance improvements - Improve `DataFrame.sort().limit/top_k` performance (#19731) - Improve cloud scan performance (#19728) - Fix quadratic 'with\_columns' behavior (#19701) - Improve hive partition pruning with datetime predicates from SQL (#19680) - Allow for arbitrary skips in Parquet Dictionary Decoding (#19649) - Reorder conditions in is\_leap\_year (#19602) - Rechunk in DataFrame.rows if needed (#19628) - Dispatch Parquet Primitive PLAIN decoding to faster kernels when possible (#19611) - Use faster iteration in 'starts\_with'/'ends\_with' (#19583) - Branchless Parquet Prefiltering (#19190) - Reduce size of IdxVec from 24 -> 16 bytes (#19550) ##### ✨ Enhancements - Try to support native SAP HANA driver via `read_database` (#19733) - Implement max/min methods for dtypes (#19494) - Improve `n_chunks` typing (#19727) - Improve hive partition pruning with datetime predicates from SQL (#19680) - Identify inefficient use of Python string `removeprefix`, `removesuffix`, and `zfill` in `map_elements` (#19672) - Automatically use boto3 / google-auth if installed when scanning cloud (#19677) - Identify inefficient use of Python string `replace` in `map_elements` (#19668) - Parallel IPC sink for the new streaming engine (#19622) - Add SQL support for `RIGHT JOIN`, fix an issue with wildcard aliasing (#19626) - Add show\_graph to display a GraphViz plot for expressions (#19365) - Streamline use of predicates connected by `&` with IEJoin (`join_where`) (#19552) - Support use of `is_between` range predicate with IEJoin operations (`join_where`) (#19547) ##### 🐞 Bug fixes - Use `cls` for `to_python` (#19726) - Fix validation for inner and left join when join\_nulls unflaged (#19698) - SQL `ELSE` clause should be implicitly `NULL` when omitted (#19714) - Improve `n_chunks` typing (#19727) - Ensure `NoDataError` raised consistently between engines for Excel reads (#19712) - In group\_by\_dynamic, period and every were getting applied in reverse order for the window upper boundary (#19706) - Only allow `list.to_struct` to be elementwise when width is fixed (#19688) - Make Array arithmetic ops fully elementwise (#19682) - Address inconsistency with use of Python types in frame-level `cast` (#19657) - Update line-splitting logic in batched CSV reader (#19508) - Fix incorrect lazy schema for `explode()` in `agg()` (#19629) - Fix fill null types (#19656) - Fix filter incorrectly pushed past struct unnest when unnested column name matches upper column name (#19638) - Fix typing for SchemaDefinition (#19647) - Ensure `mean_horizontal` raises on non-numeric input (#19648) - Reorder conditions in is\_leap\_year (#19602) - Copy height in .vstack() for empty dataframes (#19641) (#19642) - Correct wildcard and input expansion for some more functions (#19588) - Allow `.struct.with_fields` inside `list.eval` (#19617) - Sortedness was incorrectly being preserved in dt.offset\_by when offsetting by non-constant durations in the timezone-naive case (#19616) - Fix incorrect `scan_parquet().with_row_index()` with non-zero slice or with streaming collect (#19609) - Fix mask and validity confusion in Parquet String decoding (#19614) - Parquet decoding of nested dictionary values (#19605) - Do not attempt to load default credentials when `credential_provider` is given (#19589) - Fix gather len in group-by state (#19586) - Added input validation for `explode` operation in the array namespace (#19163) - Improve error message (#19546) - Fix predicate pushdown into inequality joins (#19582) - Correct categorical namespace error message (#19558) - Fix performance regression for sort/gather on list/array columns (#19564) - Ignore quoted newlines when skipping lines in CSV (#19543) - Incorrect gather for FixedSizeList with outer validity but no inner validities (#19489) - Make Duration parsing fallible and not panic (#19490) ##### 📖 Documentation - Revise and rework user-guide/expressions (#19360) - Update Excel page of user guide to refer to _[Truncated at 4000 characters — full notes: https://github.com/pola-rs/polars/releases/tag/py-1.13.0]_