Commit 807cb000 authored by Bruce Momjian's avatar Bruce Momjian

Clarify STABLE function documentation to highlight how such functions

can be optimized.
parent efbe674e
<!-- <!--
$PostgreSQL: pgsql/doc/src/sgml/xfunc.sgml,v 1.109 2005/11/29 01:46:54 alvherre Exp $ $PostgreSQL: pgsql/doc/src/sgml/xfunc.sgml,v 1.110 2006/01/19 22:52:08 momjian Exp $
--> -->
<sect1 id="xfunc"> <sect1 id="xfunc">
...@@ -899,13 +899,13 @@ CREATE FUNCTION test(int, int) RETURNS int ...@@ -899,13 +899,13 @@ CREATE FUNCTION test(int, int) RETURNS int
<para> <para>
A <literal>STABLE</> function cannot modify the database and is A <literal>STABLE</> function cannot modify the database and is
guaranteed to return the same results given the same arguments guaranteed to return the same results given the same arguments
for all calls within a single surrounding query. This category for all rows within a single statement. This category allows the
allows the optimizer to optimize away multiple calls of the function optimizer to optimize multiple calls of the function to a single
within a single query. In particular, it is safe to use an expression call. In particular, it is safe to use an expression containing
containing such a function in an index scan condition. (Since an such a function in an index scan condition. (Since an index scan
index scan will evaluate the comparison value only once, not once at will evaluate the comparison value only once, not once at each
each row, it is not valid to use a <literal>VOLATILE</> function in row, it is not valid to use a <literal>VOLATILE</> function in an
an index scan condition.) index scan condition.)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment