Re: Fix number skipping in to_number

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Oliver Ford <ojford@gmail.com>
Cc: Thomas Munro <thomas.munro@enterprisedb.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2017-11-13T21:56:59Z
Lists: pgsql-hackers
Oliver Ford <ojford@gmail.com> writes:
> On Monday, 13 November 2017, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> I don't follow your concern?  If "$" is not the correct currency
>> symbol for the locale, we shouldn't accept it as a match to an L format.
>> Your patch is tightening what we will accept as a match to a G format,
>> so I don't see why you're concerned about backward compatibility in
>> one case but not the other.

> It's a guess as to the likely use case. I would imagine that people are
> likely to use a currency symbol different from the locale, but unlikely to
> use a different group separator. Others might have a different opinion
> though.

Well, if they use a currency symbol different from the locale's, they're
in trouble anyway because the number of bytes might be different.  In most
encodings, symbols other than "$" are probably not 1-byte characters.

At the very least I think we need to constrain it enough that it not
swallow a fractional character.

			regards, tom lane


Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Improve to_date/to_number/to_timestamp behavior with multibyte characters.

  2. Prevent to_number() from losing data when template doesn't match exactly.