Re: IMMUTABLE and PARALLEL SAFE function markings

Поиск
Список
Период
Сортировка
От Vik Fearing
Тема Re: IMMUTABLE and PARALLEL SAFE function markings
Дата
Msg-id 61f07ce9-6a1f-4d51-10ee-1632d4b423be@2ndquadrant.com
обсуждение исходный текст
Ответ на Re: IMMUTABLE and PARALLEL SAFE function markings  (Andres Freund <andres@anarazel.de>)
Ответы Re: IMMUTABLE and PARALLEL SAFE function markings  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
On 27/11/2018 00:39, Andres Freund wrote:
> Hi,
> 
> On 2018-11-27 00:33:10 +0100, Vik Fearing wrote:
>> On 26/11/2018 22:23, Gajus Kuizinas wrote:
>>> I was wondering what is the reason IMMUTABLE functions are not by
>>> default PARALLEL SAFE and if the default behaviour could be changed to
>>> make IMMUTABLE functions PARALLEL SAFE?
>>
>> I think I have to concur with this.  When is an immutable function not
>> parallel safe?
>>
>> Sure it could be mislabeled as immutable but it could just as easily be
>> mislabeled as parallel safe.  And we already treat fake immutable
>> functions as user errors, for example in indexes.
> 
> I think it'd introduce more problems than it'd solve. Either you ignore
> the proparallel setting - resulting in broken catalog querying - or you
> have to have a decent amount of special behaviour that an explicit ALTER
> FUNCTION ... IMMUTABLE | STABLE | VOLATILE and SET PARALLEL { UNSAFE
> | RESTRICTED | SAFE } would also need to change the respective other
> category.

Surely a simple rule could be made that provolatile='i' trumps
proparallel.  No need to make them agree.

The default catalogs should agree (and I would expect the sanity checks
to look for that) but here we're talking about user functions.
-- 
Vik Fearing                                          +33 6 46 75 15 36
http://2ndQuadrant.fr     PostgreSQL : Expertise, Formation et Support


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

Предыдущее
От: Andres Freund
Дата:
Сообщение: pg_config wrongly marked as not parallel safe?
Следующее
От: Andres Freund
Дата:
Сообщение: Re: IMMUTABLE and PARALLEL SAFE function markings