Skip to content

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

@danarmak

Description

@danarmak

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?

  • Yes, I have

Did you include all relevant configuration to reproduce the issue?

  • Yes, I have

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions