Switch some system functions to use get_call_result_type()
This shaves some code by replacing the combinations of
CreateTemplateTupleDesc()/TupleDescInitEntry() hardcoding a mapping of
the attributes listed in pg_proc.dat by get_call_result_type() to build
the TupleDesc needed for the rows generated.
get_call_result_type() is more expensive than the former style, but this
removes some duplication with the lists of OUT parameters (pg_proc.dat
and the attributes hardcoded in these code paths). This is applied to
functions that are not considered as critical (aka that could be called
repeatedly for monitoring purposes).
Author: Bharath Rupireddy
Reviewed-by: Robert Haas, Álvaro Herrera, Tom Lane, Michael Paquier
Discussion: https://postgr.es/m/CALj2ACV23HW5HP5hFjd89FNS-z5X8r2jNXdMXcpN2BgTtKd87w@mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/22e3b558052aa209cba2a8fec192d76b5faef19e
Modified Files
--------------
contrib/old_snapshot/time_mapping.c | 26 ++------
contrib/pg_visibility/pg_visibility.c | 6 +-
src/backend/access/transam/commit_ts.c | 26 ++------
src/backend/access/transam/multixact.c | 9 +--
src/backend/catalog/objectaddress.c | 42 ++-----------
src/backend/commands/sequence.c | 19 +-----
src/backend/tsearch/wparser.c | 35 +++++------
src/backend/utils/adt/datetime.c | 17 ++---
src/backend/utils/adt/misc.c | 31 ++-------
src/backend/utils/adt/partitionfuncs.c | 14 +----
src/backend/utils/adt/tsvector_op.c | 15 ++---
src/backend/utils/misc/pg_controldata.c | 108 +++-----------------------------
12 files changed, 62 insertions(+), 286 deletions(-)