This patch is in error. Please ignore. I have already sent the corrected patch.
Thanks, wt On Jan 22, 2008 12:50 PM, Warren Turkal <[EMAIL PROTECTED]> wrote: > I added TimeOffset and DateOffset typedefs to get rid of the instances > using the HAVE_INT64_TIMESTAMP define being used to determine the > types of variables or functions in timestamp.c. > --- > src/backend/utils/adt/timestamp.c | 77 > +++++++------------------------------ > src/include/utils/timestamp.h | 4 ++ > 2 files changed, 18 insertions(+), 63 deletions(-) > > diff --git a/src/backend/utils/adt/timestamp.c > b/src/backend/utils/adt/timestamp.c > index 2883caf..f70f86b 100644 > --- a/src/backend/utils/adt/timestamp.c > +++ b/src/backend/utils/adt/timestamp.c > @@ -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; > @@ -1332,11 +1316,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; > > @@ -1537,13 +1517,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 > + DateOffset 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)) > @@ -1586,13 +1561,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; > @@ -1648,19 +1618,13 @@ tm2interval(struct pg_tm * tm, fsec_t fsec, Interval > *span) > return 0; > } > > +static TimeOffset > #ifdef HAVE_INT64_TIMESTAMP > -static int64 > -time2t(const int hour, const int min, const int sec, const fsec_t fsec) > -{ > 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 > +} /* time2t() */ > > static Timestamp > dt2local(Timestamp dt, int tz) > @@ -2032,13 +1996,8 @@ timestamptz_cmp_timestamp(PG_FUNCTION_ARGS) > static int > interval_cmp_internal(Interval *interval1, Interval *interval2) > { > -#ifdef HAVE_INT64_TIMESTAMP > - int64 span1, > + TimeOffset span1, > span2; > -#else > - double span1, > - span2; > -#endif > > span1 = interval1->time; > span2 = interval2->time; > @@ -2378,11 +2337,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)); > @@ -2450,11 +2405,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; > diff --git a/src/include/utils/timestamp.h b/src/include/utils/timestamp.h > index 6eec76d..6a404a1 100644 > --- a/src/include/utils/timestamp.h > +++ b/src/include/utils/timestamp.h > @@ -36,9 +36,13 @@ > #ifdef HAVE_INT64_TIMESTAMP > typedef int64 Timestamp; > typedef int64 TimestampTz; > +typedef int64 TimeOffset; > +typedef int DateOffset; > #else > typedef double Timestamp; > typedef double TimestampTz; > +typedef double TimeOffset; > +typedef double DateOffset; > #endif > > typedef struct > -- > 1.5.2.5 > > ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend