Re: why does plperl cache functions using just a bool for is_trigger

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: why does plperl cache functions using just a bool for is_trigger
Дата
Msg-id 22214.1287960287@sss.pgh.pa.us
обсуждение исходный текст
Ответ на why does plperl cache functions using just a bool for is_trigger  (Jan Urbański <wulczer@wulczer.org>)
Ответы Re: why does plperl cache functions using just a bool for is_trigger  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
Jan Urbański <wulczer@wulczer.org> writes:
> I see that plperl uses a triple of (function oid, is_trigger flag, user
> id) as a hash key for caching compiled functions. OTOH pltcl and plpgsql
> both use (oid, trigger relation oid, user id). Is there any reason why
> just using a bool as plperl does would be wrong?

plpgsql needs to consider the trigger relation OID because datatypes of
the trigger relation's columns will make their way into cached plans
for the function.  The same function, if applied as a trigger on two
different rels, could therefore have different cached plans so it needs
two separate cache entries.

In PLs where this kind of dependency isn't possible, there's no need for
separate function cache entries.

I'm not certain that plperl is actually correct to do it that way,
but that's the basic idea.
        regards, tom lane


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

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: WIP: extensible enums
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Range Types, discrete and/or continuous