On 15/01/2019 11:49, Andrew Gierth wrote:
>>>>>> "Jack" == Jack LIU <toliujiayi@gmail.com> writes:
>
> Jack> Hi Andrew,
> Jack> This is my code to call the procedure with
> Jack> SPI_connect_ext(SPI_OPT_NONATOMIC).
>
> Ah. You need to take a look at exec_stmt_call in plpgsql, and do the
> same things it does with snapshot management (specifically, setting the
> no_snapshot flag on the plan that you're going to execute). SPI forces
> atomic mode if the normal snapshot management is in use, because
> otherwise a commit inside the procedure would warn about still having a
> snapshot open.
Yeah, eventually we might want to add a new SPI function to do
non-atomic calls, but right now you need to go the manual route.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services