Re: [GENERAL] A mistake generates strange result

jose' soares <sferac@bo.nettuno.it>

From: "jose' soares" <sferac@bo.nettuno.it>
To: Stéphane Dupille <sdupille@i-france.com>
Cc: "pgsql-general@postgreSQL.org" <pgsql-general@postgresql.org>
Date: 1999-02-12T14:06:50Z
Lists: pgsql-hackers

Stéphane Dupille ha scritto:

>         Hi !
>
> "Ricardo J.C.Coelho" <pulsar@truenet-ce.com.br> writes:
> > Just for PgSQL's development group think about....
> > I made a mistake typing a query that generates a strange result
> > (Very strange).
>
> > The query: select text('12345678'::float8);
> > It returns a date in datetime format !!!!!!
>
>         I didn't found any function of name "text" that converts
> float8 to text. So I think Postgres made an implicit cast of the data
> to datatime. So: String->Float8->DateTime->Text. Stranger : I didn't
> found any function to cinvert float to text !
>
> > If you use: select ('12345678'::float8)::text;        everything runs well.
>
>         Here, you made an explicit cast, without the use of any
> function. So your data is casted well.
>
>         Hope this helps !

This seems like a bug, because there's  no a text(float8) built-in function.

hygea=> select text('12345678'::float8);
text
----------------------
2000-05-22 23:21:18+02

but if you create the function like:

create function text(float8) returns text as
'
begin
        return $1;
end;
' language 'plpgsql';
CREATE

select text('12345678.2'::float8);
      text
----------
12345678.2
(1 row)


                               - Jose' -

And behold, I tell you these things that ye may learn wisdom; that ye may
learn that when ye are in the service of your fellow beings ye are only
in the service of your God.                - Mosiah 2:17 -