Re: dividing money by money - Mailing list pgsql-bugs

From Kevin Grittner
Subject Re: dividing money by money
Date
Msg-id 4BB310E50200002500030262@gw.wicourts.gov
Whole thread Raw
In response to Re: dividing money by money  (Chris Travers <chris@metatrontech.com>)
Responses Re: dividing money by money
List pgsql-bugs
Chris Travers <chris@metatrontech.com> wrote:

> Just thinking about the more general problem and how things could
> be handled more gracefully...

Sure, but in the meantime, consider:

test=# select '12'::money * '2'::numeric;
 ?column?
----------
   $24.00
(1 row)

test=# select '24'::money / '2'::numeric;
 ?column?
----------
   $12.00
(1 row)

test=# select '24'::money / '12'::money;
ERROR:  operator does not exist: money / money
LINE 1: select '24'::money / '12'::money;
                           ^
HINT:  No operator matches the given name and argument type(s). You
might need to add explicit type casts.

So we support:

a * b = c
c / b = a

but don't even *think* about c / a = b ???

The OP just wanted to add some symmetry to this, so that the
existing class could handle a not-uncommon use case more easily.  As
far as I can see, the implementation of this operator could convert
two int64 values to numeric values and perform numeric division to
get the result.  (I was going to mark the TODO as an easy one.)  I
don't see how this change would affect what you want to do, one way
or the other.

-Kevin

pgsql-bugs by date:

Previous
From: "Teodor Buchner"
Date:
Subject: BUG #5400: Columns count mismatch in RULE with subquery
Next
From: Tom Lane
Date:
Subject: Re: BUG #5400: Columns count mismatch in RULE with subquery