duckdb / duckdb/duckdb-python

overwrite parameter to relation.write_csv and write_parquet seems to do nothing

Ouverte
#156 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?

The DuckDBPyRelation methods `write_csv` and `write_parquet` both have a parameter called `overwrite: bool`. Setting it to either False or True does nothing as far as I can tell; the target file is always overwritten if it exists.

I expected setting overwrite=False to raise an error if the target already exists. If it's meant to something else, can you please document what it does?

I can't find a matching parameter in duckdb COPY TO, so maybe it's meant for something else and I'm just confused.

### To Reproduce

```
conn.sql('select * from range(10)').write_csv('/tmp/foo.csv', overwrite=False)
conn.sql('select * from range(10)').write_csv('/tmp/foo.csv', overwrite=False)
```
The file is overwritten two times in a row.

### OS:

Linux

### DuckDB Package Version:

1.4.1

### Python Version:

3.12.12

### Full Name:

Daniel Armak

### Affiliation:

SparkBeyond

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

Reproduisez le problème avec DuckDBPyRelation.write_csv et write_parquet en utilisant les deux appels identiques à write_csv présentés dans le rapport. Suivez le paramètre overwrite depuis ces méthodes de relation jusqu’à l’opération d’écriture et déterminez si overwrite=False doit rejeter une cible existante. Le travail est considéré comme terminé lorsque le paramètre a l’effet attendu, avec une couverture pour les deux méthodes, ou lorsque son comportement est clairement documenté s’il est intentionnel.

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é
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
50/100

Recevez les nouvelles issues par e-mail

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