Re: where clause + function, execution order

From: Julius Tuskenis <julius(at)nsoft(dot)lt>
To: pgsql-performance(at)postgresql(dot)org
Subject: Re: where clause + function, execution order
Date: 2011-11-11 15:54:00
Message-ID: 4EBD4518.5070508@nsoft.lt
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Richard Huxton 2011-11-11 15:59:49 Re: where clause + function, execution order
Previous Message Sorin Dudui 2011-11-11 15:38:43 where clause + function, execution order