Re: to_char/to_number loses sign

Karel Zak <zakkr@zf.jcu.cz>

From: Karel Zak <zakkr@zf.jcu.cz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Eisentraut <peter_e@gmx.net>, List pgsql-hackers <pgsql-hackers@postgreSQL.org>
Date: 2004-10-25T13:30:22Z
Lists: pgsql-hackers

Attachments

On Sat, 2004-10-23 at 17:25 -0400, Tom Lane wrote:
> Peter Eisentraut <peter_e@gmx.net> writes:
> > SELECT to_number('485-', '999S');
> >  to_number
> > -----------
> >        485
> 
> > Is this a bug or intentional?
> 
> Tracing through this, it looks like the problem is that NUM_processor()
> has no switch case for NUM_S (nor does the default case raise an error,
> which seems a risky practice to me).
> 
> Karel, can you verify this and submit a fix?

Yes, you're right. It strange, but NUM_S missing there. The conversion
from string to number is less stable part of formatting.c...

I have already 2000 lines of code of new generation of to_..()
functions. But all will available in 8.1.

The patch is in the attachment.

	Karel

-- 
Karel Zak
http://home.zf.jcu.cz/~zakkr