@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $ PostgreSQL : pgsql / src / backend / utils / adt / date . c , v 1.104 2004 / 12 / 31 22 : 01 : 21 pgsq l Exp $
* $ PostgreSQL : pgsql / src / backend / utils / adt / date . c , v 1.105 2005 / 04 / 23 22 : 53 : 05 tg l Exp $
*
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
@ -1869,12 +1869,20 @@ timetz_scale(PG_FUNCTION_ARGS)
static int
timetz_cmp_internal ( TimeTzADT * time1 , TimeTzADT * time2 )
{
/* Primary sort is by true (GMT-equivalent) time */
# ifdef HAVE_INT64_TIMESTAMP
int64 t1 ,
t2 ;
t1 = time1 - > time + ( time1 - > zone * INT64CONST ( 1000000 ) ) ;
t2 = time2 - > time + ( time2 - > zone * INT64CONST ( 1000000 ) ) ;
# else
double t1 ,
t2 ;
/* Primary sort is by true (GMT-equivalent) time */
t1 = time1 - > time + time1 - > zone ;
t2 = time2 - > time + time2 - > zone ;
# endif
if ( t1 > t2 )
return 1 ;
@ -2443,9 +2451,9 @@ timetz_part(PG_FUNCTION_ARGS)
else if ( ( type = = RESERV ) & & ( val = = DTK_EPOCH ) )
{
# ifdef HAVE_INT64_TIMESTAMP
result = ( ( time - > time / 1000000e0 ) - time - > zone ) ;
result = ( ( time - > time / 1000000e0 ) + time - > zone ) ;
# else
result = ( time - > time - time - > zone ) ;
result = ( time - > time + time - > zone ) ;
# endif
}
else