Re: BUG #17142: COPY ignores client_encoding for octal digit characters
Heikki Linnakangas <hlinnaka@iki.fi>
From: Heikki Linnakangas <hlinnaka@iki.fi>
To: vilarion@illarion.org, pgsql-bugs@lists.postgresql.org
Date: 2021-08-12T07:40:35Z
Lists: pgsql-bugs
Attachments
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
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