diff options
author | Bruce Momjian <bruce@momjian.us> | 2001-02-13 14:32:52 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2001-02-13 14:32:52 +0000 |
commit | 7582bd91cb4215a2efaf069630503cee66e2ea4d (patch) | |
tree | 5090233c242efc6f3ee01ebd4a23c73ac0bea4f0 /src/backend/utils/adt | |
parent | 35273825dc71329bca7dfcd2575fbc307de1a181 (diff) | |
download | postgresql-7582bd91cb4215a2efaf069630503cee66e2ea4d.tar.gz postgresql-7582bd91cb4215a2efaf069630503cee66e2ea4d.zip |
Please apply the following patch to fix AIX and IRIX timestamp behavior
as previously discussed.
It makes AIX and IRIX not use DST for dates before 1970.
The following expected files need to be removed from the regression tests,
they contain wrong results and are not needed any more.
src/test/regress/expected/horology-1947-PDT.out
src/test/regress/expected/tinterval-1947-PDT.out
src/test/regress/expected/abstime-1947-PDT.out
Zeugswetter Andreas
Diffstat (limited to 'src/backend/utils/adt')
-rw-r--r-- | src/backend/utils/adt/nabstime.c | 12 | ||||
-rw-r--r-- | src/backend/utils/adt/timestamp.c | 10 |
2 files changed, 20 insertions, 2 deletions
diff --git a/src/backend/utils/adt/nabstime.c b/src/backend/utils/adt/nabstime.c index 434b5c95a83..31117389b0a 100644 --- a/src/backend/utils/adt/nabstime.c +++ b/src/backend/utils/adt/nabstime.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.80 2001/01/24 19:43:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.81 2001/02/13 14:32:52 momjian Exp $ * * NOTES * @@ -205,7 +205,17 @@ abstime2tm(AbsoluteTime _time, int *tzp, struct tm * tm, char *tzn) #if defined(HAVE_TM_ZONE) || defined(HAVE_INT_TIMEZONE) if (tzp != NULL) + { tx = localtime((time_t *) &time); +# ifdef NO_MKTIME_BEFORE_1970 + if (tx->tm_year < 70 && tx->tm_isdst == 1) + { + time -= 3600; + tx = localtime((time_t *) &time); + tx->tm_isdst = 0; + } +# endif + } else { tx = gmtime((time_t *) &time); diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index e3facb7f1e4..a01a790124f 100644 --- a/src/backend/utils/adt/timestamp.c +++ b/src/backend/utils/adt/timestamp.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.44 2001/01/24 19:43:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.45 2001/02/13 14:32:52 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -315,6 +315,14 @@ timestamp2tm(Timestamp dt, int *tzp, struct tm * tm, double *fsec, char **tzn) #if defined(HAVE_TM_ZONE) || defined(HAVE_INT_TIMEZONE) tx = localtime(&utime); +# ifdef NO_MKTIME_BEFORE_1970 + if (tx->tm_year < 70 && tx->tm_isdst == 1) + { + utime -= 3600; + tx = localtime(&utime); + tx->tm_isdst = 0; + } +# endif tm->tm_year = tx->tm_year + 1900; tm->tm_mon = tx->tm_mon + 1; tm->tm_mday = tx->tm_mday; |