A funny story about horology regression test failures... - Mailing list pgsql-hackers

From Brian E. Pangburn
Subject A funny story about horology regression test failures...
Date
Msg-id b6tai4$1084$1@news.hub.org
Whole thread Raw
List pgsql-hackers
So, there I was upgrading my DB server from 7.3.1. to 7.3.2 and like a good
little admin, I recompiled my sources and ran the regression tests.  Lo and
behold for the first time in several years of running regression tests, I
encountered a horology error.  I've had two successful 7.3.2 regression
tests on other servers and was a bit puzzled.

Well, I decided to search around the hackers list and discovered a thread
discussing a glitch in src/bin/psql/common.c.  "I can patch that!" I thought
so off into my vi editor I went.  I made the changes, recompiled, and, well,
there was the same error.  Damn.

"Hmmm, guess I'll have a look at regression.diffs now," I said (of course I
probably should have started there).

Here's what I got:


======================================================================

*** ./expected/horology.out Wed Sep 18 16:35:25 2002
--- ./results/horology.out Mon Apr  7 20:54:47 2003
***************
*** 531,537 **** SELECT (timestamp with time zone 'today' = (timestamp with time zone
'yesterday' + interval '1 day')) as "True";  True ------
!  t (1 row)
 SELECT (timestamp with time zone 'today' = (timestamp with time zone
'tomorrow' - interval '1 day')) as "True";
--- 531,537 ---- SELECT (timestamp with time zone 'today' = (timestamp with time zone
'yesterday' + interval '1 day')) as "True";  True ------
!  f (1 row)
 SELECT (timestamp with time zone 'today' = (timestamp with time zone
'tomorrow' - interval '1 day')) as "True";
***************
*** 543,549 **** SELECT (timestamp with time zone 'tomorrow' = (timestamp with time zone
'yesterday' + interval '2 days')) as "True";  True ------
!  t (1 row)
 SELECT (timestamp with time zone 'tomorrow' > 'now') as "True";
--- 543,549 ---- SELECT (timestamp with time zone 'tomorrow' = (timestamp with time zone
'yesterday' + interval '2 days')) as "True";  True ------
!  f (1 row)
 SELECT (timestamp with time zone 'tomorrow' > 'now') as "True";

======================================================================

Wait a second, this test is verifying elapsed time intervals over the past
few days!  Unfortunately, the elapsed time is NOT one day when you crossover
into DAYLIGHT SAVINGS TIME!  Bumped my system clock by a few days and the
tests passed with flying colors.

Moral of the story...
Don't run regression tests a few days before/after a time change!



pgsql-hackers by date:

Previous
From: "Ron Peacetree"
Date:
Subject: Re: Anyone know why PostgreSQL doesn't support 2 phase execution?
Next
From: Dennis Gearon
Date:
Subject: Re: [GENERAL] FK deadlock problem addressed