On Mon, 2003-02-10 at 19:13, Peter Eisentraut wrote:
> Christopher Kings-Lynne writes:
>
> > I found an example of a casting problem in our source code now that we're
> > running 7.3:
> >
> > SELECT CURRENT_DATE - EXTRACT(DOW FROM CURRENT_DATE);
>
> A mathematically sound way to write this would be:
>
> select current_date - extract(dow from current_data) * interval '1 day';
>
> > I'm not sure really why DOW needs to be double precision, but hey...
>
> Extract returns double precision. It can't morph itself based on the
> argument type at run time.
Is this mandates by ANSI ?
PostgreSQL _does_ select function based on argument type
hannu=# create function f(int) returns int as 'select 1' language 'sql';
CREATE
hannu=# create function f(int,int) returns float as 'select 3.1415927'
language 'sql';
CREATE
hannu=# select f(1),f(1,1);f | f
---+-----------1 | 3.1415927
(1 row)
--
Hannu Krosing <hannu@tm.ee>