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 | 1145c26b749a73419d32e4c997237e84fbbffa04 (patch) | |
tree | cff5a82aff50d6c3fb042ae7743f0b29b3e03f61 /src/backend/executor | |
parent | 8569ef63f4d30d25f950270f62ca7263b56157a3 (diff) | |
download | postgresql-1145c26b749a73419d32e4c997237e84fbbffa04.tar.gz postgresql-1145c26b749a73419d32e4c997237e84fbbffa04.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 |