public inbox for [email protected]
help / color / mirror / Atom feedFrom: Tom Lane <[email protected]>
To: Michael Paquier <[email protected]>
Cc: Greg Burd <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Cc: Robert Haas <[email protected]>
Cc: Nathan Bossart <[email protected]>
Cc: Masahiko Sawada <[email protected]>
Subject: Re: [PATCH] Add tests for Bitmapset
Date: Tue, 23 Sep 2025 12:46:49 -0400
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
Michael Paquier <[email protected]> writes:
> On Tue, Sep 23, 2025 at 01:43:47AM -0400, Tom Lane wrote:
>> This patch seems to be rather full of arbitrary casts to or
>> from Datum, which is no longer okay. You need to be using
>> the appropriate conversion macros, such as PointerGetDatum.
> Right, this can ve reproduced with a -m32 added to gcc.
Curiously, I don't see these warnings on 32-bit FreeBSD
(with clang version 19.1.7). But I tested your patch on
mamba's host and confirmed that it makes that gcc happy.
> I don't see a need for a Datum manipulation in these conversion
> macros, as we already allocate the results to and from "text"
> before/after using the GETARG or RETURN macros. Using directly
> text_to_cstring() and cstring_to_text() takes care of the warnings, as
> well.
Yeah, this is better, but I think the new macros could use a bit
more parenthesis-twiddling:
+#define BITMAPSET_TO_TEXT(bms) cstring_to_text(nodeToString((bms)))
The extra parens around "bms" are surely unnecessary. (If they were
necessary, it could only be because nodeToString was a macro that
failed to parenthesize its argument where needed. But that would
be a bug to fix in nodeToString, not here.)
+#define TEXT_TO_BITMAPSET(str) (Bitmapset *) stringToNode(text_to_cstring(str))
Here, on the other hand, I think an extra outer set of parens
would be a good idea, ie
+#define TEXT_TO_BITMAPSET(str) ((Bitmapset *) stringToNode(text_to_cstring(str)))
It may be that the C cast binds tightly enough that this cannot
be a problem, but I don't think assuming that is project style.
regards, tom lane
view thread (81+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: [PATCH] Add tests for Bitmapset
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox