PARALLEL SAFE/UNSAFE question

Поиск
Список
Период
Сортировка
От Satoshi Nagayasu
Тема PARALLEL SAFE/UNSAFE question
Дата
Msg-id CAA8sozefPOjcjkhS5JtOE2kQa_Wpkygdx27yjDftcJX7beoi+Q@mail.gmail.com
обсуждение исходный текст
Ответы Re: PARALLEL SAFE/UNSAFE question  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Hi all,

I was trying writing my own parallel aggregation functions on 9.6beta2.
During that, we found a bit confusing behavior with SAFE/UNSAFE options.

Once a PARALLEL UNSAFE function f1_unsafe() is wrapped by
a PARALLEL SAFE function f1_safe_unsafe(), calling f1_safe_unsafe()
produces a parallel execution plan despite it implicitly calls
the UNSAFE FUNCTION f1_unsafe().

Is this intentional?

Please take a look at our example here:
https://gist.github.com/snaga/362a965683fb2581bc693991b1fcf721

According to the manual[1], it is described as:

> the presence of such a function in an SQL statement forces a serial execution plan.

so, I expected that calling UNSAFE functions should produce
a non-parallel execution plan even wrapped in SAFE functions.

Is this a sort of limitations? Is this working correctly as we expected?

Regards,

[1] https://www.postgresql.org/docs/9.6/static/sql-createfunction.html
-- 
Satoshi Nagayasu <snaga@uptime.jp>



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

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: Reviewing freeze map code
Следующее
От: Stephen Frost
Дата:
Сообщение: Re: Password identifiers, protocol aging and SCRAM protocol