Re: Don't allocate IndexAmRoutine dynamically?

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: Don't allocate IndexAmRoutine dynamically?
Дата
Msg-id 20190625210609.4lbkgsdmyl6bvycs@alap3.anarazel.de
обсуждение исходный текст
Ответ на Re: Don't allocate IndexAmRoutine dynamically?  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Don't allocate IndexAmRoutine dynamically?  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Hi,

On 2019-06-25 16:15:17 -0400, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > I think it might be worthwhile require that IndexAmRoutine returned by
> > amhandler are allocated statically.
> 
> +1.  Could only be an issue if somebody were tempted to have time-varying
> entries in them, but it's hard to see why that could be a good idea.

Yea, that seems like a use case we wouldn't want to support. If
something like that is needed, they ought to store it in the relcache.


> Should we enforce this for *all* handler objects?  If only index AMs,
> why only them?

Well, tableams do that already. Other than indexam and tableam I think
there's also FDW and TSM routines - are there any others? Changing the
FDW API seems like it'd incur some work to a lot more people than any of
the others - I'm not sure it's worth it.


> > It seems to me like there's not that many index AMs out there, so
> > changing the signature of amhandler() to require returning a const
> > pointer to a const object ought to both be enough of a warning, and not
> > too big a burden.
> 
> One too many "consts" there.  Pointer to const object seems fine.
> The other part is either meaningless or will cause problems.

Yea - I was thinking of the pointer in RelationData, where having it as
const *Routine const; would make sense (but it's annoying to do without
invoking technically undefined behaviour, doing ugly things with memcpy
or duplicating struct definitions).

Greetings,

Andres Freund



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

Предыдущее
От: James Coleman
Дата:
Сообщение: Re: [PATCH] Incremental sort (was: PoC: Partial sort)
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Don't allocate IndexAmRoutine dynamically?