Skip to content

Failure to collect operations that join two lazily retrieved Polars lazyframes #583

Description

@ak-gupta

What happens?

I have downstream functions that expect multiple polars.LazyFrame objects. In my upstream code, I want to source my data from DuckDB to enable efficient pushdown. However, using DuckDBPyRelation.pl(lazy=True) raises a ComputeError when operating on multiple LazyFrame objects.

To Reproduce

import duckdb

with duckdb.connect() as con:
    con.sql("CREATE TABLE tbl (t1 INTEGER)")
    con.sql("CREATE TABLE tbl2 (t1 INTEGER)")

    # Retrieve the results
    rel = con.table("tbl").pl(lazy=True)
    rel2 = con.table("tbl2").pl(lazy=True)

    # Compute and raise the error
    df = rel.join(rel2, on="t1", how="inner").collect()

the block above raises

ComputeError: caught exception during execution of a Python source, exception: InvalidInputException: Invalid Input Error: Attempting to execute an unsuccessful or closed pending query result

OS:

Linux - aarch64

DuckDB Package Version:

1.5.5

Python Version:

3.12

Full Name:

Akshay Gupta

Affiliation:

Capital One

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

I have tested with a stable release

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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