diff options
Diffstat (limited to 'src/backend/utils/adt/timestamp.c')
-rw-r--r-- | src/backend/utils/adt/timestamp.c | 83 |
1 files changed, 17 insertions, 66 deletions
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index f450922f26e..8ca6f998c98 100644 --- a/src/backend/utils/adt/timestamp.c +++ b/src/backend/utils/adt/timestamp.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.185 2008/02/17 02:09:28 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.186 2008/03/21 01:31:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -44,11 +44,7 @@ TimestampTz PgStartTime; -#ifdef HAVE_INT64_TIMESTAMP -static int64 time2t(const int hour, const int min, const int sec, const fsec_t fsec); -#else -static double time2t(const int hour, const int min, const int sec, const fsec_t fsec); -#endif +static TimeOffset time2t(const int hour, const int min, const int sec, const fsec_t fsec); static int EncodeSpecialTimestamp(Timestamp dt, char *str); static Timestamp dt2local(Timestamp dt, int timezone); static void AdjustTimestampForTypmod(Timestamp *time, int32 typmod); @@ -977,11 +973,7 @@ AdjustIntervalForTypmod(Interval *interval, int32 typmod) } else if (range == INTERVAL_MASK(MINUTE)) { -#ifdef HAVE_INT64_TIMESTAMP - int64 hour; -#else - double hour; -#endif + TimeOffset hour; interval->month = 0; interval->day = 0; @@ -998,11 +990,7 @@ AdjustIntervalForTypmod(Interval *interval, int32 typmod) } else if (range == INTERVAL_MASK(SECOND)) { -#ifdef HAVE_INT64_TIMESTAMP - int64 minute; -#else - double minute; -#endif + TimeOffset minute; interval->month = 0; interval->day = 0; @@ -1076,11 +1064,7 @@ AdjustIntervalForTypmod(Interval *interval, int32 typmod) else if (range == (INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND))) { -#ifdef HAVE_INT64_TIMESTAMP - int64 hour; -#else - double hour; -#endif + TimeOffset hour; interval->month = 0; interval->day = 0; @@ -1342,11 +1326,7 @@ timestamptz_to_str(TimestampTz t) void dt2time(Timestamp jd, int *hour, int *min, int *sec, fsec_t *fsec) { -#ifdef HAVE_INT64_TIMESTAMP - int64 time; -#else - double time; -#endif + TimeOffset time; time = jd; @@ -1547,13 +1527,8 @@ recalc_t: int tm2timestamp(struct pg_tm * tm, fsec_t fsec, int *tzp, Timestamp *result) { -#ifdef HAVE_INT64_TIMESTAMP - int date; - int64 time; -#else - double date, - time; -#endif + TimeOffset date; + TimeOffset time; /* Julian day routines are not correct for negative Julian days */ if (!IS_VALID_JULIAN(tm->tm_year, tm->tm_mon, tm->tm_mday)) @@ -1596,13 +1571,8 @@ tm2timestamp(struct pg_tm * tm, fsec_t fsec, int *tzp, Timestamp *result) int interval2tm(Interval span, struct pg_tm * tm, fsec_t *fsec) { -#ifdef HAVE_INT64_TIMESTAMP - int64 time; - int64 tfrac; -#else - double time; - double tfrac; -#endif + TimeOffset time; + TimeOffset tfrac; tm->tm_year = span.month / MONTHS_PER_YEAR; tm->tm_mon = span.month % MONTHS_PER_YEAR; @@ -1658,19 +1628,15 @@ tm2interval(struct pg_tm * tm, fsec_t fsec, Interval *span) return 0; } -#ifdef HAVE_INT64_TIMESTAMP -static int64 +static TimeOffset time2t(const int hour, const int min, const int sec, const fsec_t fsec) { +#ifdef HAVE_INT64_TIMESTAMP return (((((hour * MINS_PER_HOUR) + min) * SECS_PER_MINUTE) + sec) * USECS_PER_SEC) + fsec; -} /* time2t() */ #else -static double -time2t(const int hour, const int min, const int sec, const fsec_t fsec) -{ return (((hour * MINS_PER_HOUR) + min) * SECS_PER_MINUTE) + sec + fsec; -} /* time2t() */ #endif +} static Timestamp dt2local(Timestamp dt, int tz) @@ -1681,7 +1647,7 @@ dt2local(Timestamp dt, int tz) dt -= tz; #endif return dt; -} /* dt2local() */ +} /***************************************************************************** @@ -2042,13 +2008,8 @@ timestamptz_cmp_timestamp(PG_FUNCTION_ARGS) static int interval_cmp_internal(Interval *interval1, Interval *interval2) { -#ifdef HAVE_INT64_TIMESTAMP - int64 span1, - span2; -#else - double span1, + TimeOffset span1, span2; -#endif span1 = interval1->time; span2 = interval2->time; @@ -2387,12 +2348,7 @@ interval_justify_interval(PG_FUNCTION_ARGS) { Interval *span = PG_GETARG_INTERVAL_P(0); Interval *result; - -#ifdef HAVE_INT64_TIMESTAMP - int64 wholeday; -#else - double wholeday; -#endif + TimeOffset wholeday; int32 wholemonth; result = (Interval *) palloc(sizeof(Interval)); @@ -2459,12 +2415,7 @@ interval_justify_hours(PG_FUNCTION_ARGS) { Interval *span = PG_GETARG_INTERVAL_P(0); Interval *result; - -#ifdef HAVE_INT64_TIMESTAMP - int64 wholeday; -#else - double wholeday; -#endif + TimeOffset wholeday; result = (Interval *) palloc(sizeof(Interval)); result->month = span->month; |