Re: When are SQL functions inlined & how can I tell?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: When are SQL functions inlined & how can I tell?
Дата
Msg-id 4463.1325961429@sss.pgh.pa.us
обсуждение исходный текст
Ответ на When are SQL functions inlined & how can I tell?  ("J. Greg Davidson" <jgd@well.com>)
Список pgsql-general
"J. Greg Davidson" <jgd@well.com> writes:
> (1) What are the current criteria for when an SQL function called
> within another SQL function will be inlined?

It depends on a number of things, not least which PG version you're
talking about.  When in doubt, consult the source code (see
inline_function or inline_set_returning_function in
src/backend/optimizer/util/clauses.c)

> (2) Is there some easy way to tell without massive logging whether
> a particular function has been inlined?  I've tried doing various

> EXPLAIN ... SELECT foo(...);

> kinds of things where foo() calls bar() and I don't see that I can
> tell anything about the inline status of either function.

Try EXPLAIN VERBOSE.  You should see either the function or its
expansion.

            regards, tom lane

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

Предыдущее
От: "J. Greg Davidson"
Дата:
Сообщение: When are SQL functions inlined & how can I tell?
Следующее
От: Mike Christensen
Дата:
Сообщение: Is there a reason why Postgres doesn't have Byte or tinyint?