SPI_is_cursor_plan
<refpurpose>return <symbol>true</symbol> if a statement
prepared by <function>SPI_prepare</function> can be used with
<function>SPI_cursor_open</function></refpurpose>
—
SPI_prepare
で準備された文がSPI_cursor_open
で使用できる場合にtrue
を返す
bool SPI_is_cursor_plan(SPIPlanPtr plan
)
<function>SPI_is_cursor_plan</function> returns <symbol>true</symbol>
if a statement prepared by <function>SPI_prepare</function> can be passed
as an argument to <function>SPI_cursor_open</function>, or
<symbol>false</symbol> if that is not the case. The criteria are that the
<parameter>plan</parameter> represents one single command and that this
command returns tuples to the caller; for example, <command>SELECT</command>
is allowed unless it contains an <literal>INTO</literal> clause, and
<command>UPDATE</command> is allowed only if it contains a <literal>RETURNING</literal>
clause.
SPI_prepare
で準備済み文がSPI_cursor_open
への引数として渡すことができる場合、SPI_is_cursor_plan
はtrue
を返します。
渡すことができない場合はfalse
を返します。
この基準は、plan
が単一のコマンドであり、かつ、そのコマンドが呼び出し元にタプルを返すことです。
例えば、INTO
句を含んでいないSELECT
は可能です。
そして、RETURNING
句を含む場合のみUPDATE
も可能です。
SPIPlanPtr plan
prepared statement (returned by <function>SPI_prepare</function>)
(SPI_prepare
で返される)準備済み文
<symbol>true</symbol> or <symbol>false</symbol> to indicate if the
<parameter>plan</parameter> can produce a cursor or not, with
<varname>SPI_result</varname> set to zero.
If it is not possible to determine the answer (for example,
if the <parameter>plan</parameter> is <symbol>NULL</symbol> or invalid,
or if called when not connected to SPI), then
<varname>SPI_result</varname> is set to a suitable error code
and <symbol>false</symbol> is returned.
plan
がカーソルを生成することができるかどうかを示すtrue
もしくはfalse
です。
そしてSPI_result
をゼロに設定します。
解答を決定することができない場合(例えばplan
がNULL
、または無効な場合、もしくはSPI未接続時に呼び出された場合)はSPI_result
に適切なエラーコードが設定され、false
が返されます。