Thread: Re: [GENERAL] A mistake generates strange result
Unfortunately, that is true, at least for Postgres 6.4.0: template1=> select text('12345678'::float8); text ----------------------------- Tue May 23 00:21:18 2000 EEST (1 row) Please, guys, take care of this small bug:-) Aleksey On 9 Feb 1999, [ISO-8859-1] St�phane Dupille wrote: > > 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 ! > >
>>>> The query: select text('12345678'::float8); >>>> It returns a date in datetime format !!!!!! Yup, I see it here also with 6.4.2. The current development sources seem OK however: regression=> select text('12345678'::float8); text -------- 12345678 (1 row) So it should be fixed in 6.5. (Thomas, could this be back-patched into 6.4.3?) regards, tom lane
> Unfortunately, that is true, at least for Postgres 6.4.0: > template1=> select text('12345678'::float8); > ----------------------------- > Tue May 23 00:21:18 2000 EEST > Please, guys, take care of this small bug:-) tgl=> select text('12345678'::float8); text -------- 12345678 (1 row) Already done. From the cvs log: revision 1.84 date: 1998/11/17 14:36:51; author: thomas; state: Exp; lines: +34 -15 Add text<->float8 and text<->float4 conversion functions. This will fix the problem reported by Jose' Soareswhen trying to cast a float to text. - Tom
> > Unfortunately, that is true, at least for Postgres 6.4.0: > template1=> select text('12345678'::float8); > > text > ----------------------------- > Tue May 23 00:21:18 2000 EEST > (1 row) > > Please, guys, take care of this small bug:-) > Aleksey Works in the current tree: test=> select text('12345678'::float8); text -------- 12345678 (1 row) test=> -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
> So it should be fixed in 6.5. (Thomas, could this be back-patched > into 6.4.3?) Not likely, since it defined a couple of new procedures in the system tables to do explicit string to float8 conversions. The only v6.4.3-compatible patch we can make is to remove the "binary equivalence" between datetime and float8, which I had put in to allow more date arithmetic (a lazy solution, but it seemed a good idea at the time :/ I have a patch to do that, but have not applied it to either tree yet. - Tom