]> granicus.if.org Git - postgresql/commit
Further fix for psql's code for locale-aware formatting of numeric output.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 25 Sep 2015 04:00:33 +0000 (00:00 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 25 Sep 2015 04:00:51 +0000 (00:00 -0400)
commit49917edadf9d787efbd71b7e1e689eb48c2a1c47
tree3a6ee76608e2b54572fbf9748ca6faff94551358
parent348dd2847fa4a379e452ee00ab2016ec1629202d
Further fix for psql's code for locale-aware formatting of numeric output.

On closer inspection, those seemingly redundant atoi() calls were not so
much inefficient as just plain wrong: the author of this code either had
not read, or had not understood, the POSIX specification for localeconv().
The grouping field is *not* a textual digit string but separate integers
encoded as chars.

We'll follow the existing code as well as the backend's cash.c in only
honoring the first group width, but let's at least honor it correctly.

This doesn't actually result in any behavioral change in any of the
locales I have installed on my Linux box, which may explain why nobody's
complained; grouping width 3 is close enough to universal that it's barely
worth considering other cases.  Still, wrong is wrong, so back-patch.
src/bin/psql/print.c