Thread: Re: [PATCHES] [PATCH] Contrib C source for casting MONEY to INT[248] and FLOAT[48]

"David D. Kilzer" <ddkilzer@lubricants-oil.com> writes:
> Attached please find a patch to cast (convert) the MONEY type to any one
> of the following types:
>   INT2, INT4, INT8, FLOAT4, FLOAT8

Hmm.  It strikes me as a rather bad idea to introduce implicit casting
of MONEY to all these other types --- I suspect that's going to create
a bunch of parsing ambiguities.

> I wrote this because I needed to convert MONEY to a standard decimal
> value and didn't want to do it on the client in Perl, and I didn't want
> to use a plpgsql function that used string parsing.

Seems like a better answer is to use NUMERIC instead of MONEY in the
first place...

            regards, tom lane

Re: [PATCHES] [PATCH] Contrib C source for casting MONEY to INT[248] and FLOAT[48]

From
"David D. Kilzer"
Date:
On Tue, Jun 19, 2001 at 10:20:18AM -0400, Tom Lane wrote:

> "David D. Kilzer" <ddkilzer@lubricants-oil.com> writes:
> > Attached please find a patch to cast (convert) the MONEY type to any one
> > of the following types:
> >   INT2, INT4, INT8, FLOAT4, FLOAT8
>
> Hmm.  It strikes me as a rather bad idea to introduce implicit casting
> of MONEY to all these other types --- I suspect that's going to create
> a bunch of parsing ambiguities.

Well, that's why the patch puts the code under contrib/.  I meant this
to be optional code that could be added to PostgreSQL if people needed
the functionality, i.e., for transition work.  I'm sorry if that wasn't
clear in my original post.

Should I have not submitted this code to the pgsql-patches list?

> > I wrote this because I needed to convert MONEY to a standard decimal
> > value and didn't want to do it on the client in Perl, and I didn't want
> > to use a plpgsql function that used string parsing.
>
> Seems like a better answer is to use NUMERIC instead of MONEY in the
> first place...

The reason for this (in my case) was covered in the next paragraph:

> > I wouldn't have used the MONEY type in the first place if I had known it
> > was deprecated, but I didn't see this notice in the v7.0.3 documentation
> > two to three months ago when designing the database.

So for those of us who accidentally used the MONEY type (or had legacy
tables that used the MONEY type), these functions (especially the
FLOAT8 type conversion) are extremely useful for transition work.

I don't really care if the code is included with future PostgreSQL
releases or not.  I just wanted to save other people some time if or
when they decide to transition off the MONEY type.

Dave