duckdb / duckdb/duckdb-python

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

Ouverte
#535 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
needs triage
Langage dominant
Python
Étoiles
187
Forks
112
Merge moyen
13 h 29 min
PR mergées (30 j)
17

Description

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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par exécuter les reproductions Python fournies avec DuckDB 1.5.2 et comparez leurs résultats de fetchall avec ceux de 1.5.1, en vous concentrant sur CREATE OR REPLACE, PIVOT et leur combinaison. C’est terminé lorsque l’instruction combinée renvoie l’ensemble de résultats attendu, tandis que les cas autonomes continuent de réussir.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
databases
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
55/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.