]> 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:01:14 +0000 (00:01 -0400)
commitc48623d8db8558036771e9ee0eeff132f8ea30f8
tree14f14848c389725ee5749f8f0a25572ad88f4cc6
parent7ddadacec4ddea5d0b2e7452ec7adccd015c3bb6
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