Re: where clause + function, execution order

Поиск
Список
Период
Сортировка
От Julius Tuskenis
Тема Re: where clause + function, execution order
Дата
Msg-id 4EBD4518.5070508@nsoft.lt
обсуждение исходный текст
Ответ на where clause + function, execution order  (Sorin Dudui <sd@wigeogis.com>)
Ответы Re: where clause + function, execution order  (Richard Huxton <dev@archonet.com>)
Список pgsql-performance
Hello,

On 2011.11.11 17:38, Sorin Dudui wrote:

Hi,

 

I have the following function:

 

===============================

CREATE OR REPLACE FUNCTION xxx(text)

  RETURNS SETOF vvvvv AS

$BODY$

select a.x, a.y,

    CASE

    WHEN strpos($1,b.x) > 0

    THEN b.x

    ELSE NULL

    END AS mp_hm

from  a LEFT JOIN  b ON a.id=b.id

 

                $BODY$

  LANGUAGE sql STABLE

  COST 1000

  ROWS 10000;

===============================

 

which I call as:

 

select * from xxx(‘test0|test1‘)  where a.x = ‘value’

You should get an error as there is no "a" in this statement...

 

 

I am wondering when the where clause (a.x = ‘value’) is executed. After the select statement in the function finishes? Or is it appended at the select statement in the function?

 

Function execute plan is prepared when creating it, so the "where" clause should check the function result not altering its execution..

--
Julius Tuskenis
Head of the programming department
UAB nSoft
mob. +37068233050

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

Предыдущее
От: Sorin Dudui
Дата:
Сообщение: where clause + function, execution order
Следующее
От: Richard Huxton
Дата:
Сообщение: Re: where clause + function, execution order