Thread: Calling functions from within pl/pgsql
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
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 >
Στις 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
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 >