Centralize timestamp computation of control file on updates
authorMichael Paquier <michael@paquier.xyz>
Mon, 29 Nov 2021 04:36:13 +0000 (13:36 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 29 Nov 2021 04:36:13 +0000 (13:36 +0900)
commit6fb7c5d67cdd55454fe6317f939a191f85e96473
tree74fdb6e0cf9a5732a2c31cb0f7867cf638232db2
parent3804539e48e794781c6145c7f988f5d507418fa8
Centralize timestamp computation of control file on updates

This commit moves the timestamp computation of the control file within
the routine of src/common/ in charge of updating the backend's control
file, which is shared by multiple frontend tools (pg_rewind,
pg_checksums and pg_resetwal) and the backend itself.

This change has as direct effect to update the control file's timestamp
when writing the control file in pg_rewind and pg_checksums, something
that is helpful to keep track of control file updates for those
operations, something also tracked by the backend at startup within its
logs.  This part is arguably a bug, as ControlFileData->time should be
updated each time a new version of the control file is written, but this
is a behavior change so no backpatch is done.

Author: Amul Sul
Reviewed-by: Nathan Bossart, Michael Paquier, Bharath Rupireddy
Discussion: https://postgr.es/m/CAAJ_b97nd_ghRpyFV9Djf9RLXkoTbOUqnocq11WGq9TisX09Fw@mail.gmail.com
src/backend/access/transam/xlog.c
src/bin/pg_resetwal/pg_resetwal.c
src/common/controldata_utils.c