Re: [HACKERS] [PATCH] quiet conversion warning in DatumGetFloat4 - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [HACKERS] [PATCH] quiet conversion warning in DatumGetFloat4
Date
Msg-id 22297.1496244978@sss.pgh.pa.us
Whole thread Raw
In response to Re: [HACKERS] [PATCH] quiet conversion warning in DatumGetFloat4  (Chapman Flack <chap@anastigmatix.net>)
Responses Re: [HACKERS] [PATCH] quiet conversion warning in DatumGetFloat4  (Chapman Flack <chap@anastigmatix.net>)
List pgsql-hackers
Chapman Flack <chap@anastigmatix.net> writes:
> On 05/31/17 01:26, Tom Lane wrote:
>> Hm.  I think it would be better to use DatumGetInt32 here.  Arguably,
>> direct use of GET_4_BYTES and its siblings should only appear in
>> DatumGetFoo macros.

> Like so? These are the 4 sites where {GET,SET}_n_BYTES got introduced
> in 14cca1b (for consistency, though only the GET_4 case produces warnings).

After experimenting with -Wconversion, I see why we don't use it in
server builds --- it produces an astonishing number of mostly-useless
warnings, which apparently can only be silenced by introducing explicit
casts.  I do not think that cluttering our code with lots more explicit
casts would be a win for either readability or safety.

However, I grant your point that some extensions may have outside
constraints that mandate using -Wconversion, so to the extent that
we can keep key headers like postgres.h from triggering those warnings,
it's probably worth doing.  I suspect you're still seeing a lot of them
though --- experiments with some contrib modules suggest that a lot of
our other headers also contain code that would trigger them.  I do not
think I'd be on board with trying to silence them generally.

However, the present patch seems harmless enough, and arguably a tad
cleaner than what we had, so pushed.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Mark Dilger
Date:
Subject: Re: [HACKERS] Use of non-restart-safe storage by temp_tablespaces
Next
From: Alexander Korotkov
Date:
Subject: [HACKERS] ALTER INDEX .. SET STATISTICS ... behaviour