Robert Haas wrote:
> I'm wondering why md.c is converting the results from an exact value to a floating
> point, only to have xlog.c turn around and convert back to an integer.
> I think it could just return milliseconds directly, or if you're
> worried about a checkpoint that takes more than 24 days to complete,
> seconds and microseconds.
md.c is printing the value as a float, so I converted early to a double
and then percolated it upward from there. More an artifact of how the
code grew from its initial form than an intentional decision. I see your
point that making elapsed, total_elapsed, ckpt_agg_sync_time, and
ckpt_longest_sync all the same type of integer that
INSTR_TIME_GET_MICROSEC returns would reduce the potential for rounding
abberations. I could do another rev of the patch tomorrow with that
change if you'd prefer it that way. I don't have a strong opinion about
that implementation detail; given that xlog.c is printing a less
fine-grained time anyway (seconds with 3 digits vs. msec with 3 digits)
it seems unlikely to run into a real problem here.
--
Greg Smith 2ndQuadrant US greg@2ndQuadrant.com Baltimore, MD
PostgreSQL Training, Services and Support www.2ndQuadrant.us
"PostgreSQL 9.0 High Performance": http://www.2ndQuadrant.com/books