mirror of
https://github.com/postgres/postgres.git
synced 2025-11-28 11:44:57 +03:00
Improve TransactionIdDidAbort() documentation.
Document that TransactionIdDidAbort() won't indicate that transactions
that were in-progress during a crash have aborted. Tie this to existing
discussion of the TransactionIdDidCommit() and TransactionIdDidCommit()
protocol that code in heapam_visibility.c (and a few other places) must
observe.
Follow-up to bugfix commit eb5ad4ff.
Author: Peter Geoghegan <pg@bowt.ie>
Reviewed-By: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/CAH2-Wzn4bEEqgmaUQL3aJ73yM9gAeK-wE4ngi7kjRjLztb+P0w@mail.gmail.com
This commit is contained in:
@@ -110,7 +110,8 @@ TransactionLogFetch(TransactionId transactionId)
|
||||
* transaction tree.
|
||||
*
|
||||
* See also TransactionIdIsInProgress, which once was in this module
|
||||
* but now lives in procarray.c.
|
||||
* but now lives in procarray.c, as well as comments at the top of
|
||||
* heapam_visibility.c that explain how everything fits together.
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
@@ -176,6 +177,12 @@ TransactionIdDidCommit(TransactionId transactionId)
|
||||
*
|
||||
* Note:
|
||||
* Assumes transaction identifier is valid and exists in clog.
|
||||
*
|
||||
* Returns true only for explicitly aborted transactions, as transactions
|
||||
* implicitly aborted due to a crash will commonly still appear to be
|
||||
* in-progress in the clog. Most of the time TransactionIdDidCommit(),
|
||||
* with a preceding TransactionIdIsInProgress() check, should be used
|
||||
* instead of TransactionIdDidAbort().
|
||||
*/
|
||||
bool /* true if given transaction aborted */
|
||||
TransactionIdDidAbort(TransactionId transactionId)
|
||||
|
||||
Reference in New Issue
Block a user