Coordinate log_line_prefix options 'm' and 'n' to share a timeval.
authorJeff Davis <jdavis@postgresql.org>
Mon, 7 Sep 2015 22:40:49 +0000 (15:40 -0700)
committerJeff Davis <jdavis@postgresql.org>
Mon, 7 Sep 2015 22:40:49 +0000 (15:40 -0700)
commitb1e1862a123b6904d51fd0a607e30f5832bf9a1f
tree1fb81709321cf84a8340a3ac1a4595b493a81199
parentd94c36a45ab457cf43bad76656f77778b3318523
Coordinate log_line_prefix options 'm' and 'n' to share a timeval.

Commit f828654e introduced the 'n' option, but it invoked
gettimeofday() independently of the 'm' option. If both options were
in use (or multiple 'n' options), or if 'n' was in use along with
csvlog, then the reported times could be different for the same log
message.

To fix, initialize a global variable with gettimeofday() once per log
message, and use that for both formats.

Don't bother coordinating the time for the 't' option, which has much
lower resolution.

Per complaint by Alvaro Herrera.
src/backend/utils/error/elog.c