Skip to content

Polars Lazy Filter not working with latest Polars (1.34.0) #98

@paultiq

Description

@paultiq

What happens?

A Polars test is failing against the most recent version of Polars (1.34.0). tests\fast\arrow\test_polars.py::TestPolars::test_polars_lazy_pushdown_numeric[HUGEINT]

I boiled this down to an MRE below.

I'm assuming this is related to pola-rs/polars#24346, but don't see a reason... and didn't see anything obviously wrong in polars_io.py.

Notes:

  • Fails when the data type is either Decimal(38,0) or HUGEINT.
  • Passes when lazy=False
  • Fails on Polars 1.34.0, but passes on 1.33.1

To Reproduce

import duckdb
import polars as pl

print(f"Polars version: {pl.__version__}")
print(f"duckdb version: {duckdb.__version__}")

con = duckdb.connect()
rel = con.sql("select a::HUGEINT as a FROM range(10) as t(a)")

lazy_df = rel.pl(lazy=True)
print(f"Schema: {lazy_df.collect_schema()}")
result1 = lazy_df.filter(pl.col("a") == 1).collect()
assert len(result1) == 1, f"Expected 1 row, got {len(result1)}"

OS:

Linux

DuckDB Package Version:

1.5.0_

Python Version:

3.13

Full Name:

Paul T

Affiliation:

Iqmo

What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.

I have tested with a source build

Did you include all relevant data sets for reproducing the issue?

Yes

Did you include all code required to reproduce the issue?

  • Yes, I have

Did you include all relevant configuration to reproduce the issue?

  • Yes, I have

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions