Don't include execnodes.h in replication/conflict.h ... which silently propagates a lot of headers into many places via pgstat.h, as evidenced by the variety of headers that this patch needs to add to seemingly random places. Add a minimum of typedefs to conflict.h to be able to remove execnodes.h, and fix the fallout.
Backpatch to 18, where conflict.h first appeared. Discussion: https://postgr.es/m/202509191927.uj2ijwmho7nv@alvherre.pgsql Branch ------ REL_18_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/47da1745244b25ba8b9396326d7f36e4ed1fb701 Modified Files -------------- src/backend/access/transam/multixact.c | 1 + src/backend/access/transam/xlogrecovery.c | 1 + src/backend/storage/ipc/waiteventset.c | 1 + src/backend/utils/activity/pgstat_backend.c | 1 + src/include/pgstat.h | 1 + src/include/replication/conflict.h | 24 ++++++++++++++++-------- 6 files changed, 21 insertions(+), 8 deletions(-)