Re: [HACKERS] safer node casting

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [HACKERS] safer node casting
Дата
Msg-id 15967.1485480546@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: [HACKERS] safer node casting  (Andres Freund <andres@anarazel.de>)
Ответы Re: [HACKERS] safer node casting  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> On 2016-12-31 12:08:22 -0500, Peter Eisentraut wrote:
>> This is inspired by the dynamic_cast operator in C++, but follows the
>> syntax of the well-known makeNode() macro.

> The analogy to dynamic_cast goes only so far, because we don't actually
> support inheritance.  I.e. in c++ we could successfully cast SeqScanState to a
> PlanState, ScanState and SeqScanState - but with our model only
> SeqScanState can be checked.

Yeah, I was thinking about that earlier --- this can only be used to cast
to a concrete node type, not one of the "abstract" types like Plan * or
Expr *.  Not sure if that's worth worrying about though; I don't think
I've ever seen actual bugs in PG code from casting the wrong thing in that
direction.  For the most part, passing the wrong thing would end up firing
a default: case in a switch, or some such, so we already do have some
defenses for that direction.
        regards, tom lane



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

Предыдущее
От: Haribabu Kommi
Дата:
Сообщение: Re: [HACKERS] New SQL counter statistics view (pg_stat_sql)
Следующее
От: Andres Freund
Дата:
Сообщение: Re: [HACKERS] safer node casting