Re: [BUG] psql: Make \copy from 'text' and 'csv' formats fail on NUL bytes - Mailing list pgsql-hackers

From Joel Jacobson
Subject Re: [BUG] psql: Make \copy from 'text' and 'csv' formats fail on NUL bytes
Date
Msg-id 1862fe76-b826-4215-bf92-0a4c476e6736@app.fastmail.com
Whole thread Raw
In response to Re: [BUG] psql: Make \copy from 'text' and 'csv' formats fail on NUL bytes  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [BUG] psql: Make \copy from 'text' and 'csv' formats fail on NUL bytes
List pgsql-hackers
On Sun, Nov 10, 2024, at 22:37, Tom Lane wrote:
> "Joel Jacobson" <joel@compiler.org> writes:
>> Fix by adjusting handleCopyIn() to use the binary code path also when the copy
>> source is a file (i.e., copystream != pset.cur_cmd_source), even in textual
>> copies.
>
> That seems like a hack, as it also changes the behavior w.r.t.
> prompts and EOF-mark detection, neither for the better.

Hmm, in what way does it change the behavior?
I ran almost all the tests, including the TAP ones, and none of them failed with
this fix. Is there some behavior that is currently not covered by the test suite?

> I'm not really convinced that we need to do anything at all
> about this.

I think this should be fixed, because 0x00 is valid UTF-8 for the Unicode
Character 'NULL' (U+0000), which makes me think there is a risk CSV files
coming from other systems than PostgreSQL, could contain such text strings
which would then silently cause data corruption.

/Joel



pgsql-hackers by date:

Previous
From: Tomas Vondra
Date:
Subject: Re: index prefetching
Next
From: Tom Lane
Date:
Subject: Re: [BUG] psql: Make \copy from 'text' and 'csv' formats fail on NUL bytes