Add construct_array_builtin, deconstruct_array_builtin

Peter Eisentraut <peter@eisentraut.org>

Commit: d746021de18baf0f29eff0388204a0664f41eb8b
Author: Peter Eisentraut <peter@eisentraut.org>
Date: 2022-07-01T09:23:15Z
Releases: 16.0
Add construct_array_builtin, deconstruct_array_builtin

There were many calls to construct_array() and deconstruct_array() for
built-in types, for example, when dealing with system catalog columns.
These all hardcoded the type attributes necessary to pass to these
functions.

To simplify this a bit, add construct_array_builtin(),
deconstruct_array_builtin() as wrappers that centralize this hardcoded
knowledge.  This simplifies many call sites and reduces the amount of
hardcoded stuff that is spread around.

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://www.postgresql.org/message-id/flat/2914356f-9e5f-8c59-2995-5997fc48bcba%40enterprisedb.com

Files

PathChange+/−
contrib/hstore/hstore_gin.c modified +1 −3
contrib/hstore/hstore_gist.c modified +2 −6
contrib/hstore/hstore_io.c modified +3 −9
contrib/hstore/hstore_op.c modified +3 −8
contrib/pageinspect/btreefuncs.c modified +1 −5
contrib/pageinspect/ginfuncs.c modified +2 −8
contrib/pageinspect/gistfuncs.c modified +1 −3
contrib/pageinspect/hashfuncs.c modified +2 −12
contrib/pageinspect/heapfuncs.c modified +2 −2
contrib/pgcrypto/pgp-pgsql.c modified +2 −7
contrib/pg_trgm/trgm_op.c modified +1 −6
src/backend/access/common/reloptions.c modified +3 −6
src/backend/catalog/objectaddress.c modified +4 −8
src/backend/catalog/pg_constraint.c modified +7 −14
src/backend/catalog/pg_proc.c modified +1 −4
src/backend/catalog/pg_subscription.c modified +1 −3
src/backend/commands/analyze.c modified +1 −4
src/backend/commands/event_trigger.c modified +1 −2
src/backend/commands/extension.c modified +7 −17
src/backend/commands/functioncmds.c modified +4 −8
src/backend/commands/policy.c modified +3 −6
src/backend/commands/prepare.c modified +1 −3
src/backend/commands/statscmds.c modified +1 −1
src/backend/commands/subscriptioncmds.c modified +1 −2
src/backend/commands/typecmds.c modified +2 −5
src/backend/executor/nodeTidscan.c modified +1 −3
src/backend/parser/parse_type.c modified +1 −3
src/backend/parser/parse_utilcmd.c modified +1 −3
src/backend/replication/logical/logicalfuncs.c modified +1 −2
src/backend/statistics/extended_stats.c modified +1 −4
src/backend/tsearch/dict.c modified +1 −6
src/backend/utils/adt/arrayfuncs.c modified +158 −3
src/backend/utils/adt/arrayutils.c modified +1 −4
src/backend/utils/adt/hbafuncs.c modified +1 −1
src/backend/utils/adt/jsonb.c modified +3 −10
src/backend/utils/adt/jsonb_gin.c modified +1 −3
src/backend/utils/adt/jsonb_op.c modified +2 −4
src/backend/utils/adt/json.c modified +3 −10
src/backend/utils/adt/jsonfuncs.c modified +6 −12
src/backend/utils/adt/lockfuncs.c modified +2 −8
src/backend/utils/adt/name.c modified +1 −5
src/backend/utils/adt/orderedsetaggs.c modified +8 −12
src/backend/utils/adt/pg_upgrade_support.c modified +1 −3
src/backend/utils/adt/ruleutils.c modified +8 −12
src/backend/utils/adt/tsvector_op.c modified +7 −12
src/backend/utils/adt/xml.c modified +3 −3
src/backend/utils/cache/evtcache.c modified +1 −2
src/backend/utils/fmgr/funcapi.c modified +5 −9
src/backend/utils/misc/guc.c modified +4 −10
src/include/utils/array.h modified +4 −0
src/test/modules/test_rls_hooks/test_rls_hooks.c modified +2 −2

Discussion