diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2018-10-08 16:16:36 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2018-10-08 16:16:36 -0400 |
commit | 82ff0cc91d9840d1c56ca1beed58bedfde3da9a3 (patch) | |
tree | 005702660dc609455ece3fb423e9f74c15d43edb /src/backend/executor | |
parent | 6eb3eb577d76b3f58a98f78232af9e86624ce5eb (diff) | |
download | postgresql-82ff0cc91d9840d1c56ca1beed58bedfde3da9a3.tar.gz postgresql-82ff0cc91d9840d1c56ca1beed58bedfde3da9a3.zip |
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
Diffstat (limited to 'src/backend/executor')
-rw-r--r-- | src/backend/executor/spi.c | 13 |
1 files changed, 13 insertions, 0 deletions
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 |