]> granicus.if.org Git - postgresql/commit
Fix assorted bogosities in cash_in() and cash_out().
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 29 Oct 2011 18:30:59 +0000 (14:30 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 29 Oct 2011 18:30:59 +0000 (14:30 -0400)
commit6cd309bf6acd6f4e3d5d6a62b969aef5abab202e
tree2c780ae2b999f632c86d0590cc338a9523de2293
parentaf0cc0f42ddb79c842d3410f31b32de9477b71e3
Fix assorted bogosities in cash_in() and cash_out().

cash_out failed to handle multiple-byte thousands separators, as per bug
#6277 from Alexander Law.  In addition, cash_in didn't handle that either,
nor could it handle multiple-byte positive_sign.  Both routines failed to
support multiple-byte mon_decimal_point, which I did not think was worth
changing, but at least now they check for the possibility and fall back to
using '.' rather than emitting invalid output.  Also, make cash_in handle
trailing negative signs, which formerly it would reject.  Since cash_out
generates trailing negative signs whenever the locale tells it to, this
last omission represents a fail-to-reload-dumped-data bug.  IMO that
justifies patching this all the way back.
src/backend/utils/adt/cash.c