Fix some problems in new variable-resolution-timestamp code.

This commit is contained in:
Tom Lane 2001-10-04 14:49:57 +00:00
parent c4566933b1
commit 64dff0beac
2 changed files with 22 additions and 11 deletions

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * 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++ = *sp++;
*dp = '\0'; *dp = '\0';
return DirectFunctionCall1(time_in, return DirectFunctionCall3(time_in,
CStringGetDatum(dstr)); CStringGetDatum(dstr),
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
} }
@ -1448,8 +1450,10 @@ text_timetz(PG_FUNCTION_ARGS)
*dp++ = *sp++; *dp++ = *sp++;
*dp = '\0'; *dp = '\0';
return DirectFunctionCall1(timetz_in, return DirectFunctionCall3(timetz_in,
CStringGetDatum(dstr)); CStringGetDatum(dstr),
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
} }
/* timetz_zone() /* timetz_zone()

View File

@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * 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; static int32 TimestampTypmod = 0;
if (typmod != TimestampTypmod) if (typmod != TimestampTypmod)
TimestampScale = pow(10, typmod); {
TimestampScale = pow(10.0, typmod);
TimestampTypmod = typmod;
}
*time = (rint(((double) *time)*TimestampScale)/TimestampScale); *time = (rint(((double) *time)*TimestampScale)/TimestampScale);
} }
@ -1716,8 +1719,10 @@ text_timestamp(PG_FUNCTION_ARGS)
*dp++ = *sp++; *dp++ = *sp++;
*dp = '\0'; *dp = '\0';
return DirectFunctionCall1(timestamp_in, return DirectFunctionCall3(timestamp_in,
CStringGetDatum(dstr)); CStringGetDatum(dstr),
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
} }
@ -1770,8 +1775,10 @@ text_timestamptz(PG_FUNCTION_ARGS)
*dp++ = *sp++; *dp++ = *sp++;
*dp = '\0'; *dp = '\0';
return DirectFunctionCall1(timestamptz_in, return DirectFunctionCall3(timestamptz_in,
CStringGetDatum(dstr)); CStringGetDatum(dstr),
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
} }