From: | Teodor Sigaev <teodor(at)sigaev(dot)ru> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: int64/double for time/timestamp |
Date: | 2005-02-25 15:25:11 |
Message-ID: | 421F4357.1080604@sigaev.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> Urgh. This is clearly a bug. All the code in utils/adt seems to be
> correctly set up to treat TimeADT as an integral value, but then the two
> macros quoted are converting the value to float8 and back again ... so
> what's actually on disk is the float8 equivalent of what the int64 value
> is supposed to be :-(. As long as the macros are used *consistently* to
> fetch and store time datums, no one would notice --- you could only see
> a difference if the int64 values got large enough to not be represented
> completely accurately as floats, which I believe is impossible for type
> time.
>
> So the fact that you're seeing a bug in btree_gist suggests that
> someplace you're cheating and bypassing the FooGetDatum/DatumGetFoo
> macros.
>
> We'll obviously want to fix this going forward for efficiency reasons,
> but it's an initdb-forcer because it'll change the on-disk
> representation of time columns. So we can't change it in 8.0 or before.
So, will we do it? I can do, but I don't know: Is there a place which contains
storage version (except file PG_VERSION)?
--
Teodor Sigaev E-mail: teodor(at)sigaev(dot)ru
WWW: http://www.sigaev.ru/
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2005-02-25 15:26:05 | Re: UTF8 or Unicode |
Previous Message | Tom Lane | 2005-02-25 15:23:16 | Re: Where are we on stored procedures? |