Small update for the removal of some memory leaks in plpython SGML example.
Nigel J. Andrews
This commit is contained in:
parent
b825a8f025
commit
b6f0c50232
|
@ -1,4 +1,4 @@
|
||||||
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/plpython.sgml,v 1.14 2002/09/23 01:51:02 momjian Exp $ -->
|
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/plpython.sgml,v 1.15 2002/10/21 20:34:09 momjian Exp $ -->
|
||||||
|
|
||||||
<chapter id="plpython">
|
<chapter id="plpython">
|
||||||
<title>PL/Python - Python Procedural Language</title>
|
<title>PL/Python - Python Procedural Language</title>
|
||||||
|
@ -198,15 +198,24 @@ rv = plpy.execute(plan, [ "name" ], 5)
|
||||||
<para>
|
<para>
|
||||||
When you prepare a plan using the PL/Python module it is
|
When you prepare a plan using the PL/Python module it is
|
||||||
automatically saved. Read the SPI documentation (<xref
|
automatically saved. Read the SPI documentation (<xref
|
||||||
linkend="spi">) for a description of what this means. The take
|
linkend="spi">) for a description of what this means.
|
||||||
home message is if you do
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In order to make effective use of this across function calls
|
||||||
|
one needs to use one of the persistent storage dictionaries
|
||||||
|
<literal>SD</literal> or <literal>GD</literal>, see
|
||||||
|
<xref linkend="plpython-funcs">. For example:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
plan = plpy.prepare("SOME QUERY")
|
CREATE FUNCTION usesavedplan ( ) RETURNS TRIGGER AS '
|
||||||
plan = plpy.prepare("SOME OTHER QUERY")
|
if SD.has_key("plan"):
|
||||||
|
plan = SD["plan"]
|
||||||
|
else:
|
||||||
|
plan = plpy.prepare("SELECT 1")
|
||||||
|
SD["plan"] = plan
|
||||||
|
# rest of function
|
||||||
|
' LANGUAGE 'plpython';
|
||||||
</programlisting>
|
</programlisting>
|
||||||
you are leaking memory, as I know of no way to free a saved plan.
|
|
||||||
The alternative of using unsaved plans it even more painful (for
|
|
||||||
me).
|
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue