pgsql: Separate RecoveryConflictReasons from procsignals

Heikki Linnakangas <heikki.linnakangas@iki.fi>

From: Heikki Linnakangas <heikki.linnakangas@iki.fi>
To: pgsql-committers@lists.postgresql.org
Date: 2026-02-10T14:32:37Z
Lists: pgsql-hackers
Separate RecoveryConflictReasons from procsignals

Share the same PROCSIG_RECOVERY_CONFLICT flag for all recovery
conflict reasons. To distinguish, have a bitmask in PGPROC to indicate
the reason(s).

Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Discussion: https://www.postgresql.org/message-id/4cc13ba1-4248-4884-b6ba-4805349e7f39@iki.fi

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/17f51ea818753093f929b4c235f3b89ebcc7c5fb

Modified Files
--------------
src/backend/commands/dbcommands.c            |   1 +
src/backend/commands/tablespace.c            |   1 +
src/backend/replication/logical/logicalctl.c |   1 +
src/backend/replication/slot.c               |   6 +-
src/backend/storage/buffer/bufmgr.c          |   5 +-
src/backend/storage/ipc/procarray.c          | 136 ++++++++++++++++++---------
src/backend/storage/ipc/procsignal.c         |  22 +----
src/backend/storage/ipc/standby.c            |  61 ++++++------
src/backend/storage/lmgr/proc.c              |   5 +-
src/backend/tcop/postgres.c                  | 117 ++++++++++++-----------
src/backend/utils/activity/pgstat_database.c |  18 ++--
src/backend/utils/adt/mcxtfuncs.c            |   1 +
src/include/storage/proc.h                   |  10 ++
src/include/storage/procarray.h              |   7 +-
src/include/storage/procsignal.h             |  16 +---
src/include/storage/standby.h                |  34 ++++++-
src/include/tcop/tcopprot.h                  |   2 +-
src/tools/pgindent/typedefs.list             |   1 +
18 files changed, 258 insertions(+), 186 deletions(-)

Commits

  1. Use C11 alignas in typedef definitions

  2. Align PGPROC to cache line boundary

  3. Rearrange fields in PGPROC, for clarity

  4. Split PGPROC 'links' field into two, for clarity

  5. Remove useless store to local variable

  6. Separate RecoveryConflictReasons from procsignals