This is a discussion on Executing Anonymous Blocks within the pgsql Hackers forums, part of the PostgreSQL category; --> hi, I want to know is there any way to execute an anonymous PL/pgSQL block in PostgreSQL. Thanx -- ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| hi, I want to know is there any way to execute an anonymous PL/pgSQL block in PostgreSQL. Thanx -- Regards Imad ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match |
| |||
| On Mon, Mar 28, 2005 at 12:27:18PM +0500, imad wrote: > I want to know is there any way to execute an anonymous PL/pgSQL block > in PostgreSQL. No, there isn't. -- Alvaro Herrera (<alvherre[@]dcc.uchile.cl>) Al principio era UNIX, y UNIX habló y dijo: "Hello world\n". No dijo "Hello New Jersey\n", ni "Hello USA\n". ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@postgresql.org so that your message can get through to the mailing list cleanly |
| |||
| Alvaro Herrera wrote: > On Mon, Mar 28, 2005 at 12:27:18PM +0500, imad wrote: >>I want to know is there any way to execute an anonymous PL/pgSQL block >>in PostgreSQL. > > No, there isn't. It might be possible to implement at least some of this functionality entirely in the client. So: BLOCK; /* your pl/pgsql code here */ END BLOCK; Could be transformed by the client app to: CREATE FUNCTION anon_xxx() AS '/* your pl/pgsql code here' RETURNS void LANGUAGE 'plpgsql'; SELECT anon_xxx(); DROP FUNCTION anon_xxx(); This would be pretty limited -- you couldn't get a return value from the anonymous block, for example -- but I can see it being useful in some situations. -Neil ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match |
| ||||
| Neil Conway said: > Alvaro Herrera wrote: >> On Mon, Mar 28, 2005 at 12:27:18PM +0500, imad wrote: >>>I want to know is there any way to execute an anonymous PL/pgSQL block >>>in PostgreSQL. >> >> No, there isn't. > > It might be possible to implement at least some of this functionality > entirely in the client. So: > > BLOCK; > /* your pl/pgsql code here */ > END BLOCK; > > Could be transformed by the client app to: > > CREATE FUNCTION anon_xxx() AS '/* your pl/pgsql code here' > RETURNS void LANGUAGE 'plpgsql'; > SELECT anon_xxx(); > DROP FUNCTION anon_xxx(); > > This would be pretty limited -- you couldn't get a return value from > the anonymous block, for example -- but I can see it being useful in > some situations. > I don't see that performing the same transformation at the SQL level would be any harder. Then if we ever got SQL host variables we might have a good way of using them ;-). Of course, another question is whether we should make plpgsql special, or allow anonymous blocks in any supported language. cheers andrew ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org |