From 64dff0beac3c76dd7035bfaa2e4357aa4798cc96 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 4 Oct 2001 14:49:57 +0000 Subject: [PATCH] Fix some problems in new variable-resolution-timestamp code. --- src/backend/utils/adt/date.c | 14 +++++++++----- src/backend/utils/adt/timestamp.c | 19 +++++++++++++------ 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c index d35849cd62..762f6e0fbe 100644 --- a/src/backend/utils/adt/date.c +++ b/src/backend/utils/adt/date.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.59 2001/10/03 05:29:24 thomas Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.60 2001/10/04 14:49:57 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -920,8 +920,10 @@ text_time(PG_FUNCTION_ARGS) *dp++ = *sp++; *dp = '\0'; - return DirectFunctionCall1(time_in, - CStringGetDatum(dstr)); + return DirectFunctionCall3(time_in, + CStringGetDatum(dstr), + ObjectIdGetDatum(InvalidOid), + Int32GetDatum(-1)); } @@ -1448,8 +1450,10 @@ text_timetz(PG_FUNCTION_ARGS) *dp++ = *sp++; *dp = '\0'; - return DirectFunctionCall1(timetz_in, - CStringGetDatum(dstr)); + return DirectFunctionCall3(timetz_in, + CStringGetDatum(dstr), + ObjectIdGetDatum(InvalidOid), + Int32GetDatum(-1)); } /* timetz_zone() diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index 112e8a26d6..fbd85df787 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.53 2001/10/03 15:50:48 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.54 2001/10/04 14:49:57 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -152,7 +152,10 @@ AdjustTimestampForTypmod(Timestamp *time, int32 typmod) static int32 TimestampTypmod = 0; if (typmod != TimestampTypmod) - TimestampScale = pow(10, typmod); + { + TimestampScale = pow(10.0, typmod); + TimestampTypmod = typmod; + } *time = (rint(((double) *time)*TimestampScale)/TimestampScale); } @@ -1716,8 +1719,10 @@ text_timestamp(PG_FUNCTION_ARGS) *dp++ = *sp++; *dp = '\0'; - return DirectFunctionCall1(timestamp_in, - CStringGetDatum(dstr)); + return DirectFunctionCall3(timestamp_in, + CStringGetDatum(dstr), + ObjectIdGetDatum(InvalidOid), + Int32GetDatum(-1)); } @@ -1770,8 +1775,10 @@ text_timestamptz(PG_FUNCTION_ARGS) *dp++ = *sp++; *dp = '\0'; - return DirectFunctionCall1(timestamptz_in, - CStringGetDatum(dstr)); + return DirectFunctionCall3(timestamptz_in, + CStringGetDatum(dstr), + ObjectIdGetDatum(InvalidOid), + Int32GetDatum(-1)); } -- 2.40.0