Re: Datum as struct

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Datum as struct
Date: 2025-08-06 11:07:34
Message-ID: 2572e720-8e94-40eb-a744-9a765189abbe@eisentraut.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 05.08.25 20:06, Peter Eisentraut wrote:
> > 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.

This is new in PG18, so I'm continuing the discussion in the original
thread:
https://www.postgresql.org/message-id/flat/CAAvxfHc4084dGzEJR0_pBZkDuqbPGc5wn7gK_M0XR_kRiCdUJQ%40mail.gmail.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message vignesh C 2025-08-06 11:23:21 Re: Add support for specifying tables in pg_createsubscriber.
Previous Message Peter Eisentraut 2025-08-06 11:07:25 Re: date_trunc invalid units with infinite value