Re: Re(2): 7.0.3 BUG

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "pgsql-sql" <pgsql-sql(at)fc(dot)emc(dot)com(dot)ph>, Thomas Lockhart <lockhart(at)alumni(dot)caltech(dot)edu>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Re(2): 7.0.3 BUG
Date: 2000-11-25 16:28:58
Message-ID: 568.975169738@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

"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?

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)? Where and how did you obtain
your Postgres files; if you compiled them yourself, how did you
configure and compile?

> 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?

regards, tom lane

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message pgsql-sql 2000-11-27 04:11:07 Re(2): Re(2): 7.0.3 BUG
Previous Message pgsql-sql 2000-11-25 07:22:15 Re(2): 7.0.3 BUG