public inbox for [email protected]
help / color / mirror / Atom feedFrom: Peter Eisentraut <[email protected]>
To: Jianghua Yang <[email protected]>
To: [email protected]
Subject: Re: [PATCH] Fix wrong argument to SOFT_ERROR_OCCURRED in timestamptz_date
Date: Wed, 25 Mar 2026 07:16:26 +0100
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAAZLFmSGti716gWeY=DCZ9TTVOixnHZ4_4V4tDzoeE86D64vOA@mail.gmail.com>
References: <CAAZLFmSGti716gWeY=DCZ9TTVOixnHZ4_4V4tDzoeE86D64vOA@mail.gmail.com>
On 24.03.26 16:44, Jianghua Yang wrote:
> Hi hackers,
>
> I found a small bug in commit e2f289e5b9b ("Make many cast functions
> error safe").
>
> In timestamptz_date(), the SOFT_ERROR_OCCURRED() check mistakenly
> uses fcinfo->args instead of fcinfo->context:
>
> result = timestamptz2date_safe(timestamp, fcinfo->context);
> if (SOFT_ERROR_OCCURRED(fcinfo->args)) /* should be fcinfo->context */
> PG_RETURN_NULL();
>
> fcinfo->args is a NullableDatum[] array, not a Node *. The
> SOFT_ERROR_OCCURRED macro casts its argument to Node * and reads
> the NodeTag field. When given fcinfo->args, it interprets the first
> argument's Datum value (a TimestampTz) as a NodeTag, which will
> almost never match T_ErrorSaveContext. This causes the soft error
> check to always evaluate to false.
>
> As a result, when the timestamptz-to-date conversion encounters an
> overflow in error-safe mode, the function returns a wrong date value
> instead of the expected NULL.
>
> All three sibling functions modified in the same commit (date_timestamp,
> timestamp_date, date_timestamptz) correctly use fcinfo->context.
> This appears to be a copy-paste oversight.
>
> The fix is a one-line change: fcinfo->args → fcinfo->context.
committed the fix, thanks
view thread (5+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected]
Subject: Re: [PATCH] Fix wrong argument to SOFT_ERROR_OCCURRED in timestamptz_date
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox