Skip site navigation (1) Skip section navigation (2)

Re(2): Re(2): 7.0.3 BUG

From: "pgsql-sql" <pgsql-sql(at)fc(dot)emc(dot)com(dot)ph>
To: pgsql-sql(at)postgresql(dot)org, tgl(at)sss(dot)pgh(dot)pa(dot)us
Cc: lockhart(at)alumni(dot)caltech(dot)edu
Subject: Re(2): Re(2): 7.0.3 BUG
Date: 2000-11-27 04:11:07
Message-ID: fc.000f56720081cd19000f56720081cd19.81cd2f@fc.emc.com.ph (view raw or flat)
Thread:
Lists: pgsql-sql
tgl(at)sss(dot)pgh(dot)pa(dot)us writes:
>"pgsql-sql" <pgsql-sql(at)fc(dot)emc(dot)com(dot)ph> writes:
>> ERROR:  copy: line 3910, Bad timestamp external representation
>'2000-01-05
>> 00:00:60.00+08'
>
>> Weird because those timestamps were generated by default now().
>
>Weird, all right.  I can get 7.0.2 to emit an incorrect representation
>like that by constructing a fractional-second value that needs to be
>rounded off:
>
>play=> set TimeZone TO 'GMT-8';
>SET VARIABLE
>play=> select  '2000-01-05 00:00:59.00+08'::timestamp + '0.999
>sec'::interval;
>         ?column?
>---------------------------
> 2000-01-05 00:00:60.00+08
>(1 row)
>
>That's clearly a bug.  Evidently the rounding to 2 fractional digits
>needs to be done before we start conversion, not at the end, since in
>the worst case the effects could need to propagate all the way to the
>displayed year.
>
>However, that shouldn't matter for now() results, because AFAIK now()
>results should always be exact integer seconds.  Are you sure you
>weren't doing arithmetic on these values somewhere along the line?

Yes, I'm very sure. 
About the dump file, I made manual changes to all timestamp 
containing "00:00:60.00+08" (changed it to "00:00:00.00+08").
I did this because....
migrate=# select version();
                            version
---------------------------------------------------------------
 PostgreSQL 7.0.2 on i686-pc-linux-gnu, compiled by gcc 2.95.3
(1 row)

migrate=# select '2000-01-05 00:00:60.00+08'::timestamp;
ERROR:  Bad timestamp external representation '2000-01-05 00:00:60.00+08'
migrate=# select '2000-01-05 00:00:00.00+08'::timestamp;
         ?column?
---------------------------
 2000-01-05 00:00:60.00+08
(1 row)


Is there a work-around to this aside from manually changing the dump file?
>
>In any case, I'm pretty sure nothing's changed in the timestamp code
>between 7.0.2 and 7.0.3, and I know of no changes that could explain
>your original report either.  I'm not sure why your update went so
>disastrously --- I'm wondering about possibilities like a corrupted
>download of Postgres.  What platform are you on (I think you said Linux,
>but which release of which distro)?  

Distribution Version:          Linux Mandrake release 7.2 (Odyssey) for
i586
Operating System Version:      #1 Thu Oct 5 13:16:08 CEST 2000
Operating System Release:      2.2.17-21mdk
Processor Type:                i686

>Where and how did you obtain
>your Postgres files; if you compiled them yourself, how did you
>configure and compile?

It was shipped with Mandrake-Linux 7.2
>
>> migrate=# select version();
>>                             version
>> ---------------------------------------------------------------
>>  PostgreSQL 7.0.2 on i686-pc-linux-gnu, compiled by gcc 2.95.3
>
>That's a rather interesting version report, seeing as how there is
>no such gcc release as 2.95.3 according to the GCC project's homepage.
>What compiler are you using exactly, and what confidence do you have
>that it's bug-free?  You wouldn't be using that known-unstable gcc
>that RedHat shipped in their 7.0, would you?

We can be sure that the compiler is relatively bug free because it was
used to recompile the entire Linux distribution...
>

sherwin
>







Responses

pgsql-sql by date

Next:From: Thomas LockhartDate: 2000-11-27 08:16:42
Subject: Re: 7.0.3 BUG
Previous:From: Tom LaneDate: 2000-11-25 16:28:58
Subject: Re: Re(2): 7.0.3 BUG

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group