Re: [BUGS] BUG #14838: clock_timestamp() returns same values for each row - Mailing list pgsql-bugs

From Magnus Hagander
Subject Re: [BUGS] BUG #14838: clock_timestamp() returns same values for each row
Date
Msg-id CABUevEyHu74AtDyB96t7r+LgbN2beBJhdxOhMVE2Ch9izkQ9GQ@mail.gmail.com
Whole thread Raw
In response to Re: [BUGS] BUG #14838: clock_timestamp() returns same values for each row  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs


On Fri, Sep 29, 2017 at 8:03 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Jeff Janes <jeff.janes@gmail.com> writes:
> On Fri, Sep 29, 2017 at 6:43 AM, <zam6ak@gmail.com> wrote:
>> We use clock_timestamp() function in our code and I have noticed that in PG
>> 10 RC1 it returns same values across rows...

> Probably not an issue of the different versions, but rather different
> compilers (or maybe different hardware?).

AFAICS, our code in this area (see src/port/gettimeofday.c) has not
changed since 9.5.  I'm suspicious of a platform change.

> I get the same behavior on these two versions:
> ...
> and that behavior is that the timestamp jumps 500 usec at a time, despite
> looking as if it might have usec granularity:

What gettimeofday.c does is to use GetSystemTimePreciseAsFileTime()
if it can get hold of that, otherwise fall back to
GetSystemTimeAsFileTime().  I don't see anything very specific in
Windows' documentation about the resolution to be expected from either
one, but I wonder if the OP's 9.6 installation is using the former
while for some reason his 10rc1 installation is using the latter.

The documentatino for  GetSystemTimePreciseAsFileTime() specifically says "the current system date and time with the highest possible level of precision (<1us)". Which is not super specific, but certainly a lot lower than the 500us observed.

GetSystemTime() is AFAIK at millisecond level, I recall reading about 10ms.

--

pgsql-bugs by date:

Previous
From: zambak zambak
Date:
Subject: Re: [BUGS] BUG #14838: clock_timestamp() returns same values for each row
Next
From: Lucas O
Date:
Subject: [BUGS] bug report