Обсуждение: Re: Remove one TimestampTzGetDatum call in pg_stat_get_io()
Bertrand Drouvot <bertranddrouvot.pg@gmail.com> writes:
> While working on the per backend I/O statistics patch ([1]), I noticed that
> there is an unnecessary call to TimestampTzGetDatum() in pg_stat_get_io() (
> as the reset_time is already a Datum).
Hmm, TimestampTzGetDatum is not a no-op on 32-bit machines. If you're
correct about this, why are our 32-bit BF animals not crashing? Are
we failing to test this code?
regards, tom lane
I wrote:
> Hmm, TimestampTzGetDatum is not a no-op on 32-bit machines. If you're
> correct about this, why are our 32-bit BF animals not crashing? Are
> we failing to test this code?
Oh, I had the polarity backwards: this error doesn't result in trying
to dereference something that's not a pointer, but rather in
constructing an extra indirection layer, with the end result being
that the timestamp displayed in the pg_stat_io view is garbage
(I saw output like "1999-12-31 19:11:45.880208-05" while testing in
a 32-bit VM). It's not so surprising that our regression tests are
insensitive to the values being displayed there.
I confirm that this fixes the problem. Will push shortly.
regards, tom lane
Hi, On Fri, Sep 06, 2024 at 11:40:56AM -0400, Tom Lane wrote: > I wrote: > > Hmm, TimestampTzGetDatum is not a no-op on 32-bit machines. If you're > > correct about this, why are our 32-bit BF animals not crashing? Are > > we failing to test this code? > > Oh, I had the polarity backwards: this error doesn't result in trying > to dereference something that's not a pointer, but rather in > constructing an extra indirection layer, with the end result being > that the timestamp displayed in the pg_stat_io view is garbage > (I saw output like "1999-12-31 19:11:45.880208-05" while testing in > a 32-bit VM). It's not so surprising that our regression tests are > insensitive to the values being displayed there. > > I confirm that this fixes the problem. Will push shortly. Thanks! Yeah was going to reply that that would display incorrect results on 32-bit (and not crashing). And since the tests don't check the values then we did not notice. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com