On 15/01/2019 11:49, Andrew Gierth wrote: >>>>>> "Jack" == Jack LIU <toliuji...@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