Re: Patch: add timing of buffer I/O requests
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Greg Stark <stark@mit.edu>
Cc: Robert Haas <robertmhaas@gmail.com>, Peter Geoghegan <peter@2ndquadrant.com>, Ants Aasma <ants@cybertec.at>, Greg Smith <greg@2ndquadrant.com>, pgsql-hackers@postgresql.org
Date: 2012-04-25T18:08:56Z
Lists: pgsql-hackers
Greg Stark <stark@mit.edu> writes: > On Wed, Apr 25, 2012 at 5:47 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Also, as was pointed out upthread, the underlying data in shared memory >> is almost certainly never going to be infinite-precision; so using >> numeric in the API seems to me to be more likely to convey a false >> impression of exactness than to do anything useful. > I don't think that follows. The underlyng data will be measured in > some metric unit of time like microsecond or nanosecond or something > like that. So a base-10 representation will show exactly the precision > that the underlying data has. On the other hand a floating point > number will show a base-2 approximation that may in fact display with > more digits than the underlying data representation has. My point is that the underlying data is going to be stored in a fixed-width representation, and therefore it will have accuracy and/or range limitations that are considerably more severe than use of "numeric" for output might suggest to the user. In the current pg_stat_statements code, timings are in fact accumulated in float8, and emitting them as something other than float8 is just plain misleading IMHO. regards, tom lane