Thread: Calling functions from within pl/pgsql

Calling functions from within pl/pgsql

From
Achilleas Mantzios
Date:
I noticed that in pl/pgsql simply
result := funcname(func,args,...);
just works.
Should i rely on it or take it as a coincidence? :)
-- 
Achilleas Mantzios


Re: Calling functions from within pl/pgsql

From
"Pavel Stehule"
Date:
On 04/12/2007, Achilleas Mantzios <achill@matrix.gatewaynet.com> wrote:
> I noticed that in pl/pgsql simply
> result := funcname(func,args,...);
> just works.
> Should i rely on it or take it as a coincidence? :)

You found assignment :). Sure, you can use it.
http://www.postgresql.org/docs/8.2/interactive/plpgsql-statements.html#PLPGSQL-STATEMENTS-ASSIGNMENT

Regards
Pavel Stehule

> --
> Achilleas Mantzios
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend
>


Re: Calling functions from within pl/pgsql

From
Achilleas Mantzios
Date:
Στις Tuesday 04 December 2007 14:59:43 ο/η Pavel Stehule έγραψε:
> On 04/12/2007, Achilleas Mantzios <achill@matrix.gatewaynet.com> wrote:
> > I noticed that in pl/pgsql simply
> > result := funcname(func,args,...);
> > just works.
> > Should i rely on it or take it as a coincidence? :)
>
> You found assignment :). Sure, you can use it.
> http://www.postgresql.org/docs/8.2/interactive/plpgsql-statements.html#PLPG
>SQL-STATEMENTS-ASSIGNMENT

Sure, i missed the
"As explained above, the expression in such a statement is evaluated by means
of an SQL SELECT command sent to the main database engine. The expression
must yield a single value."
part.
Thanx.

>
> Regards
> Pavel Stehule
>
> > --
> > Achilleas Mantzios
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 6: explain analyze is your friend



--
Achilleas Mantzios


Re: Calling functions from within pl/pgsql

From
"Pavel Stehule"
Date:
Hello

a := exprx

is internally translated : get result of SELECT exprx and store it to a

so you can write select sin(10);  then you can a := sin(10)

but you can too use subselect like:

SELECT (SELECT v FROM foo LIMIT 1) ~ you can write

a := (SELECT v FROM foo LIMIT 1);

that is equal to SELECT INTO a v FROM foo

Pavel


> > http://www.postgresql.org/docs/8.2/interactive/plpgsql-statements.html#PLPG
> >SQL-STATEMENTS-ASSIGNMENT
>
> Sure, i missed the
> "As explained above, the expression in such a statement is evaluated by means
> of an SQL SELECT command sent to the main database engine. The expression
> must yield a single value."
> part.
> Thanx.
>
> >
> > Regards
> > Pavel Stehule
> >
> > > --
> > > Achilleas Mantzios
> > >
> > > ---------------------------(end of broadcast)---------------------------
> > > TIP 6: explain analyze is your friend
>
>
>
> --
> Achilleas Mantzios
>