Re: Expand palloc/pg_malloc API

Поиск
Список
Период
Сортировка
От Bharath Rupireddy
Тема Re: Expand palloc/pg_malloc API
Дата
Msg-id CALj2ACU+9qnHVq82v6CjG+LD5yTc=gnXxFc2SJ=uPJFtSA3=0Q@mail.gmail.com
обсуждение исходный текст
Ответ на Expand palloc/pg_malloc API  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Ответы Re: Expand palloc/pg_malloc API  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Tue, May 17, 2022 at 5:11 PM Peter Eisentraut
<peter.eisentraut@enterprisedb.com> wrote:
>
> This adds additional variants of palloc, pg_malloc, etc. that
> encapsulate common usage patterns and provide more type safety.
>
> Examples:
>
> -   result = (IndexBuildResult *) palloc(sizeof(IndexBuildResult));
> +   result = palloc_obj(IndexBuildResult);
>
> -   collector->tuples = (IndexTuple *) palloc(sizeof(IndexTuple) *
>                                                collector->lentuples);
> +   collector->tuples = palloc_array(IndexTuple, collector->lentuples);
>
> One common point is that the new interfaces all have a return type that
> automatically matches what they are allocating, so you don't need any
> casts nor have to manually make sure the size matches the expected
> result.  Besides the additional safety, the notation is also more
> compact, as you can see above.
>
> Inspired by the talloc library.
>
> The interesting changes are in fe_memutils.h and palloc.h.  The rest of
> the patch is just randomly sprinkled examples to test/validate the new
> additions.

It seems interesting. Are we always type-casting explicitly the output
of palloc/palloc0? Does this mean the compiler takes care of
type-casting the returned void * to the target type?

I see lots of instances where there's no explicit type-casting to the
target variable type -
        retval = palloc(sizeof(GISTENTRY));
        Interval   *p = palloc(sizeof(Interval));
        macaddr    *v = palloc0(sizeof(macaddr)); and so on.

Regards,
Bharath Rupireddy.



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

Предыдущее
От: Mahendra Singh Thalor
Дата:
Сообщение: Re: Collecting statistics about contents of JSONB columns
Следующее
От: Nikolay Shaplov
Дата:
Сообщение: Re: [PATCH] New [relation] option engine