summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/adt/nabstime.c12
-rw-r--r--src/backend/utils/adt/timestamp.c10
-rw-r--r--src/include/port/aix.h1
-rw-r--r--src/include/port/irix5.h1
-rw-r--r--src/test/regress/resultmap8
5 files changed, 24 insertions, 8 deletions
diff --git a/src/backend/utils/adt/nabstime.c b/src/backend/utils/adt/nabstime.c
index 434b5c95a8..31117389b0 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 e3facb7f1e..a01a790124 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;
diff --git a/src/include/port/aix.h b/src/include/port/aix.h
index 782d84bb91..5e4f70a790 100644
--- a/src/include/port/aix.h
+++ b/src/include/port/aix.h
@@ -1,6 +1,7 @@
#define CLASS_CONFLICT
#define DISABLE_XOPEN_NLS
#define HAS_TEST_AND_SET
+#define NO_MKTIME_BEFORE_1970
typedef unsigned int slock_t;
#include <sys/machine.h> /* ENDIAN definitions for network
diff --git a/src/include/port/irix5.h b/src/include/port/irix5.h
index 6687960049..ff91fc2922 100644
--- a/src/include/port/irix5.h
+++ b/src/include/port/irix5.h
@@ -1,2 +1,3 @@
#define HAS_TEST_AND_SET
+#define NO_MKTIME_BEFORE_1970
typedef unsigned long slock_t;
diff --git a/src/test/regress/resultmap b/src/test/regress/resultmap
index c8f0a4302c..417412d37f 100644
--- a/src/test/regress/resultmap
+++ b/src/test/regress/resultmap
@@ -1,5 +1,3 @@
-abstime/.*-aix4=abstime-1947-PDT
-abstime/.*-irix6=abstime-1947-PDT
abstime/alpha.*-dec-osf=abstime-solaris-1947
abstime/i.86-pc-solaris=abstime-solaris-1947
abstime/sparc-sun-solaris=abstime-solaris-1947
@@ -31,8 +29,8 @@ geometry/sparc-sun-solaris=geometry-solaris-precision
geometry/sparc.*-linux-gnu=geometry-solaris-precision
geometry/alpha.*-linux-gnu=geometry-solaris-precision
geometry/.*-beos=geometry-intel-beos
-horology/.*-aix4=horology-1947-PDT
-horology/.*-irix6=horology-1947-PDT
+horology/.*-aix4=horology-no-DST-before-1970
+horology/.*-irix6=horology-no-DST-before-1970
horology/alpha.*-dec-osf=horology-solaris-1947
horology/.*-cygwin=horology-no-DST-before-1970
horology/hppa=horology-no-DST-before-1970
@@ -74,8 +72,6 @@ int4/sparc-sun-solaris=int4-too-large
int4/.*-sysv5uw=int4-too-large
int4/.*-beos=int4-range-error
int8/.*-qnx=int8-exp-three-digits
-tinterval/.*-aix4=tinterval-1947-PDT
-tinterval/.*-irix6=tinterval-1947-PDT
tinterval/alpha.*-dec-osf=tinterval-solaris-1947
tinterval/i.86-pc-solaris=tinterval-solaris-1947
tinterval/sparc-sun-solaris=tinterval-solaris-1947