duckdb / duckdb/duckdb-python

surprising `fetchall` return value on some queries, since 1.5.2

Aperta
#535 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
needs triage
Lingua principale
Python
Stelle
187
Fork
112
Merge medio
13h 29m
PR unite (30g)
17

Descrizione

### What happens?

`duckdb.execute` of `CREATE OR REPLACE` or `PIVOT` each return a result set with row count, but the same call with both statements together returns an empty result since 1.5.2 of the Python library.

### To Reproduce

In 1.5.1 and 1.5.2 this succeeds and the assertions pass:
```
import duckdb

assert duckdb.execute("create or replace table t1 as select 1").fetchall() == [(1,)]
assert duckdb.execute("""PIVOT (
SELECT 'X' AS category, 100 AS amount
UNION ALL
SELECT 'Y' AS category, 200 AS amount
) ON category USING SUM(amount);""").fetchall() == [(100, 200)]
```
In 1.5.1 we continue to get a result set with `CREATE OR REPLACE` and `PIVOT` so this succeeds:
```
import duckdb

assert duckdb.execute("""create or replace table t1 as PIVOT (
SELECT 'X' AS category, 100 AS amount
UNION ALL
SELECT 'Y' AS category, 200 AS amount
) ON category USING SUM(amount);""").fetchall() == [(1,)]
```
In 1.5.2 and above, the query succeeds but the assertion fails:
```
AssertionError Traceback (most recent call last)
Cell In[2], line 1
----> 1 assert duckdb.execute("""create or replace table t1 as PIVOT (
2 SELECT 'X' AS category, 100 AS amount
3 UNION ALL
4 SELECT 'Y' AS category, 200 AS amount
5 ) ON category USING SUM(amount);""").fetchall() == [(1,)]

AssertionError:
```

### OS:

OSX

### DuckDB Package Version:

1.5.2

### Python Version:

3.12.13

### Full Name:

Shahin Saneinejad

### Affiliation:

Axiom Bio

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

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Start by running the provided Python reproductions with DuckDB 1.5.2 and compare their fetchall results with 1.5.1, focusing on CREATE OR REPLACE, PIVOT, and their combination. Done means the combined statement returns the expected result set while the standalone cases continue to pass.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
databases
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
55/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.