pgsql: Make many cast functions error safe

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Make many cast functions error safe
Date: 2026-03-24 11:18:02
Message-ID: E1w4zlq-001EBq-0M@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Make many cast functions error safe

This adjusts many C functions underlying casts to support soft errors.
This is in preparation for a future feature where conversion errors in
casts can be caught.

This patch covers cast functions that can be adjusted easily by
changing ereport to ereturn or making other light changes. The
underlying helper functions were already changed to support soft
errors some time ago as part of soft error support in type input
functions.

Other casts and types will require some more work and are being kept
as separate patches.

Author: jian he <jian(dot)universality(at)gmail(dot)com>
Reviewed-by: Amul Sul <sulamul(at)gmail(dot)com>
Reviewed-by: Corey Huinker <corey(dot)huinker(at)gmail(dot)com>
Discussion: https://www.postgresql.org/message-id/flat/CADkLM%3Dfv1JfY4Ufa-jcwwNbjQixNViskQ8jZu3Tz_p656i_4hQ%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/e2f289e5b9b82acaf1523fda827e71b8fc8bd549

Modified Files
--------------
src/backend/executor/execExprInterp.c | 2 +-
src/backend/utils/adt/bytea.c | 8 ++---
src/backend/utils/adt/char.c | 2 +-
src/backend/utils/adt/date.c | 35 +++++++++----------
src/backend/utils/adt/float.c | 8 ++---
src/backend/utils/adt/int.c | 2 +-
src/backend/utils/adt/int8.c | 10 +++---
src/backend/utils/adt/mac8.c | 2 +-
src/backend/utils/adt/network.c | 2 +-
src/backend/utils/adt/numeric.c | 64 +++++++++++++++++++++++++----------
src/backend/utils/adt/timestamp.c | 23 ++++++++++---
src/backend/utils/adt/varbit.c | 8 ++---
src/backend/utils/adt/varchar.c | 4 +--
src/backend/utils/adt/xml.c | 12 ++++---
src/include/utils/xml.h | 2 +-
15 files changed, 116 insertions(+), 68 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Robert Haas 2026-03-24 13:05:09 pgsql: Bounds-check access to TupleDescAttr with an Assert.
Previous Message Robert Haas 2026-03-24 10:38:58 pgsql: Prevent spurious "indexes on virtual generated columns are not s