@ -8,7 +8,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $ Header : / cvsroot / pgsql / src / backend / utils / adt / timestamp . c , v 1.52 2001 / 10 / 03 05 : 29 : 24 thomas Exp $
* $ Header : / cvsroot / pgsql / src / backend / utils / adt / timestamp . c , v 1.53 2001 / 10 / 03 15 : 50 : 48 tgl Exp $
*
*
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
*/
@ -32,8 +32,7 @@
static double time2t ( const int hour , const int min , const double sec ) ;
static double time2t ( const int hour , const int min , const double sec ) ;
static int EncodeSpecialTimestamp ( Timestamp dt , char * str ) ;
static int EncodeSpecialTimestamp ( Timestamp dt , char * str ) ;
static Timestamp dt2local ( Timestamp dt , int timezone ) ;
static Timestamp dt2local ( Timestamp dt , int timezone ) ;
static void
static void AdjustTimestampForTypmod ( Timestamp * time , int32 typmod ) ;
AdjustTimestampForTypmod ( Timestamp * time , int32 typmod ) ;
/*****************************************************************************
/*****************************************************************************
@ -138,7 +137,6 @@ timestamp_scale(PG_FUNCTION_ARGS)
result = timestamp ;
result = timestamp ;
if ( ! TIMESTAMP_NOT_FINITE ( result ) )
AdjustTimestampForTypmod ( & result , typmod ) ;
AdjustTimestampForTypmod ( & result , typmod ) ;
PG_RETURN_TIMESTAMP ( result ) ;
PG_RETURN_TIMESTAMP ( result ) ;
@ -147,7 +145,8 @@ timestamp_scale(PG_FUNCTION_ARGS)
static void
static void
AdjustTimestampForTypmod ( Timestamp * time , int32 typmod )
AdjustTimestampForTypmod ( Timestamp * time , int32 typmod )
{
{
if ( ( typmod > = 0 ) & & ( typmod < = 13 ) )
if ( ! TIMESTAMP_NOT_FINITE ( * time ) & &
( typmod > = 0 ) & & ( typmod < = 13 ) )
{
{
static double TimestampScale = 1 ;
static double TimestampScale = 1 ;
static int32 TimestampTypmod = 0 ;
static int32 TimestampTypmod = 0 ;
@ -157,8 +156,6 @@ AdjustTimestampForTypmod(Timestamp *time, int32 typmod)
* time = ( rint ( ( ( double ) * time ) * TimestampScale ) / TimestampScale ) ;
* time = ( rint ( ( ( double ) * time ) * TimestampScale ) / TimestampScale ) ;
}
}
return ;
}
}
@ -261,7 +258,6 @@ timestamptz_scale(PG_FUNCTION_ARGS)
result = timestamp ;
result = timestamp ;
if ( ! TIMESTAMP_NOT_FINITE ( result ) )
AdjustTimestampForTypmod ( & result , typmod ) ;
AdjustTimestampForTypmod ( & result , typmod ) ;
PG_RETURN_TIMESTAMPTZ ( result ) ;
PG_RETURN_TIMESTAMPTZ ( result ) ;