Checks
Reproducible example
import polars as pl
a = pl.LazyFrame({"ak": [1]})
b = pl.LazyFrame({"bk": [1, 2, 3, 4, 5], "bv": [10, 20, 30, 40, 50]})
q = a.join(b, left_on="ak", right_on="bk", how="right", maintain_order="left_right")
print(q.collect(engine="in-memory")) # ok
print(q.collect(engine="streaming")) # sometimes not ok
run as
POLARS_MAX_THREADS=2 python tt.py
Log output
shape: (5, 2)
┌─────┬─────┐
│ bk ┆ bv │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪═════╡
│ 1 ┆ 10 │
│ 2 ┆ 20 │
│ 3 ┆ 30 │
│ 4 ┆ 40 │
│ 5 ┆ 50 │
└─────┴─────┘
shape: (5, 2)
┌─────┬─────┐
│ bk ┆ bv │
│ --- ┆ --- │
│ i64 ┆ i64 │
╞═════╪═════╡
│ 1 ┆ 10 │
│ 3 ┆ 30 │
│ 2 ┆ 20 │
│ 5 ┆ 50 │
│ 4 ┆ 40 │
└─────┴─────┘
Issue description
maintain_order not respected in streaming engine
Expected behavior
results match
Installed versions
Reproduces on 1.44.2 and latest main
Checks
Reproducible example
run as
Log output
Issue description
maintain_order not respected in streaming engine
Expected behavior
results match
Installed versions
Reproduces on 1.44.2 and latest main