File: spi-spi-saveplan.html

package info (click to toggle)
pgadmin3 1.4.3-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 29,796 kB
  • ctags: 10,758
  • sloc: cpp: 55,356; sh: 6,164; ansic: 1,520; makefile: 576; sql: 482; xml: 100; perl: 18
file content (70 lines) | stat: -rw-r--r-- 3,166 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>SPI_saveplan</title>
<link rel="stylesheet" href="stylesheet.css" type="text/css">
<link rev="made" href="pgsql-docs@postgresql.org">
<meta name="generator" content="DocBook XSL Stylesheets V1.70.0">
<link rel="start" href="index.html" title="PostgreSQL 8.1.4 Documentation">
<link rel="up" href="spi.html#spi-interface" title="40.1.Interface Functions">
<link rel="prev" href="spi-spi-cursor-close.html" title="SPI_cursor_close">
<link rel="next" href="spi-interface-support.html" title="40.2.Interface Support Functions">
<link rel="copyright" href="ln-legalnotice.html" title="Legal Notice">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en">
<a name="spi-spi-saveplan"></a><div class="titlepage"></div>
<div class="refnamediv">
<h2>Name</h2>
<p>SPI_saveplan &#8212; save a plan</p>
</div>
<a name="id737324"></a><div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">void * SPI_saveplan(void * <em class="parameter"><code>plan</code></em>)</pre>
</div>
<div class="refsect1" lang="en">
<a name="id737344"></a><h2>Description</h2>
<p>   <code class="function">SPI_saveplan</code> saves a passed plan (prepared by
   <code class="function">SPI_prepare</code>) in memory protected from freeing
   by <code class="function">SPI_finish</code> and by the transaction manager
   and returns a pointer to the saved plan.  This gives you the
   ability to reuse prepared plans in the subsequent invocations of
   your procedure in the current session.  You may save the pointer
   returned in a local variable.  Always check if this pointer is
   <code class="symbol">NULL</code> or not either when preparing a plan or using
   an already prepared plan in <code class="function">SPI_execute_plan</code>.
  </p>
</div>
<div class="refsect1" lang="en">
<a name="id737388"></a><h2>Arguments</h2>
<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">void * <em class="parameter"><code>plan</code></em></code></span></dt>
<dd><p>      the plan to be saved
     </p></dd>
</dl></div>
</div>
<div class="refsect1" lang="en">
<a name="id737410"></a><h2>Return Value</h2>
<p>   Pointer to the saved plan; <code class="symbol">NULL</code> if unsuccessful.
   On error, <code class="varname">SPI_result</code> is set thus:

   </p>
<div class="variablelist"><dl>
<dt><span class="term"><code class="symbol">SPI_ERROR_ARGUMENT</code></span></dt>
<dd><p>       if <em class="parameter"><code>plan</code></em> is <code class="symbol">NULL</code>
      </p></dd>
<dt><span class="term"><code class="symbol">SPI_ERROR_UNCONNECTED</code></span></dt>
<dd><p>       if called from an unconnected procedure
      </p></dd>
</dl></div>
<p>
  </p>
</div>
<div class="refsect1" lang="en">
<a name="id737458"></a><h2>Notes</h2>
<p>   If one of the objects (a table, function, etc.) referenced by the
   prepared plan is dropped during the session then the results of
   <code class="function">SPI_execute_plan</code> for this plan will be unpredictable.
  </p>
</div>
</div></body>
</html>