PostgreSQL 8.3.0 Documentation | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 39. PL/Tcl - Tcl Procedural Language | Fast Forward | Next |
Sometimes it is useful to have some global data that is held between two calls to a function or is shared between different functions. This is easily done since all PL/Tcl functions executed in one session share the same safe Tcl interpreter. So, any global Tcl variable is accessible to all PL/Tcl function calls and will persist for the duration of the SQL session. (Note that PL/TclU functions likewise share global data, but they are in a different Tcl interpreter and cannot communicate with PL/Tcl functions.)
To help protect PL/Tcl functions from unintentionally interfering
with each other, a global
array is made available to each function via the upvar
command. The global name of this variable is the function's internal
name, and the local name is GD. It is recommended that
GD be used
for persistent private data of a function. Use regular Tcl global
variables only for values that you specifically intend to be shared among
multiple functions.
An example of using GD appears in the
spi_execp
example below.