Chapman Flack wrote: > Hi, > > Can somebody confirm or correct what I (think I)'ve gleaned from > the code? > > - Commit timestamps are always WAL logged, and so in principle > determinable after the fact (with some amount of effort), regardless > of the track_commit_timestamp setting. (I guess this must have long > been true, to support recovery_target_time.)
Right. > - The extra machinery turned on by track_commit_timestamp maintains > a cache of recent ones so they can be efficiently queried from SQL > in normal operation. Yes. > ? Given a base backup and a bunch of WAL from a cluster that had > track_commit_timestamps turned off, is it possible (in principle?) > to do a PITR with the switch turned on, and have the commit_ts > cache get populated (at least from the transactions encountered > in the WAL)? Could that be done by changing the setting in > postgresql.conf for the recovery, or would it take something more > invasive, like poking the value in pg_control? Or would that just > make something fall over? Would it require dummying up some commit_ts > files first? I don't remember if this is explicitly supported, but yeah AFAIR it should work to just start the "promoted standby" (in your case just a recovered backup) on after setting the option in postgresql.conf. This is because StartupCommitTs() activates the commit_ts module just before starting recovery. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services