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
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 |