Signed vs. Unsigned (some)

Ranier Vilela <ranier.vf@gmail.com>

From: Ranier Vilela <ranier.vf@gmail.com>
To: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2021-06-12T02:05:29Z
Lists: pgsql-hackers

Attachments

Hi,

Removing legitimate warnings can it be worth it?

-1 CAST can be wrong, when there is an invalid value defined
(InvalidBucket, InvalidBlockNumber).
I think depending on the compiler -1 CAST may be different from
InvalidBucket or InvalidBlockNumber.

pg_rewind is one special case.
All cases of XLogSegNo (uint64) initialization are zero, but in pg_rewind
was used -1?
I did not find it InvalidXLogSegNo!
Not tested.

Trivial patch attached.

best regards,
Ranier Vilela

Commits

  1. Silence minor compiler warnings.

  2. Use InvalidBucket instead of -1 where appropriate

  3. Set pg_class.reltuples for partitioned tables

  4. Redefine pg_class.reltuples to be -1 before the first VACUUM or ANALYZE.