subxcnt defined as signed integer in SnapshotData and SerializeSnapshotData

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>
Subject: subxcnt defined as signed integer in SnapshotData and SerializeSnapshotData
Date: 2015-05-08 01:40:50
Message-ID: CAB7nPqTj4wuS1sAb=HQmBu=YNJWZGrFuRmGNq2CQ8i7rASoE5w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi all,

Coverity is complaining about the following assertion introduced in
commit 924bcf4 (parallel stuff, SerializeSnapshot(at)snapmgr(dot)c):
+ Assert(snapshot->xcnt >= 0);

Now the thing is that this assertion does not make much sense, because
SnapshotData defines subxcnt as uint32 in snapshot.h. While we could
simply remove this assertion, I am wondering if we could not change
subxcnt to uint32 instead.

SnapshotData has been introduced in 2008 by d43b085, with this comment:
+ int32 subxcnt; /* # of xact ids in
subxip[], -1 if overflow */
Comment regarding negative values removed in efc16ea5.

Now, by looking at the code on HEAD, I am seeing no code paths that
make use of negative values of subxcnt. Perhaps I am missing
something?
Regards,
--
Michael

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2015-05-08 01:42:45 Re: "Bugs" CF?
Previous Message Tom Lane 2015-05-08 01:38:21 Re: Custom/Foreign-Join-APIs (Re: [v9.5] Custom Plan API)