Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help

       SPI_execute_plan_extended - execute a statement prepared	by SPI_prepare

       int SPI_execute_plan_extended(SPIPlanPtr	plan,
				     const SPIExecuteOptions * options)

       SPI_execute_plan_extended executes a statement prepared by SPI_prepare
       or one of its siblings. This function is	equivalent to
       SPI_execute_plan, except	that information about the parameter values to
       be passed to the	query is presented differently,	and additional
       execution-controlling options can be passed.

       Query parameter values are represented by a ParamListInfo struct, which
       is convenient for passing down values that are already available	in
       that format. Dynamic parameter sets can also be used, via hook
       functions specified in ParamListInfo.

       Also, instead of	always accumulating the	result tuples into a
       SPI_tuptable structure, tuples can be passed to a caller-supplied
       DestReceiver object as they are generated by the	executor. This is
       particularly helpful for	queries	that might generate many tuples, since
       the data	can be processed on-the-fly instead of being accumulated in

       SPIPlanPtr plan
	   prepared statement (returned	by SPI_prepare)

       const SPIExecuteOptions * options
	   struct containing optional arguments

       Callers should always zero out the entire options struct, then fill
       whichever fields	they want to set. This ensures forward compatibility
       of code,	since any fields that are added	to the struct in future	will
       be defined to behave backwards-compatibly if they are zero. The
       currently available options fields are:

       ParamListInfo params
	   data	structure containing query parameter types and values; NULL if

       bool read_only
	   true	for read-only execution

       bool allow_nonatomic
	   true	allows non-atomic execution of CALL and	DO statements

       uint64 tcount
	   maximum number of rows to return, or	0 for no limit

       DestReceiver * dest
	   DestReceiver	object that will receive any tuples emitted by the
	   query; if NULL, result tuples are accumulated into a	SPI_tuptable
	   structure, as in SPI_execute_plan

       ResourceOwner owner
	   The resource	owner that will	hold a reference count on the plan
	   while it is executed. If NULL, CurrentResourceOwner is used.
	   Ignored for non-saved plans,	as SPI does not	acquire	reference
	   counts on those.

       The return value	is the same as for SPI_execute_plan.

       When options-_dest is NULL, SPI_processed and SPI_tuptable are set as
       in SPI_execute_plan. When options-_dest is not NULL, SPI_processed is
       set to zero and SPI_tuptable is set to NULL. If a tuple count is
       required, the caller's DestReceiver object must calculate it.

PostgreSQL 14beta2		     2021	  SPI_EXECUTE_PLAN_EXTENDED(3)


Want to link to this manual page? Use this URL:

home | help