36 #define XACT_READ_UNCOMMITTED 0 37 #define XACT_READ_COMMITTED 1 38 #define XACT_REPEATABLE_READ 2 39 #define XACT_SERIALIZABLE 3 51 #define IsolationUsesXactSnapshot() (XactIsoLevel >= XACT_REPEATABLE_READ) 52 #define IsolationIsSerializable() (XactIsoLevel == XACT_SERIALIZABLE) 80 #define SYNCHRONOUS_COMMIT_ON SYNCHRONOUS_COMMIT_REMOTE_FLUSH 102 #define XACT_FLAGS_ACCESSEDTEMPNAMESPACE (1U << 0) 108 #define XACT_FLAGS_ACQUIREDACCESSEXCLUSIVELOCK (1U << 1) 148 #define XLOG_XACT_COMMIT 0x00 149 #define XLOG_XACT_PREPARE 0x10 150 #define XLOG_XACT_ABORT 0x20 151 #define XLOG_XACT_COMMIT_PREPARED 0x30 152 #define XLOG_XACT_ABORT_PREPARED 0x40 153 #define XLOG_XACT_ASSIGNMENT 0x50 154 #define XLOG_XACT_INVALIDATIONS 0x60 158 #define XLOG_XACT_OPMASK 0x70 161 #define XLOG_XACT_HAS_INFO 0x80 167 #define XACT_XINFO_HAS_DBINFO (1U << 0) 168 #define XACT_XINFO_HAS_SUBXACTS (1U << 1) 169 #define XACT_XINFO_HAS_RELFILENODES (1U << 2) 170 #define XACT_XINFO_HAS_INVALS (1U << 3) 171 #define XACT_XINFO_HAS_TWOPHASE (1U << 4) 172 #define XACT_XINFO_HAS_ORIGIN (1U << 5) 173 #define XACT_XINFO_HAS_AE_LOCKS (1U << 6) 174 #define XACT_XINFO_HAS_GID (1U << 7) 184 #define XACT_COMPLETION_APPLY_FEEDBACK (1U << 29) 185 #define XACT_COMPLETION_UPDATE_RELCACHE_FILE (1U << 30) 186 #define XACT_COMPLETION_FORCE_SYNC_COMMIT (1U << 31) 189 #define XactCompletionApplyFeedback(xinfo) \ 190 ((xinfo & XACT_COMPLETION_APPLY_FEEDBACK) != 0) 191 #define XactCompletionRelcacheInitFileInval(xinfo) \ 192 ((xinfo & XACT_COMPLETION_UPDATE_RELCACHE_FILE) != 0) 193 #define XactCompletionForceSyncCommit(xinfo) \ 194 ((xinfo & XACT_COMPLETION_FORCE_SYNC_COMMIT) != 0) 203 #define MinSizeOfXactAssignment offsetof(xl_xact_assignment, xsub) 243 #define MinSizeOfXactSubxacts offsetof(xl_xact_subxacts, subxacts) 250 #define MinSizeOfXactRelfilenodes offsetof(xl_xact_relfilenodes, xnodes) 257 #define MinSizeOfXactInvals offsetof(xl_xact_invals, msgs) 283 #define MinSizeOfXactCommit (offsetof(xl_xact_commit, xact_time) + sizeof(TimestampTz)) 298 #define MinSizeOfXactAbort sizeof(xl_xact_abort) 448 const char *twophase_gid);
454 const char *twophase_gid);
bool IsTransactionOrTransactionBlock(void)
void EnterParallelMode(void)
XLogRecPtr XactLogCommitRecord(TimestampTz commit_time, int nsubxacts, TransactionId *subxacts, int nrels, RelFileNode *rels, int nmsgs, SharedInvalidationMessage *msgs, bool relcacheInval, int xactflags, TransactionId twophase_xid, const char *twophase_gid)
void UnregisterSubXactCallback(SubXactCallback callback, void *arg)
struct xl_xact_parsed_commit xl_xact_parsed_commit
PGDLLIMPORT TransactionId CheckXidAlive
void EndImplicitTransactionBlock(void)
const char * xact_identify(uint8 info)
void SaveTransactionCharacteristics(void)
struct xl_xact_parsed_abort xl_xact_parsed_abort
void AbortOutOfAnyTransaction(void)
struct xl_xact_xinfo xl_xact_xinfo
FullTransactionId GetTopFullTransactionId(void)
void PreventInTransactionBlock(bool isTopLevel, const char *stmtType)
int GetCurrentTransactionNestLevel(void)
TransactionId GetTopTransactionIdIfAny(void)
TimestampTz origin_timestamp
bool IsTransactionBlock(void)
TimestampTz GetCurrentTransactionStopTimestamp(void)
void ParseCommitRecord(uint8 info, xl_xact_commit *xlrec, xl_xact_parsed_commit *parsed)
void UserAbortTransactionBlock(bool chain)
void StartTransactionCommand(void)
void BeginInternalSubTransaction(const char *name)
void(* SubXactCallback)(SubXactEvent event, SubTransactionId mySubid, SubTransactionId parentSubid, void *arg)
TransactionId twophase_xid
PGDLLIMPORT int XactIsoLevel
#define FLEXIBLE_ARRAY_MEMBER
SharedInvalidationMessage * msgs
TransactionId GetCurrentTransactionId(void)
void ReleaseSavepoint(const char *name)
void SetParallelStartTimestamps(TimestampTz xact_ts, TimestampTz stmt_ts)
TransactionId xsub[FLEXIBLE_ARRAY_MEMBER]
void BeginImplicitTransactionBlock(void)
struct xl_xact_prepare xl_xact_prepare
FullTransactionId GetCurrentFullTransactionIdIfAny(void)
struct xl_xact_dbinfo xl_xact_dbinfo
void ParseAbortRecord(uint8 info, xl_xact_abort *xlrec, xl_xact_parsed_abort *parsed)
struct xl_xact_origin xl_xact_origin
void StartParallelWorkerTransaction(char *tstatespace)
SubTransactionId GetCurrentSubTransactionId(void)
xl_xact_parsed_commit xl_xact_parsed_prepare
void ParsePrepareRecord(uint8 info, xl_xact_prepare *xlrec, xl_xact_parsed_prepare *parsed)
void(* XactCallback)(XactEvent event, void *arg)
void BeginTransactionBlock(void)
void CommandCounterIncrement(void)
void MarkCurrentTransactionIdLoggedIfAny(void)
bool IsSubTransaction(void)
bool IsAbortedTransactionBlockState(void)
bool SubTransactionIsActive(SubTransactionId subxid)
void SetCurrentStatementStartTimestamp(void)
static void callback(struct sockaddr *addr, struct sockaddr *mask, void *unused)
void AbortCurrentTransaction(void)
bool IsSubTransactionAssignmentPending(void)
bool EndTransactionBlock(bool chain)
struct xl_xact_commit xl_xact_commit
Size EstimateTransactionStateSpace(void)
void RegisterXactCallback(XactCallback callback, void *arg)
struct xl_xact_twophase xl_xact_twophase
void RestoreTransactionCharacteristics(void)
void RequireTransactionBlock(bool isTopLevel, const char *stmtType)
struct xl_xact_invals xl_xact_invals
bool DefaultXactDeferrable
void ReleaseCurrentSubTransaction(void)
struct xl_xact_abort xl_xact_abort
void UnregisterXactCallback(XactCallback callback, void *arg)
void DefineSavepoint(const char *name)
void MarkSubTransactionAssigned(void)
void xact_desc(StringInfo buf, XLogReaderState *record)
int xactGetCommittedChildren(TransactionId **ptr)
void ForceSyncCommit(void)
bool PrepareTransactionBlock(const char *gid)
void ExitParallelMode(void)
CommandId GetCurrentCommandId(bool used)
void SerializeTransactionState(Size maxsize, char *start_address)
TransactionId twophase_xid
struct xl_xact_assignment xl_xact_assignment
void RollbackAndReleaseCurrentSubTransaction(void)
XLogRecPtr XactLogAbortRecord(TimestampTz abort_time, int nsubxacts, TransactionId *subxacts, int nrels, RelFileNode *rels, int xactflags, TransactionId twophase_xid, const char *twophase_gid)
bool TransactionIdIsCurrentTransactionId(TransactionId xid)
void WarnNoTransactionBlock(bool isTopLevel, const char *stmtType)
TransactionId GetCurrentTransactionIdIfAny(void)
TimestampTz origin_timestamp
struct xl_xact_subxacts xl_xact_subxacts
TimestampTz GetCurrentStatementStartTimestamp(void)
void CommitTransactionCommand(void)
FullTransactionId GetCurrentFullTransactionId(void)
bool IsInTransactionBlock(bool isTopLevel)
TimestampTz origin_timestamp
struct xl_xact_relfilenodes xl_xact_relfilenodes
FullTransactionId GetTopFullTransactionIdIfAny(void)
TransactionId GetTopTransactionId(void)
void RegisterSubXactCallback(SubXactCallback callback, void *arg)
char TransactionBlockStatusCode(void)
void RollbackToSavepoint(const char *name)
PGDLLIMPORT bool bsysscan
TimestampTz origin_timestamp
void EndParallelWorkerTransaction(void)
bool IsInParallelMode(void)
void xact_redo(XLogReaderState *record)
TimestampTz GetCurrentTransactionStartTimestamp(void)
TransactionId GetStableLatestTransactionId(void)
bool IsTransactionState(void)