Bill Studenmund writes:
> Could you please give me an example of how to do this, say for plperl or
> plpython? Just showing how two functions made with CREATE FUNCTION can use
> global variables will be fine. This example will help me understand how
> they work.
For PL/Tcl you use regular Tcl global variables:
create function produce(text) returns text as ' global foo; set foo $1;
' language pltcl;
create function consume() returns text as ' global foo; return $foo;
' language pltcl;
There is also a mechanism for one procedure to save private data across
calls.
For PL/Python you use a global dictionary:
create function produce(text) returns text as ' GD["key"] = args[0]
' language plpython;
create function consume() returns text as ' return GD["key"]
' language plpython;
There is also a dictionary for private data.
For PL/Perl I'm not sure if something has been implemented. In C you can
use shared memory, and for PL/sh you would use temp files of course. ;-)
--
Peter Eisentraut peter_e@gmx.net http://funkturm.homeip.net/~peter