duckdb / duckdb/duckdb-python

Failure to collect operations that join two lazily retrieved Polars lazyframes

Abierto
#583 0 comentarios 0 reacciones 0 asignados Ver en GitHub
needs triage
Lenguaje dominante
Python
Estrellas
187
Forks
112
Merge medio
13 h 29 min
PR fusionados (30 d)
17

Descripción

### 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

```python
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?

- [x] Yes, I have

### Did you include all relevant configuration to reproduce the issue?

- [x] Yes, I have

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza en DuckDBPyRelation.pl(lazy=True) y reproduce el fallo con las dos relaciones unidas mediante Polars; después, sigue la ruta de ejecución hasta rel.join(...).collect(). Se considera completado cuando el ejemplo proporcionado se recopila correctamente y devuelve el resultado unido sin un ComputeError.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
databases
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
68/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.