aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2022-11-09 11:08:52 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2022-11-09 11:08:52 -0500
commit8befa05d78892c3830efb4f356e1de562e4c6cb7 (patch)
tree302b77977d99cc68d0ced57b008111c6e3cffbf3 /src
parent2e4229691c666667f5b5c751773c12b2f2f6b00b (diff)
downloadpostgresql-8befa05d78892c3830efb4f356e1de562e4c6cb7.tar.gz
postgresql-8befa05d78892c3830efb4f356e1de562e4c6cb7.zip
Doc: add comments about PreventInTransactionBlock/IsInTransactionBlock.
Add a little to the header comments for these functions to make it clearer what guarantees about commit behavior are provided to callers. (See commit f92944137 for context.) Although this is only a comment change, it's really documentation aimed at authors of extensions, so it seems appropriate to back-patch. Yugo Nagata and Tom Lane, per further discussion of bug #17434. Discussion: https://postgr.es/m/17434-d9f7a064ce2a88a3@postgresql.org
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/transam/xact.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index 477ca9c7b26..2cfd3c9b552 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -3386,6 +3386,10 @@ AbortCurrentTransaction(void)
* a transaction block, typically because they have non-rollback-able
* side effects or do internal commits.
*
+ * If this routine completes successfully, then the calling statement is
+ * guaranteed that if it completes without error, its results will be
+ * committed immediately.
+ *
* If we have already started a transaction block, issue an error; also issue
* an error if we appear to be running inside a user-defined function (which
* could issue more commands and possibly cause a failure after the statement
@@ -3511,6 +3515,10 @@ CheckTransactionBlock(bool isTopLevel, bool throwError, const char *stmtType)
* a transaction block than when running as single commands. ANALYZE is
* currently the only example.
*
+ * If this routine returns "false", then the calling statement is
+ * guaranteed that if it completes without error, its results will be
+ * committed immediately.
+ *
* isTopLevel: passed down from ProcessUtility to determine whether we are
* inside a function.
*/