HomeTech NewsPolars 2.0 Is Out: Streaming Is the Default and Row Order Is...

Polars 2.0 Is Out: Streaming Is the Default and Row Order Is No Longer Guaranteed

Polars, an open-source library for working with tables of data in Python and Rust, released version 2.0 on 6 October 2026, four days ago. The headline change is that lazy queries now run on its streaming engine by default, which can return rows in a different order. The speed comparisons come from Polars itself.

What changed

Confirmed (Polars’ release post, GitHub release and migration guide). A “lazy” query is one Polars plans before running. “Calling collect on a LazyFrame will now default to the streaming engine” [1]. The cost is that “the streaming engine doesn’t guarantee row-order by default for certain operations (join, group_by, unpivot, etc.)” [1]. Polars says you can opt back in with maintain_order=True [1]. Its migration guide warns that the change “may silently impact the results of your pipelines” [3].

Spill-to-disk, which lets a query finish by writing data to disk when memory runs short, is also on by default. It “starts spilling at ~80% of RAM”, with a default disk budget of 64GB [1]. Polars says it works for sorts, window functions and many expressions for now, and that joins and group-bys are planned [1]. A new Map type, much like a Python dictionary, arrives too [1]. The guide lists removals, including LazyFrame.profile() and the DataFrame Interchange Protocol [3].

The benchmark claim

Reported, and Polars’ own. Polars ran its SQL against DuckDB 1.5.6, a DuckDB 2.0 alpha and DataFusion 54.0.0, using data “derived from” two standard database benchmarks, TPC-H and TPC-DS. It says: “We observe that default Polars is fastest on all but one benchmarks.” It also says Polars “has a constant overhead when we scale to 192 threads, which hurts small data queries” [1]. DataFusion’s failed queries were excluded for all engines, and Polars notes the results are not comparable to official TPC results [1]. It invites others to replicate them [1].

What this does not show

  • Independent speed results. Polars ran and wrote up the test itself.
  • Faster for your workload. Results vary by query, data size and machine.
  • That your results stay unchanged. Code that relied on row order may now return rows in a different order.

The Bottom Line

Polars 2.0 is released: streaming by default, spill-to-disk on, and row order no longer guaranteed. Its claim to lead on benchmarks is Polars’ own, and TSN has not verified it independently.

Related on TSN: DuckDB’s Unreleased v2.0 Will Include an “Agent Mode” for AI Coding Agents

Sources

  1. Ritchie Vink, “Release of Polars 2.0”, Polars blog, 6 October 2026 (maintainers’ announcement; source of quotes and all benchmark claims, which are Polars’ own). https://pola.rs/posts/release-polars-2/
  2. Polars, “Python Polars 2.0.0”, GitHub release (tag py-2.0.0), published 6 October 2026, 12:52 BST (release record). https://github.com/pola-rs/polars/releases/tag/py-2.0.0
  3. Polars, “Version 2.0” migration guide, Polars documentation (maintainers’ documentation; breaking changes and removals). https://docs.pola.rs/releases/upgrade/2/

Share this story

More in this category

Latest on TSN

Free TSN tools: crypto calculator, Flux dashboard and more.