This has the merit to be clear, thanks for the input. Whatever the approach taken at the end we have two candidates: - Extend XLogInsert() with an extra argument for flags (Andres) - Introduce XLogInsertExtended with this extra argument and let XLogInsert() in peace (Robert and I). Actually, I lied, there was still something I could do for this thread: attached are two patches implementing both approaches as respectively a-1 and a-2. Patch b is the set of logs I used for the tests to show with a low checkpoint_timeout that checkpoints are getting correctly skipped on an idle system.
Unfortunately neither A nor B apply anymore.
However, since the patches can still be read through I wonder if Robert or Andres would care to opine on whether A or B is better now that they can see the full implementation?
For my 2c I'm happy with XLogInsertExtended() since it seems to be a rare use case where flags are required. This can always be refactored in the future if/when the use of flags spreads.
XLogInsertExtended() is the one I would commit, if.
--
Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services