Convert range_in and multirange_in to report errors softly.

Tom Lane <tgl@sss.pgh.pa.us>

Commit: d35a1af468162f510b6139bf81a7a41fd8ba8500
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2022-12-15T17:18:36Z
Releases: 16.0
Convert range_in and multirange_in to report errors softly.

This is mostly straightforward, except that if the range type
has a canonical function, that might throw an error during range
input.  (Such errors probably only occur for edge cases: in the
in-core canonical functions, it happens only if a bound has the
maximum valid value for the underlying type.)  Hence, this patch
extends the soft-error regime to allow canonical functions to
return errors softly as well.  Extensions implementing range
canonical functions will need modification anyway because of the
API change for range_serialize(); while at it, they might want
to do something similar to what's been done here in the in-core
canonical functions.

Discussion: https://postgr.es/m/3284599.1671075185@sss.pgh.pa.us

Files

Discussion