Re: Review: plpgsql.extra_warnings, plpgsql.extra_errors

Поиск
Список
Период
Сортировка
От Piotr Stefaniak
Тема Re: Review: plpgsql.extra_warnings, plpgsql.extra_errors
Дата
Msg-id BLU0-SMTP1051D8288051C0ED70B6390F2780@phx.gbl
обсуждение исходный текст
Ответ на Re: Review: plpgsql.extra_warnings, plpgsql.extra_errors  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Review: plpgsql.extra_warnings, plpgsql.extra_errors  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On 03/22/2014 04:00 PM, Tom Lane wrote:
> That argument is entirely bogus, as it considers only one possible way
> in which the call could be wrong; a way that is of very low probability
> in PG usage, since we include <stdlib.h> in our core headers.  Besides
> which, as noted in the page itself, most modern compilers would warn
> anyway if you forgot the inclusion.
>
Apart from what the page says, I also think of casting malloc() as bad 
style and felt the need to bring this up. But since you pointed out why 
you don't want to remove the cast, I withdraw my previous suggestion.

> On the other side, coding with the explicit cast helps guard against far
> more dangerous coding errors, which the compiler will *not* help you with.
> What if myextra is actually of type "int64 *"?  In that case you probably
> meant to make enough space for an int64 not an int.  But without the cast,
> you won't be told you did anything wrong.  This is a particular hazard if
> you change your mind later on about the type of myextra.  (A colleague
> at Salesforce got burnt in exactly that way, just a couple days ago.)
>
So perhaps this alternative:  myextra = malloc(sizeof *myextra);


PS.
Coding style matters to me, but I was and still am far from insisting on 
anything.



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Inheritance of foregn key constraints.
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Review: plpgsql.extra_warnings, plpgsql.extra_errors