]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Simplify SRFs using materialize mode in contrib/ modules
authorMichael Paquier <michael@paquier.xyz>
Tue, 8 Mar 2022 01:12:22 +0000 (10:12 +0900)
committerMichael Paquier <michael@paquier.xyz>
Tue, 8 Mar 2022 01:12:22 +0000 (10:12 +0900)
commit5b81703787bfc1e6072c8e37125eba0c5598b807
tree64fa53f8604641fc8ba17da54cf2b127b5016dac
parentd5ed9da41d96988d905b49bebb273a9b2d6e2915
Simplify SRFs using materialize mode in contrib/ modules

9e98583 introduced a helper to centralize building their needed state
(tuplestore, tuple descriptors, etc.), checking for any errors.  This
commit updates all places of contrib/ that can be switched to use
SetSingleFuncCall() as a drop-in replacement, resulting in the removal
of a lot of boilerplate code in all the modules updated by this commit.

Per analysis, some places remain as they are:
- pg_logdir_ls() in adminpack/ uses historically TYPEFUNC_RECORD as
return type, and I suspect that changing it may cause issues at run-time
with some of its past versions, down to 1.0.
- dblink/ uses a wrapper function doing exactly the work of
SetSingleFuncCall().  Here the switch should be possible, but rather
invasive so it does not seem the extra backpatch maintenance cost.
- tablefunc/, similarly, uses multiple helper functions with portions of
SetSingleFuncCall() spread across the code paths of this module.

Author: Melanie Plageman
Discussion: https://postgr.es/m/CAAKRu_bvDPJoL9mH6eYwvBpPtTGQwbDzfJbCM-OjkSZDu5yTPg@mail.gmail.com
contrib/amcheck/verify_heapam.c
contrib/dblink/dblink.c
contrib/pageinspect/brinfuncs.c
contrib/pageinspect/gistfuncs.c
contrib/pg_stat_statements/pg_stat_statements.c
contrib/pgrowlocks/pgrowlocks.c
contrib/postgres_fdw/connection.c
contrib/xml2/xpath.c