Re: Bug in COPY FROM backslash escaping multi-byte chars
Kyotaro Horiguchi <horikyota.ntt@gmail.com>
From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: hlinnaka@iki.fi
Cc: john.naylor@enterprisedb.com, pgsql-hackers@postgresql.org
Date: 2021-02-04T01:50:45Z
Lists: pgsql-hackers
At Wed, 3 Feb 2021 15:46:30 +0200, Heikki Linnakangas <hlinnaka@iki.fi> wrote in > On 03/02/2021 15:38, John Naylor wrote: > > On Wed, Feb 3, 2021 at 8:08 AM Heikki Linnakangas <hlinnaka@iki.fi > > <mailto:hlinnaka@iki.fi>> wrote: > > > > > > Hi, > > > > > > While playing with COPY FROM refactorings in another thread, I noticed > > > corner case where I think backslash escaping doesn't work correctly. > > > Consider the following input: > > > > > > \么.foo > > I've seen multibyte delimiters in the wild, so it's not as outlandish > > as it seems. > > We don't actually support multi-byte characters as delimiters or quote > or escape characters: > > postgres=# copy copytest from 'foo' with (delimiter '么'); > ERROR: COPY delimiter must be a single one-byte character > > > The fix is simple enough, so +1. > > Thanks, I'll commit and backpatch shortly. I'm not sure the assumption in the second hunk always holds, but that's fine at least with Shift-JIS and -2004 since they are two-byte encoding. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
Commits
-
Fix backslash-escaping multibyte chars in COPY FROM.
- c87cbd51ee1d 13.2 landed
- aaf266157d21 9.5.25 landed
- e152ccc7fd59 9.6.21 landed
- c06632e48b35 10.16 landed
- d9b4163c553e 11.11 landed
- 9b0ce895794c 12.6 landed
- c444472af5c2 14.0 landed