duckdb / duckdb/duckdb-python

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

Offen
#535 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
needs triage
Vorherrschende Sprache
Python
Sterne
187
Forks
112
Ø Merge
13 Std. 29 Min.
Gemergte PRs (30 T.)
17

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
databases
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
55/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.