Re: dividing money by money

Поиск
Список
Период
Сортировка
От Kevin Grittner
Тема Re: dividing money by money
Дата
Msg-id 4BB310E50200002500030262@gw.wicourts.gov
обсуждение исходный текст
Ответ на Re: dividing money by money  (Chris Travers <chris@metatrontech.com>)
Ответы Re: dividing money by money
Список 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 по дате отправления:

Предыдущее
От: "Teodor Buchner"
Дата:
Сообщение: BUG #5400: Columns count mismatch in RULE with subquery
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #5400: Columns count mismatch in RULE with subquery