Re: [HACKERS] [sqlsmith] Planner crash on foreign table join - Mailing list pgsql-hackers

From Andrew Gierth
Subject Re: [HACKERS] [sqlsmith] Planner crash on foreign table join
Date
Msg-id 87d1ckx3gd.fsf@news-spur.riddles.org.uk
Whole thread Raw
In response to Re: [HACKERS] [sqlsmith] Planner crash on foreign table join  (Thomas Munro <thomas.munro@enterprisedb.com>)
Responses Re: [HACKERS] [sqlsmith] Planner crash on foreign table join  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
>>>>> "Thomas" == Thomas Munro <thomas.munro@enterprisedb.com> writes:
>> SomeType *x = (SomeType *) lfirst(l);>> >> (in my code I tend to omit the (SomeType *), which I dislike because>> it
addsno real protection)
 
Thomas> Just BTW, without that cast it's not compilable as C++, so I'mThomas> guessing that Peter E will finish up
puttingit back inThomas> wherever you leave it out...
 

There's north of 150 other examples (just grep for '= lfirst' in the
source). Some were even committed by Peter E :-)

In the discussion with Andres the same point came up for palloc, for
which I suggested we add something along the lines of:

#define palloc_object(_type_) (_type_ *) palloc(sizeof(_type_))
#define palloc_array(_type_, n) (_type_ *) palloc((n) * sizeof(_type_))

palloc() without a cast is even more common than lfirst() without one,
and something like half of those (and 80%+ of the pallocs that do have a
cast) are palloc(sizeof(...)) or palloc(something * sizeof(...)).

-- 
Andrew (irc:RhodiumToad)



pgsql-hackers by date:

Previous
From: "David E. Wheeler"
Date:
Subject: Re: [HACKERS] Malformed Array Literal in PL/pgSQL Exception Block
Next
From: Masahiko Sawada
Date:
Subject: [HACKERS] max_sync_workers_per_subscription is missing in postgresql.conf