Skip to content
Snippets Groups Projects
Commit b6f0c502 authored by Bruce Momjian's avatar Bruce Momjian
Browse files

Small update for the removal of some memory leaks in plpython SGML example.

Nigel J. Andrews
parent b825a8f0
No related branches found
No related tags found
No related merge requests found
<!-- $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) ...@@ -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>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment