diff options
Diffstat (limited to 'src/include/storage/standby.h')
-rw-r--r-- | src/include/storage/standby.h | 10 |
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 */ |