Re: Datum as struct - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: Datum as struct
Date
Msg-id 2d320b6f-b4af-4fbc-9eec-5d0fa15d187b@eisentraut.org
Whole thread Raw
In response to Datum as struct  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: Datum as struct
List pgsql-hackers
 > diff --git a/src/backend/utils/adt/timestamp.c 
b/src/backend/utils/adt/timestamp.c
 > index 25cff56c3d0..e640b48205b 100644
 > --- a/src/backend/utils/adt/timestamp.c
 > +++ b/src/backend/utils/adt/timestamp.c
 > @@ -4954,7 +4954,7 @@ timestamptz_trunc_internal(text *units, 
TimestampTz timestamp, pg_tz *tzp)
 >                  case DTK_SECOND:
 >                  case DTK_MILLISEC:
 >                  case DTK_MICROSEC:
 > -                    PG_RETURN_TIMESTAMPTZ(timestamp);
 > +                    return timestamp;
 >                     break;
 >
 >                 default:

This one is an actual bug.  With int64-pass-by-reference, 
PG_RETURN_TIMESTAMPTZ() returns a newly allocated address.  This is 
easily reproduced by

SELECT date_trunc( 'week', timestamp with time zone 'infinity' );

which will return a random value on 32-bit systems.  (It correctly 
returns 'infinity' otherwise.)

I'll see about backpatching fixes for this.





pgsql-hackers by date:

Previous
From: Masahiko Sawada
Date:
Subject: Re: Add backup_type to pg_stat_progress_basebackup
Next
From: Tom Lane
Date:
Subject: headerscheck warnings with late-model gcc