aboutsummaryrefslogtreecommitdiff
path: root/src/include/storage/standby.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/storage/standby.h')
-rw-r--r--src/include/storage/standby.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/include/storage/standby.h b/src/include/storage/standby.h
index cfbe426e5ae..317fd9f6b84 100644
--- a/src/include/storage/standby.h
+++ b/src/include/storage/standby.h
@@ -67,11 +67,19 @@ extern void StandbyReleaseOldLocks(TransactionId oldxid);
* almost immediately see the data we need to begin executing queries.
*/
+typedef enum
+{
+ SUBXIDS_IN_ARRAY, /* xids array includes all running subxids */
+ SUBXIDS_MISSING, /* snapshot overflowed, subxids are missing */
+ SUBXIDS_IN_SUBTRANS, /* subxids are not included in 'xids', but
+ * pg_subtrans is fully up-to-date */
+} subxids_array_status;
+
typedef struct RunningTransactionsData
{
int xcnt; /* # of xact ids in xids[] */
int subxcnt; /* # of subxact ids in xids[] */
- bool subxid_overflow; /* snapshot overflowed, subxids missing */
+ subxids_array_status subxid_status;
TransactionId nextXid; /* xid from ShmemVariableCache->nextFullXid */
TransactionId oldestRunningXid; /* *not* oldestXmin */
TransactionId latestCompletedXid; /* so we can set xmax */