Re: Tightening isspace() tests where behavior should match SQL parser
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: pgsql-hackers@postgreSQL.org
Date: 2017-05-23T20:44:23Z
Lists: pgsql-hackers
Heikki Linnakangas <hlinnaka@iki.fi> writes: > On 05/20/2017 01:48 PM, Tom Lane wrote: >> Attached is a proposed patch. I'm vacillating on whether to >> back-patch this --- it will fix a reported bug, but it seems >> at least somewhat conceivable that it will also break cases >> that were working acceptably before. Thoughts? > +1 for back-patching. If I understand correctly, it would change the > behavior when you pass a string with non-ASCII leading or trailing > whitespace characters to those functions. I suppose that can happen, but > it's only pure luck if the current code happens to work in that case. Well, it'd work properly for e.g. no-break space in LATINn. But that seems like a very narrow use-case, and probably not enough to justify the misbehavior you might get in multi-byte character sets. A compromise possibly worth considering is to apply isspace() only in single-byte encodings. I think that's more complication than it's worth, but others might think differently. regards, tom lane
Commits
-
Tighten checks for whitespace in functions that parse identifiers etc.
- a3043d363483 9.4.13 landed
- a047270d5473 9.2.22 landed
- 971a158e67fd 9.3.18 landed
- 2c5e3fab3ef9 9.5.8 landed
- 9ae2661fe1fe 10.0 landed
- 8527132e5278 9.6.4 landed