Re: monetary bug

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

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Mahmoud Taghizadeh <m_taghi@yahoo.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2004-08-22T17:29:14Z
Lists: pgsql-hackers
Mahmoud Taghizadeh <m_taghi@yahoo.com> writes:
> a dirty method to fix this bug is to replace following
> line 
> if (isdigit((unsigned char) *s) && dec < fpoint )
> with 
> if (isdigit((unsigned char) *s) && ((dec < fpoint) ||
> fpoint == 0))

This patch is wrong.  Something involving "!seen_dot || dec < fpoint"
would probably be better.  On the other hand, I can see half a dozen
other brokennesses in that routine on idly glancing over it :-(

Are you aware that the monetary type is deprecated and is going to be
dropped entirely pretty soon?  I would not recommend that you spend
any time on it, unless you want to commit to doing a wholesale rewrite.
Store your financial data in NUMERIC columns instead --- no overflow
worries, for one thing.

			regards, tom lane