pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
pgsql: Use palloc_object() and palloc_array() in more areas of the tree
4+ messages / 2 participants
[nested] [flat]

* pgsql: Use palloc_object() and palloc_array() in more areas of the tree
@ 2025-12-09 05:53 Michael Paquier <michael@paquier.xyz>
  0 siblings, 0 replies; 4+ messages in thread

From: Michael Paquier @ 2025-12-09 05:53 UTC (permalink / raw)
  To: pgsql-committers@lists.postgresql.org

Use palloc_object() and palloc_array() in more areas of the tree

The idea is to encourage more the use of these new routines across the
tree, as these offer stronger type safety guarantees than palloc().

The following paths are included in this batch, treating all the areas
proposed by the author for the most trivial changes, except src/backend
(by far the largest batch):
src/bin/
src/common/
src/fe_utils/
src/include/
src/pl/
src/test/
src/tutorial/

Similar work has been done in 31d3847a37be.

The code compiles the same before and after this commit, with the
following exceptions due to changes in line numbers because some of the
new allocation formulas are shorter:
blkreftable.c
pgfnames.c
pl_exec.c

Author: David Geier <geidav.pg@gmail.com>
Discussion: https://postgr.es/m/ad0748d4-3080-436e-b0bc-ac8f86a3466a@gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/0c3c5c3b06a37c13a811ea93044202e06523b705

Modified Files
--------------
doc/src/sgml/gist.sgml                             |  8 +-
doc/src/sgml/xfunc.sgml                            |  2 +-
doc/src/sgml/xtypes.sgml                           |  2 +-
src/bin/pg_basebackup/astreamer_inject.c           |  2 +-
src/bin/pg_combinebackup/load_manifest.c           |  2 +-
src/bin/pg_dump/common.c                           |  2 +-
src/bin/pg_verifybackup/astreamer_verify.c         |  2 +-
src/bin/pg_verifybackup/pg_verifybackup.c          |  2 +-
src/bin/scripts/vacuuming.c                        |  2 +-
src/common/blkreftable.c                           | 21 +++--
src/common/parse_manifest.c                        |  4 +-
src/common/pgfnames.c                              |  5 +-
src/common/rmtree.c                                |  2 +-
src/common/stringinfo.c                            |  2 +-
src/fe_utils/astreamer_file.c                      |  4 +-
src/fe_utils/astreamer_gzip.c                      |  4 +-
src/fe_utils/astreamer_lz4.c                       |  4 +-
src/fe_utils/astreamer_tar.c                       |  6 +-
src/fe_utils/astreamer_zstd.c                      |  4 +-
src/include/lib/radixtree.h                        |  8 +-
src/pl/plperl/plperl.c                             | 12 +--
src/pl/plpgsql/src/pl_comp.c                       | 32 ++++----
src/pl/plpgsql/src/pl_exec.c                       |  9 +--
src/pl/plpgsql/src/pl_gram.y                       | 92 +++++++++++-----------
src/pl/plpython/plpy_procedure.c                   |  6 +-
src/pl/plpython/plpy_spi.c                         |  4 +-
src/pl/plpython/plpy_typeio.c                      | 12 +--
src/pl/tcl/pltcl.c                                 |  4 +-
src/test/modules/dummy_index_am/dummy_index_am.c   |  2 +-
src/test/modules/spgist_name_ops/spgist_name_ops.c | 10 +--
src/test/modules/test_bitmapset/test_bitmapset.c   |  2 +-
src/test/modules/test_integerset/test_integerset.c |  2 +-
.../test_json_parser_incremental.c                 |  2 +-
src/test/modules/test_parser/test_parser.c         |  4 +-
src/test/modules/test_radixtree/test_radixtree.c   |  2 +-
src/test/modules/test_regex/test_regex.c           | 14 ++--
.../modules/test_resowner/test_resowner_many.c     |  2 +-
src/test/modules/test_rls_hooks/test_rls_hooks.c   |  4 +-
src/test/modules/worker_spi/worker_spi.c           |  2 +-
src/test/regress/regress.c                         |  2 +-
src/timezone/pgtz.c                                |  2 +-
src/tutorial/complex.c                             |  6 +-
src/tutorial/funcs.c                               |  2 +-
43 files changed, 156 insertions(+), 161 deletions(-)



^ permalink  raw  reply  [nested|flat] 4+ messages in thread

* pgsql: Use palloc_object() and palloc_array() in backend code
@ 2025-12-09 22:37 Michael Paquier <michael@paquier.xyz>
  0 siblings, 0 replies; 4+ messages in thread

From: Michael Paquier @ 2025-12-09 22:37 UTC (permalink / raw)
  To: pgsql-committers@lists.postgresql.org

Use palloc_object() and palloc_array() in backend code

The idea is to encourage more the use of these new routines across the
tree, as these offer stronger type safety guarantees than palloc().
This batch of changes includes most of the trivial changes suggested by
the author for src/backend/.

A total of 334 files are updated here.  Among these files, 48 of them
have their build change slightly; these are caused by line number
changes as the new allocation formulas are simpler, shaving around 100
lines of code in total.

Similar work has been done in 0c3c5c3b06a3 and 31d3847a37be.

Author: David Geier <geidav.pg@gmail.com>
Discussion: https://postgr.es/m/ad0748d4-3080-436e-b0bc-ac8f86a3466a@gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/1b105f9472bdb9a68f709778afafb494997267bd

Modified Files
--------------
src/backend/access/brin/brin.c                     |  8 +-
src/backend/access/brin/brin_minmax_multi.c        |  4 +-
src/backend/access/brin/brin_revmap.c              |  2 +-
src/backend/access/brin/brin_tuple.c               | 15 ++--
src/backend/access/common/attmap.c                 |  4 +-
src/backend/access/common/heaptuple.c              |  8 +-
src/backend/access/common/printtup.c               |  2 +-
src/backend/access/common/reloptions.c             |  6 +-
src/backend/access/common/tidstore.c               |  8 +-
src/backend/access/common/toast_internals.c        |  2 +-
src/backend/access/common/tupconvert.c             | 20 ++---
src/backend/access/common/tupdesc.c                |  2 +-
src/backend/access/gin/ginbtree.c                  |  6 +-
src/backend/access/gin/ginbulk.c                   |  5 +-
src/backend/access/gin/gindatapage.c               | 14 ++--
src/backend/access/gin/ginentrypage.c              |  4 +-
src/backend/access/gin/ginget.c                    |  4 +-
src/backend/access/gin/gininsert.c                 | 16 ++--
src/backend/access/gin/ginscan.c                   | 13 ++-
src/backend/access/gin/ginutil.c                   | 10 +--
src/backend/access/gin/ginvacuum.c                 |  8 +-
src/backend/access/gist/gist.c                     | 22 ++---
src/backend/access/gist/gistbuild.c                | 10 +--
src/backend/access/gist/gistbuildbuffers.c         | 14 ++--
src/backend/access/gist/gistproc.c                 | 26 +++---
src/backend/access/gist/gistscan.c                 |  6 +-
src/backend/access/gist/gistsplit.c                |  8 +-
src/backend/access/gist/gistutil.c                 |  4 +-
src/backend/access/gist/gistvacuum.c               |  4 +-
src/backend/access/hash/hash.c                     |  9 +--
src/backend/access/hash/hashsort.c                 |  2 +-
src/backend/access/heap/heapam.c                   | 14 ++--
src/backend/access/heap/heapam_handler.c           |  6 +-
src/backend/access/heap/rewriteheap.c              |  2 +-
src/backend/access/heap/vacuumlazy.c               |  6 +-
src/backend/access/index/amvalidate.c              |  2 +-
src/backend/access/index/genam.c                   | 14 ++--
src/backend/access/nbtree/nbtdedup.c               |  8 +-
src/backend/access/nbtree/nbtinsert.c              |  2 +-
src/backend/access/nbtree/nbtpage.c                |  2 +-
src/backend/access/nbtree/nbtree.c                 |  9 +--
src/backend/access/nbtree/nbtsearch.c              |  2 +-
src/backend/access/nbtree/nbtsort.c                | 32 ++++----
src/backend/access/nbtree/nbtsplitloc.c            |  2 +-
src/backend/access/nbtree/nbtxlog.c                |  2 +-
src/backend/access/spgist/spgdoinsert.c            | 33 ++++----
src/backend/access/spgist/spginsert.c              |  2 +-
src/backend/access/spgist/spgkdtreeproc.c          | 14 ++--
src/backend/access/spgist/spgproc.c                |  4 +-
src/backend/access/spgist/spgquadtreeproc.c        | 22 ++---
src/backend/access/spgist/spgscan.c                | 30 +++----
src/backend/access/spgist/spgtextproc.c            | 19 +++--
src/backend/access/spgist/spgutils.c               |  2 +-
src/backend/access/spgist/spgvacuum.c              |  6 +-
src/backend/access/spgist/spgxlog.c                |  2 +-
src/backend/access/tablesample/system.c            |  2 +-
src/backend/access/transam/multixact.c             |  3 +-
src/backend/access/transam/parallel.c              |  7 +-
src/backend/access/transam/timeline.c              |  8 +-
src/backend/access/transam/twophase.c              | 10 +--
src/backend/access/transam/xact.c                  |  2 +-
src/backend/access/transam/xlog.c                  |  4 +-
src/backend/access/transam/xlogfuncs.c             |  2 +-
src/backend/access/transam/xlogprefetcher.c        |  2 +-
src/backend/access/transam/xlogrecovery.c          |  6 +-
src/backend/access/transam/xlogutils.c             |  2 +-
src/backend/backup/basebackup.c                    |  6 +-
src/backend/backup/basebackup_copy.c               |  2 +-
src/backend/backup/basebackup_gzip.c               |  2 +-
src/backend/backup/basebackup_incremental.c        |  6 +-
src/backend/backup/basebackup_lz4.c                |  2 +-
src/backend/backup/basebackup_progress.c           |  2 +-
src/backend/backup/basebackup_server.c             |  2 +-
src/backend/backup/basebackup_target.c             |  4 +-
src/backend/backup/basebackup_throttle.c           |  2 +-
src/backend/backup/basebackup_zstd.c               |  2 +-
src/backend/backup/walsummary.c                    |  2 +-
src/backend/bootstrap/bootstrap.c                  |  6 +-
src/backend/catalog/dependency.c                   |  8 +-
src/backend/catalog/heap.c                         |  8 +-
src/backend/catalog/index.c                        |  8 +-
src/backend/catalog/namespace.c                    |  4 +-
src/backend/catalog/objectaddress.c                |  4 +-
src/backend/catalog/pg_constraint.c                |  2 +-
src/backend/catalog/pg_depend.c                    |  2 +-
src/backend/catalog/pg_enum.c                      |  6 +-
src/backend/catalog/pg_publication.c               |  6 +-
src/backend/catalog/pg_shdepend.c                  |  4 +-
src/backend/catalog/pg_subscription.c              |  4 +-
src/backend/catalog/storage.c                      | 10 +--
src/backend/commands/analyze.c                     |  6 +-
src/backend/commands/cluster.c                     |  4 +-
src/backend/commands/copy.c                        |  2 +-
src/backend/commands/copyfrom.c                    |  4 +-
src/backend/commands/copyto.c                      |  4 +-
src/backend/commands/createas.c                    |  2 +-
src/backend/commands/dbcommands.c                  |  2 +-
src/backend/commands/event_trigger.c               | 24 +++---
src/backend/commands/explain.c                     |  2 +-
src/backend/commands/explain_dr.c                  |  2 +-
src/backend/commands/explain_state.c               |  7 +-
src/backend/commands/extension.c                   |  4 +-
src/backend/commands/functioncmds.c                |  2 +-
src/backend/commands/matview.c                     |  4 +-
src/backend/commands/opclasscmds.c                 | 12 +--
src/backend/commands/policy.c                      |  6 +-
src/backend/commands/publicationcmds.c             |  6 +-
src/backend/commands/seclabel.c                    |  2 +-
src/backend/commands/subscriptioncmds.c            |  4 +-
src/backend/commands/tablecmds.c                   | 36 ++++-----
src/backend/commands/trigger.c                     |  8 +-
src/backend/commands/tsearchcmds.c                 |  8 +-
src/backend/commands/typecmds.c                    |  4 +-
src/backend/commands/user.c                        |  4 +-
src/backend/commands/vacuumparallel.c              |  6 +-
src/backend/executor/execExpr.c                    | 94 ++++++++++------------
src/backend/executor/execGrouping.c                |  2 +-
src/backend/executor/execIndexing.c                |  4 +-
src/backend/executor/execMain.c                    | 21 +++--
src/backend/executor/execParallel.c                |  2 +-
src/backend/executor/execReplication.c             |  8 +-
src/backend/executor/execTuples.c                  |  4 +-
src/backend/executor/functions.c                   |  4 +-
src/backend/executor/nodeAgg.c                     | 42 +++++-----
src/backend/executor/nodeAppend.c                  |  2 +-
src/backend/executor/nodeFunctionscan.c            |  2 +-
src/backend/executor/nodeGatherMerge.c             |  6 +-
src/backend/executor/nodeHashjoin.c                |  5 +-
src/backend/executor/nodeIndexonlyscan.c           |  3 +-
src/backend/executor/nodeIndexscan.c               |  8 +-
src/backend/executor/nodeMemoize.c                 |  4 +-
src/backend/executor/nodeMergeAppend.c             |  6 +-
src/backend/executor/nodeModifyTable.c             | 13 ++-
src/backend/executor/nodeProjectSet.c              |  6 +-
src/backend/executor/nodeSamplescan.c              |  2 +-
src/backend/executor/nodeTableFuncscan.c           |  4 +-
src/backend/executor/nodeTidrangescan.c            |  2 +-
src/backend/executor/nodeTidscan.c                 |  2 +-
src/backend/executor/nodeWindowAgg.c               | 12 +--
src/backend/executor/spi.c                         | 21 +++--
src/backend/executor/tqueue.c                      |  4 +-
src/backend/executor/tstoreReceiver.c              |  2 +-
src/backend/foreign/foreign.c                      | 10 +--
src/backend/jit/llvm/llvmjit.c                     |  6 +-
src/backend/jit/llvm/llvmjit_deform.c              | 12 +--
src/backend/jit/llvm/llvmjit_expr.c                |  8 +-
src/backend/lib/bipartite_match.c                  |  2 +-
src/backend/lib/dshash.c                           |  4 +-
src/backend/lib/integerset.c                       |  2 +-
src/backend/lib/pairingheap.c                      |  2 +-
src/backend/lib/rbtree.c                           |  2 +-
src/backend/libpq/auth-oauth.c                     |  8 +-
src/backend/libpq/auth-scram.c                     |  2 +-
src/backend/libpq/hba.c                            | 10 +--
src/backend/libpq/pqcomm.c                         |  2 +-
src/backend/nodes/nodeFuncs.c                      |  2 +-
src/backend/nodes/queryjumblefuncs.c               |  2 +-
src/backend/nodes/tidbitmap.c                      |  4 +-
src/backend/optimizer/geqo/geqo_erx.c              |  2 +-
src/backend/optimizer/geqo/geqo_eval.c             |  2 +-
src/backend/optimizer/geqo/geqo_pmx.c              |  8 +-
src/backend/optimizer/geqo/geqo_pool.c             | 10 +--
src/backend/optimizer/geqo/geqo_recombination.c    |  2 +-
src/backend/optimizer/path/clausesel.c             |  2 +-
src/backend/optimizer/path/costsize.c              |  4 +-
src/backend/optimizer/path/indxpath.c              |  7 +-
src/backend/optimizer/path/joinrels.c              |  3 +-
src/backend/optimizer/plan/analyzejoins.c          |  3 +-
src/backend/optimizer/plan/createplan.c            | 34 ++++----
src/backend/optimizer/plan/initsplan.c             |  6 +-
src/backend/optimizer/plan/planagg.c               |  2 +-
src/backend/optimizer/plan/planner.c               |  6 +-
src/backend/optimizer/plan/setrefs.c               |  6 +-
src/backend/optimizer/prep/prepjointree.c          |  7 +-
src/backend/optimizer/prep/prepunion.c             |  2 +-
src/backend/optimizer/util/appendinfo.c            |  3 +-
src/backend/optimizer/util/clauses.c               |  6 +-
src/backend/optimizer/util/extendplan.c            | 18 ++---
src/backend/optimizer/util/plancat.c               | 39 +++++----
src/backend/optimizer/util/predtest.c              |  4 +-
src/backend/optimizer/util/relnode.c               | 15 ++--
src/backend/optimizer/util/tlist.c                 | 12 +--
src/backend/parser/analyze.c                       |  5 +-
src/backend/parser/gram.y                          | 92 ++++++++++-----------
src/backend/parser/parse_clause.c                  |  4 +-
src/backend/parser/parse_expr.c                    |  4 +-
src/backend/parser/parse_node.c                    |  2 +-
src/backend/parser/parse_param.c                   |  4 +-
src/backend/parser/parse_relation.c                | 10 +--
src/backend/parser/parse_type.c                    |  2 +-
src/backend/partitioning/partbounds.c              | 66 +++++++--------
src/backend/partitioning/partdesc.c                |  2 +-
src/backend/postmaster/autovacuum.c                |  6 +-
src/backend/postmaster/bgworker.c                  |  2 +-
src/backend/postmaster/checkpointer.c              |  2 +-
src/backend/postmaster/launch_backend.c            |  2 +-
src/backend/postmaster/pgarch.c                    |  4 +-
src/backend/postmaster/postmaster.c                |  2 +-
src/backend/postmaster/syslogger.c                 |  2 +-
src/backend/postmaster/walsummarizer.c             |  3 +-
.../libpqwalreceiver/libpqwalreceiver.c            |  4 +-
.../replication/logical/applyparallelworker.c      |  2 +-
src/backend/replication/logical/launcher.c         |  2 +-
src/backend/replication/logical/logical.c          |  2 +-
src/backend/replication/logical/logicalfuncs.c     |  2 +-
src/backend/replication/logical/proto.c            |  8 +-
src/backend/replication/logical/relation.c         |  8 +-
src/backend/replication/logical/reorderbuffer.c    | 17 ++--
src/backend/replication/logical/slotsync.c         |  2 +-
src/backend/replication/logical/snapbuild.c        |  5 +-
src/backend/replication/logical/syncutils.c        |  2 +-
src/backend/replication/logical/worker.c           |  6 +-
src/backend/replication/pgoutput/pgoutput.c        |  4 +-
src/backend/replication/syncrep.c                  |  9 +--
src/backend/replication/walreceiver.c              |  4 +-
src/backend/replication/walsender.c                |  2 +-
src/backend/rewrite/rewriteHandler.c               |  2 +-
src/backend/rewrite/rewriteManip.c                 |  6 +-
src/backend/snowball/dict_snowball.c               |  4 +-
src/backend/statistics/dependencies.c              | 26 +++---
src/backend/statistics/extended_stats.c            | 15 ++--
src/backend/statistics/mcv.c                       | 24 +++---
src/backend/storage/file/buffile.c                 | 10 +--
src/backend/storage/ipc/procarray.c                |  8 +-
src/backend/storage/ipc/shm_mq.c                   |  2 +-
src/backend/storage/ipc/shmem.c                    |  6 +-
src/backend/storage/lmgr/lock.c                    | 16 ++--
src/backend/storage/lmgr/predicate.c               |  8 +-
src/backend/storage/smgr/bulk_write.c              |  2 +-
src/backend/storage/smgr/md.c                      |  2 +-
src/backend/storage/smgr/smgr.c                    |  2 +-
src/backend/storage/sync/sync.c                    |  2 +-
src/backend/tcop/pquery.c                          |  2 +-
src/backend/tsearch/dict.c                         |  2 +-
src/backend/tsearch/dict_ispell.c                  |  2 +-
src/backend/tsearch/dict_simple.c                  |  6 +-
src/backend/tsearch/dict_synonym.c                 |  8 +-
src/backend/tsearch/dict_thesaurus.c               | 26 +++---
src/backend/tsearch/spell.c                        | 22 ++---
src/backend/tsearch/to_tsany.c                     | 14 ++--
src/backend/tsearch/ts_parse.c                     |  2 +-
src/backend/tsearch/ts_selfuncs.c                  |  2 +-
src/backend/tsearch/ts_typanalyze.c                |  6 +-
src/backend/tsearch/ts_utils.c                     |  4 +-
src/backend/tsearch/wparser.c                      | 16 ++--
src/backend/tsearch/wparser_def.c                  | 12 +--
src/backend/utils/activity/pgstat_relation.c       |  2 +-
src/backend/utils/activity/wait_event.c            |  2 +-
src/backend/utils/adt/acl.c                        |  6 +-
src/backend/utils/adt/array_selfuncs.c             |  8 +-
src/backend/utils/adt/array_typanalyze.c           |  7 +-
src/backend/utils/adt/array_userfuncs.c            | 12 +--
src/backend/utils/adt/arrayfuncs.c                 | 14 ++--
src/backend/utils/adt/arraysubs.c                  |  2 +-
src/backend/utils/adt/date.c                       | 24 +++---
src/backend/utils/adt/datetime.c                   | 10 +--
src/backend/utils/adt/formatting.c                 |  2 +-
src/backend/utils/adt/geo_ops.c                    | 94 +++++++++++-----------
src/backend/utils/adt/geo_spgist.c                 | 40 ++++-----
src/backend/utils/adt/int.c                        |  2 +-
src/backend/utils/adt/int8.c                       |  2 +-
src/backend/utils/adt/json.c                       |  6 +-
src/backend/utils/adt/jsonb_gin.c                  | 19 ++---
src/backend/utils/adt/jsonb_util.c                 | 10 +--
src/backend/utils/adt/jsonfuncs.c                  | 64 +++++++--------
src/backend/utils/adt/jsonpath_exec.c              | 27 +++----
src/backend/utils/adt/jsonpath_gram.y              |  4 +-
src/backend/utils/adt/lockfuncs.c                  |  2 +-
src/backend/utils/adt/mac.c                        | 14 ++--
src/backend/utils/adt/mac8.c                       | 18 ++---
src/backend/utils/adt/mcxtfuncs.c                  |  2 +-
src/backend/utils/adt/misc.c                       |  2 +-
src/backend/utils/adt/multirangetypes.c            |  8 +-
src/backend/utils/adt/multirangetypes_selfuncs.c   |  4 +-
src/backend/utils/adt/multixactfuncs.c             |  2 +-
src/backend/utils/adt/network.c                    | 24 +++---
src/backend/utils/adt/network_gist.c               | 10 +--
src/backend/utils/adt/network_spgist.c             |  6 +-
src/backend/utils/adt/numeric.c                    | 13 ++-
src/backend/utils/adt/orderedsetaggs.c             |  4 +-
src/backend/utils/adt/pg_locale_libc.c             |  6 +-
src/backend/utils/adt/pg_ndistinct.c               |  2 +-
src/backend/utils/adt/rangetypes.c                 |  2 +-
src/backend/utils/adt/rangetypes_gist.c            | 15 ++--
src/backend/utils/adt/rangetypes_selfuncs.c        |  4 +-
src/backend/utils/adt/rangetypes_spgist.c          | 18 ++---
src/backend/utils/adt/rangetypes_typanalyze.c      |  8 +-
src/backend/utils/adt/regexp.c                     | 20 ++---
src/backend/utils/adt/rowtypes.c                   | 24 +++---
src/backend/utils/adt/ruleutils.c                  |  4 +-
src/backend/utils/adt/selfuncs.c                   |  4 +-
src/backend/utils/adt/skipsupport.c                |  2 +-
src/backend/utils/adt/tid.c                        |  6 +-
src/backend/utils/adt/timestamp.c                  | 46 +++++------
src/backend/utils/adt/tsginidx.c                   | 10 +--
src/backend/utils/adt/tsgistidx.c                  | 10 +--
src/backend/utils/adt/tsquery.c                    | 12 +--
src/backend/utils/adt/tsquery_cleanup.c            |  2 +-
src/backend/utils/adt/tsquery_gist.c               |  4 +-
src/backend/utils/adt/tsquery_op.c                 | 14 ++--
src/backend/utils/adt/tsquery_util.c               | 18 ++---
src/backend/utils/adt/tsrank.c                     | 13 ++-
src/backend/utils/adt/tsvector.c                   |  4 +-
src/backend/utils/adt/tsvector_op.c                | 10 +--
src/backend/utils/adt/tsvector_parser.c            |  6 +-
src/backend/utils/adt/uuid.c                       |  4 +-
src/backend/utils/adt/varlena.c                    |  2 +-
src/backend/utils/adt/xml.c                        |  6 +-
src/backend/utils/cache/catcache.c                 |  4 +-
src/backend/utils/cache/evtcache.c                 |  2 +-
src/backend/utils/cache/inval.c                    |  2 +-
src/backend/utils/cache/lsyscache.c                |  6 +-
src/backend/utils/cache/partcache.c                | 24 +++---
src/backend/utils/cache/plancache.c                | 15 ++--
src/backend/utils/cache/relcache.c                 | 30 +++----
src/backend/utils/cache/typcache.c                 |  2 +-
src/backend/utils/error/elog.c                     |  2 +-
src/backend/utils/fmgr/funcapi.c                   |  2 +-
src/backend/utils/init/postinit.c                  |  2 +-
src/backend/utils/mb/mbutils.c                     |  4 +-
src/backend/utils/misc/conffiles.c                 |  2 +-
src/backend/utils/misc/guc-file.l                  |  4 +-
src/backend/utils/misc/guc.c                       |  4 +-
src/backend/utils/misc/injection_point.c           |  2 +-
src/backend/utils/misc/queryenvironment.c          |  2 +-
src/backend/utils/misc/tzparser.c                  |  2 +-
src/backend/utils/mmgr/dsa.c                       |  4 +-
src/backend/utils/sort/logtape.c                   |  6 +-
src/backend/utils/sort/sharedtuplestore.c          |  4 +-
src/backend/utils/sort/tuplesort.c                 |  2 +-
src/backend/utils/sort/tuplesortvariants.c         | 12 +--
src/backend/utils/sort/tuplestore.c                |  2 +-
src/backend/utils/time/snapmgr.c                   |  2 +-
333 files changed, 1358 insertions(+), 1465 deletions(-)



^ permalink  raw  reply  [nested|flat] 4+ messages in thread

* pgsql: Use palloc_object() and palloc_array(), the last change
@ 2025-12-11 05:30 Michael Paquier <michael@paquier.xyz>
  0 siblings, 0 replies; 4+ messages in thread

From: Michael Paquier @ 2025-12-11 05:30 UTC (permalink / raw)
  To: pgsql-committers@lists.postgresql.org

Use palloc_object() and palloc_array(), the last change

This is the last batch of changes that have been suggested by the
author, this part covering the non-trivial changes.  Some of the changes
suggested have been discarded as they seem to lead to more instructions
generated, leaving the parts that can be qualified as in-place
replacements.

Similar work has been done in 1b105f9472bd, 0c3c5c3b06a3 and
31d3847a37be.

Author: David Geier <geidav.pg@gmail.com>
Discussion: https://postgr.es/m/ad0748d4-3080-436e-b0bc-ac8f86a3466a@gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4f7dacc5b82af19788599671abe4ac633fd7ea4c

Modified Files
--------------
contrib/pg_buffercache/pg_buffercache_pages.c |  8 ++++----
contrib/pg_trgm/trgm_op.c                     | 14 +++++++-------
contrib/postgres_fdw/postgres_fdw.c           | 20 +++++++++----------
src/backend/executor/execPartition.c          | 28 +++++++++++----------------
src/backend/partitioning/partprune.c          | 23 +++++++++++-----------
src/backend/statistics/mvdistinct.c           | 14 +++++++-------
src/backend/storage/buffer/bufmgr.c           |  6 +++---
7 files changed, 53 insertions(+), 60 deletions(-)



^ permalink  raw  reply  [nested|flat] 4+ messages in thread

* pgsql: Use palloc_object() and palloc_array() in more areas of the logi
@ 2026-03-06 18:50 Masahiko Sawada <msawada@postgresql.org>
  0 siblings, 0 replies; 4+ messages in thread

From: Masahiko Sawada @ 2026-03-06 18:50 UTC (permalink / raw)
  To: pgsql-committers@lists.postgresql.org

Use palloc_object() and palloc_array() in more areas of the logical replication.

The idea is to encourage the use of newer routines across the tree, as
these offer stronger type-safety guarantees than raw palloc().

Similar work has been done in commits 1b105f9472bd, 0c3c5c3b06a3,
31d3847a37be, and 4f7dacc5b82a. This commit extends those changes to
more locations within src/backend/replication/logical/.

Author: Peter Smith <smithpb2250@gmail.com>
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Reviewed-by: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Discussion: https://postgr.es/m/CAHut+Pv4N7Vpxo18+NAR1r9RGvR8b0BtwTkoeCE2PfFoXgmR6A@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/50ea4e09b6c2331b4cc6434fa12b43bc62de682c

Modified Files
--------------
src/backend/replication/logical/proto.c         |  2 +-
src/backend/replication/logical/reorderbuffer.c |  8 ++++----
src/backend/replication/logical/snapbuild.c     |  7 ++++---
src/backend/replication/logical/tablesync.c     |  4 ++--
src/backend/replication/logical/worker.c        | 14 +++++++-------
5 files changed, 18 insertions(+), 17 deletions(-)



^ permalink  raw  reply  [nested|flat] 4+ messages in thread


end of thread, other threads:[~2026-03-06 18:50 UTC | newest]

Thread overview: 4+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2025-12-09 05:53 pgsql: Use palloc_object() and palloc_array() in more areas of the tree Michael Paquier <michael@paquier.xyz>
2025-12-09 22:37 pgsql: Use palloc_object() and palloc_array() in backend code Michael Paquier <michael@paquier.xyz>
2025-12-11 05:30 pgsql: Use palloc_object() and palloc_array(), the last change Michael Paquier <michael@paquier.xyz>
2026-03-06 18:50 pgsql: Use palloc_object() and palloc_array() in more areas of the logi Masahiko Sawada <msawada@postgresql.org>

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox