From 82ff0cc91d9840d1c56ca1beed58bedfde3da9a3 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 8 Oct 2018 16:16:36 -0400 Subject: Advance transaction timestamp for intra-procedure transactions. Per discussion, this behavior seems less astonishing than not doing so. Peter Eisentraut and Tom Lane Discussion: https://postgr.es/m/20180920234040.GC29981@momjian.us --- src/backend/executor/spi.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/backend/executor/spi.c') diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index 11ca800e4cd..fb36e762f28 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -423,6 +423,19 @@ AtEOSubXact_SPI(bool isCommit, SubTransactionId mySubid) } } +/* + * Are we executing inside a procedure (that is, a nonatomic SPI context)? + */ +bool +SPI_inside_nonatomic_context(void) +{ + if (_SPI_current == NULL) + return false; /* not in any SPI context at all */ + if (_SPI_current->atomic) + return false; /* it's atomic (ie function not procedure) */ + return true; +} + /* Parse, plan, and execute a query string */ int -- cgit v1.2.3