diff options
author | Bruce Momjian <bruce@momjian.us> | 2001-01-09 14:23:40 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2001-01-09 14:23:40 +0000 |
commit | df389d161df4bacf61767d2d1679be8b9e5430d0 (patch) | |
tree | a26b10b83fdba8c886bd818dde0432bcede0eff7 | |
parent | 941139bd07512dd8ec6a134a43cadeb58bb82f79 (diff) | |
download | postgresql-df389d161df4bacf61767d2d1679be8b9e5430d0.tar.gz postgresql-df389d161df4bacf61767d2d1679be8b9e5430d0.zip |
Approaching the current documentation from a position of ignorance, I
find it ambiguous. I propose something along the lines of the
following patch to clarify it. Thanks.
(Alternatively, perhaps the code could maintain a count of nested
calls to SPI_connect/SPI_finish. But I didn't try to write that
patch.)
Ian Lance Taylor
-rw-r--r-- | doc/src/sgml/spi.sgml | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/doc/src/sgml/spi.sgml b/doc/src/sgml/spi.sgml index c16033033a1..e70e44479ff 100644 --- a/doc/src/sgml/spi.sgml +++ b/doc/src/sgml/spi.sgml @@ -34,10 +34,11 @@ using <Acronym>SPI</Acronym>. </Para> <Para> -<Acronym>SPI</Acronym> procedures are always called by some (upper) -Executor and the <Acronym>SPI</Acronym> -manager uses the Executor to run your queries. Other procedures may be -called by the Executor running queries from your procedure. +Procedures which use <Acronym>SPI</Acronym> are called by the +Executor. The <Acronym>SPI</Acronym> calls recursively invoke the +Executor in turn to run queries. When the Executor is invoked +recursively, it may itself call procedures which may make +<Acronym>SPI</Acronym> calls. </Para> <Para> @@ -146,12 +147,17 @@ Return status utility SPI functions may be called from un-connected procedures. </PARA> <PARA> - You may get <ReturnValue>SPI_ERROR_CONNECT</ReturnValue> error if <Function>SPI_connect</Function> is - called from an already connected procedure - e.g. if you directly call one - procedure from another connected one. Actually, while the child procedure - will be able to use SPI, your parent procedure will not be able to continue - to use SPI after the child returns (if <Function>SPI_finish</Function> is called by the child). - It's bad practice. + If your procedure is already connected, + <Function>SPI_connect</Function> will return an + <ReturnValue>SPI_ERROR_CONNECT</ReturnValue> error. Note that this + may happen if a procedure which has called + <Function>SPI_connect</Function> directly calls another procedure + which itself calls <Function>SPI_connect</Function>. While + recursive calls to the <Acronym>SPI</Acronym> manager are permitted + when an <Acronym>SPI</Acronym> query invokes another function which + uses <Acronym>SPI</Acronym>, directly nested calls to + <Function>SPI_connect</Function> and + <Function>SPI_finish</Function> are forbidden. </PARA> </REFSECT1> <REFSECT1 ID="R1-SPI-SPICONNECT-2"> |