Failure to collect operations that join two lazily retrieved Polars lazyframes
- 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
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