Re: select to_number('1,000', '999,999');
Karel Zak <zakkr@zf.jcu.cz>
From: Karel Zak <zakkr@zf.jcu.cz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Stephan Szabo <sszabo@megazone.bigpanda.com>, David Schweikert <dws@ee.ethz.ch>, pgsql-bugs@postgresql.org
Date: 2004-11-23T08:39:21Z
Lists: pgsql-bugs
On Mon, 2004-11-22 at 11:08 -0500, Tom Lane wrote:
> Stephan Szabo <sszabo@megazone.bigpanda.com> writes:
> > No, but I think you're supposed to use FM in such cases.
> >
> > select to_number(1000, 'FM999,999');
>
> Good point --- I had forgot about FM. In that case there *is* a bug
> here, but I'm not sure if it's with to_char or to_number:
>
> regression=# select to_number(to_char(1000, 'FM999,999'),'FM999,999');
> to_number
> -----------
> 1000
> (1 row)
>
> regression=# select to_number(to_char(1000, '999,999'),'999,999');
> to_number
> -----------
> 100
> (1 row)
It's to_number() bug. I'm not sure if now (before release) is good time
to fix it. The code of to_number() is not stable for changes and maybe
we can fix this bug add some other new...
I already work on new version for next release. It will use
unit-tests -- I hope it will prevent a lot of bugs like this.
> Whatever your opinion is about the behavior of the non-FM format, surely
> to_char and to_number should be inverses.
Yes.
Karel
--
Karel Zak
http://home.zf.jcu.cz/~zakkr