Rearrange pseudotypes.c to get rid of duplicative code.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 14 Mar 2020 19:31:44 +0000 (15:31 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 14 Mar 2020 19:31:44 +0000 (15:31 -0400)
commit87c9c2571c8146f1594830072253ba39e62ccbc8
tree9ed474127afc3865e37208a49137a82108f0e9f4
parent4dbcb3f844eca4a401ce06aa2781bd9a9be433e9
Rearrange pseudotypes.c to get rid of duplicative code.

Commit a5954de10 replaced a lot of manually-coded stub I/O routines
with code generated by macros.  That was a good idea but it didn't
go far enough, because there were still manually-coded stub input
routines for types that had live output routines.  Refactor the
macro so that we can generate just a stub input routine at need.

Also create similar macros to generate stub binary I/O routines,
since we have some of those now.  The only stub functions that remain
hand-coded are shell_in() and shell_out(), which need to be separate
because they use different error messages.

While here, rearrange the commentary to discuss each type not each
function.  This provides a better way to explain the *why* of which
types need which support, rather than just duplicatively annotating
the functions.

Discussion: http://postgr.es/m/24137.1584139352@sss.pgh.pa.us
src/backend/utils/adt/pseudotypes.c