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
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>SPI_push</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-finish.html" title="SPI_finish">
<link rel="next" href="spi-spi-pop.html" title="SPI_pop">
<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-push"></a><div class="titlepage"></div>
<div class="refnamediv">
<h2>Name</h2>
<p>SPI_push — push SPI stack to allow recursive SPI usage</p>
</div>
<a name="id734218"></a><div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">void SPI_push(void)</pre>
</div>
<div class="refsect1" lang="en">
<a name="id734231"></a><h2>Description</h2>
<p> <code class="function">SPI_push</code> should be called before executing another
procedure that might itself wish to use SPI.
After <code class="function">SPI_push</code>, SPI is no longer in a
“<span class="quote">connected</span>” state, and SPI function calls will be rejected unless
a fresh <code class="function">SPI_connect</code> is done. This ensures a clean
separation between your procedure's SPI state and that of another procedure
you call. After the other procedure returns, call
<code class="function">SPI_pop</code> to restore access to your own SPI state.
</p>
<p> Note that <code class="function">SPI_execute</code> and related functions
automatically do the equivalent of <code class="function">SPI_push</code> before
passing control back to the SQL execution engine, so it is not necessary
for you to worry about this when using those functions.
Only when you are directly calling arbitrary code that might contain
<code class="function">SPI_connect</code> calls do you need to issue
<code class="function">SPI_push</code> and <code class="function">SPI_pop</code>.
</p>
</div>
</div></body>
</html>
|