Re: BUG #17142: COPY ignores client_encoding for octal digit characters
vilarion@illarion.org
From: vilarion@illarion.org
To: pgsql-bugs@lists.postgresql.org
Date: 2021-08-12T08:01:56Z
Lists: pgsql-bugs
On 12.08.2021 09:40, Heikki Linnakangas wrote: > On 12/08/2021 00:24, PG Bug reporting form wrote: >> Characters in octal digits should be possible as per >> https://www.postgresql.org/docs/13/sql-copy.html >> When using characters directly (char buffer[] = "\304\366\337") the >> expected >> output is displayed. >> >> My apologies if I misunderstood something. > > The code is pretty clear that the \123 and \x12 escapes are evaluated > after encoding conversion. That means, the escapes are interpreted > using the database encoding, regardless of client encoding. The > documentation doesn't say anything about that, though. We should fix > the docs. How does the attached patch look? > > You could get weird results if you use the escapes for some bytes in a > multi-byte character. Mostly you'd get invalid byte sequence errors, > but I think with the right combination of the client and database > encodings, it could get more strange. I think the wording in the > attached docs patch is enough to cover that, though. > > - Heikki Thanks for clarifying! This patch to the docs will allow me to file a bug report against the library I am using (pqxx). Andreas
Commits
-
doc: \123 and \x12 escapes in COPY are in database encoding.
- 087c1a2f119b 9.6.24 landed
- 7d6d1555926a 10.19 landed
- b889d6c7196d 11.14 landed
- 9454265eb26a 12.9 landed
- c9e75c21d8c9 13.5 landed
- f90c05959ec3 14.0 landed
- e9a79c220bf5 15.0 landed