@ -6768,6 +6768,28 @@ ShutdownXLOG(int code, Datum arg)
}
}
/*
* Format checkpoint request flags as a space - separated string for
* log messages .
*/
static const char *
CheckpointFlagsString ( int flags )
{
static char buf [ 128 ] ;
snprintf ( buf , sizeof ( buf ) , " %s%s%s%s%s%s%s%s " ,
( flags & CHECKPOINT_IS_SHUTDOWN ) ? " shutdown " : " " ,
( flags & CHECKPOINT_END_OF_RECOVERY ) ? " end-of-recovery " : " " ,
( flags & CHECKPOINT_FAST ) ? " fast " : " " ,
( flags & CHECKPOINT_FORCE ) ? " force " : " " ,
( flags & CHECKPOINT_WAIT ) ? " wait " : " " ,
( flags & CHECKPOINT_CAUSE_XLOG ) ? " wal " : " " ,
( flags & CHECKPOINT_CAUSE_TIME ) ? " time " : " " ,
( flags & CHECKPOINT_FLUSH_UNLOGGED ) ? " flush-unlogged " : " " ) ;
return buf ;
}
/*
* Log start of a checkpoint .
*/
@ -6776,35 +6798,21 @@ LogCheckpointStart(int flags, bool restartpoint)
{
if ( restartpoint )
ereport ( LOG ,
/* translator: the placeholders show checkpoint options */
( errmsg ( " restartpoint starting:%s%s%s%s%s%s%s%s " ,
( flags & CHECKPOINT_IS_SHUTDOWN ) ? " shutdown " : " " ,
( flags & CHECKPOINT_END_OF_RECOVERY ) ? " end-of-recovery " : " " ,
( flags & CHECKPOINT_FAST ) ? " fast " : " " ,
( flags & CHECKPOINT_FORCE ) ? " force " : " " ,
( flags & CHECKPOINT_WAIT ) ? " wait " : " " ,
( flags & CHECKPOINT_CAUSE_XLOG ) ? " wal " : " " ,
( flags & CHECKPOINT_CAUSE_TIME ) ? " time " : " " ,
( flags & CHECKPOINT_FLUSH_UNLOGGED ) ? " flush-unlogged " : " " ) ) ) ;
/* translator: the placeholder shows checkpoint options */
( errmsg ( " restartpoint starting:%s " ,
CheckpointFlagsString ( flags ) ) ) ) ;
else
ereport ( LOG ,
/* translator: the placeholders show checkpoint options */
( errmsg ( " checkpoint starting:%s%s%s%s%s%s%s%s " ,
( flags & CHECKPOINT_IS_SHUTDOWN ) ? " shutdown " : " " ,
( flags & CHECKPOINT_END_OF_RECOVERY ) ? " end-of-recovery " : " " ,
( flags & CHECKPOINT_FAST ) ? " fast " : " " ,
( flags & CHECKPOINT_FORCE ) ? " force " : " " ,
( flags & CHECKPOINT_WAIT ) ? " wait " : " " ,
( flags & CHECKPOINT_CAUSE_XLOG ) ? " wal " : " " ,
( flags & CHECKPOINT_CAUSE_TIME ) ? " time " : " " ,
( flags & CHECKPOINT_FLUSH_UNLOGGED ) ? " flush-unlogged " : " " ) ) ) ;
/* translator: the placeholder shows checkpoint options */
( errmsg ( " checkpoint starting:%s " ,
CheckpointFlagsString ( flags ) ) ) ) ;
}
/*
* Log end of a checkpoint .
*/
static void
LogCheckpointEnd ( bool restartpoint )
LogCheckpointEnd ( bool restartpoint , int flags )
{
long write_msecs ,
sync_msecs ,
@ -6854,12 +6862,13 @@ LogCheckpointEnd(bool restartpoint)
*/
if ( restartpoint )
ereport ( LOG ,
( errmsg ( " restartpoint complete: wrote %d buffers (%.1f%%), "
( errmsg ( " restartpoint complete:%s: wrote %d buffers (%.1f%%), "
" wrote %d SLRU buffers; %d WAL file(s) added, "
" %d removed, %d recycled; write=%ld.%03d s, "
" sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, "
" longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, "
" estimate=%d kB; lsn=%X/%08X, redo lsn=%X/%08X " ,
CheckpointFlagsString ( flags ) ,
CheckpointStats . ckpt_bufs_written ,
( double ) CheckpointStats . ckpt_bufs_written * 100 / NBuffers ,
CheckpointStats . ckpt_slru_written ,
@ -6878,12 +6887,13 @@ LogCheckpointEnd(bool restartpoint)
LSN_FORMAT_ARGS ( ControlFile - > checkPointCopy . redo ) ) ) ) ;
else
ereport ( LOG ,
( errmsg ( " checkpoint complete: wrote %d buffers (%.1f%%), "
( errmsg ( " checkpoint complete:%s: wrote %d buffers (%.1f%%), "
" wrote %d SLRU buffers; %d WAL file(s) added, "
" %d removed, %d recycled; write=%ld.%03d s, "
" sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, "
" longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, "
" estimate=%d kB; lsn=%X/%08X, redo lsn=%X/%08X " ,
CheckpointFlagsString ( flags ) ,
CheckpointStats . ckpt_bufs_written ,
( double ) CheckpointStats . ckpt_bufs_written * 100 / NBuffers ,
CheckpointStats . ckpt_slru_written ,
@ -7480,7 +7490,7 @@ CreateCheckPoint(int flags)
TruncateSUBTRANS ( GetOldestTransactionIdConsideredRunning ( ) ) ;
/* Real work is done; log and update stats. */
LogCheckpointEnd ( false ) ;
LogCheckpointEnd ( false , flags ) ;
/* Reset the process title */
update_checkpoint_display ( flags , false , true ) ;
@ -7951,7 +7961,7 @@ CreateRestartPoint(int flags)
TruncateSUBTRANS ( GetOldestTransactionIdConsideredRunning ( ) ) ;
/* Real work is done; log and update stats. */
LogCheckpointEnd ( true ) ;
LogCheckpointEnd ( true , flags ) ;
/* Reset the process title */
update_checkpoint_display ( flags , true , true ) ;