On Fri, Jan 7, 2011 at 15:54, Ramanujam <innomotive@gmail.com> wrote:
> [Release]: 9.1Alpha3. Binaries compiled with mingw-32 (gcc 4.4.0) on
> i686 without zlib support.
> [Test]: a) Check feature E.1.4.7.2 in 9.1Alpha3 release notes
> (Monetary data type). b) Documentation mistake(?)
>
> [Results]: Documentation states that integer literals are allowed
> values for input. I am getting the following error:
The docs is:
http://developer.postgresql.org/pgdocs/postgres/datatype-money.html
| Input is accepted in a variety of formats,
| including integer and floating-point literals
The reported issue doesn't depend on lc_monetary.
It comes from missing cast support from integer to money.
Should we have cast to/from integer to numeric? It is inconsistent
that 1::numeric::money is accepted but 1::money is not.
postgres=# SHOW lc_monetary;
lc_monetary
-------------
C
(1 row)
postgres=# SELECT 1::numeric::money;
money
-------
$1.00
(1 row)
postgres=# SELECT 1::integer::money;
ERROR: cannot cast type integer to money
LINE 1: SELECT 1::integer::money;
^
postgres=# SELECT castsource::regtype, casttarget::regtype,
castfunc::regproc, castcontext FROM pg_cast WHERE casttarget =
'money'::regtype;
castsource | casttarget | castfunc | castcontext
------------+------------+----------+-------------
numeric | money | money | a
(1 row)
postgres=# \df money
List of functions
Schema | Name | Result data type | Argument data types | Type
------------+-------+------------------+---------------------+--------
pg_catalog | money | money | numeric | normal
(1 row)
--
Itagaki Takahiro