/*------------------------------------------------------------------------- * * backendid.h * POSTGRES backend id communication definitions * * * Portions Copyright (c) 2012-2014, TransLattice, Inc. * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * src/include/storage/backendid.h * *------------------------------------------------------------------------- */ #ifndef BACKENDID_H #define BACKENDID_H /* ---------------- * -cim 8/17/90 * ---------------- */ typedef int BackendId; /* unique currently active backend identifier */ #define InvalidBackendId (-1) extern PGDLLIMPORT BackendId MyBackendId; /* backend id of this backend */ #ifdef XCP /* * Two next variables make up distributed session id. Actual distributed * session id is a string, which includes coordinator node name, but * it is better to use Oid to store and compare with distributed session ids * of other backends under the same postmaster. */ extern PGDLLIMPORT Oid MyCoordId; extern PGDLLIMPORT char MyCoordName[NAMEDATALEN]; extern PGDLLIMPORT int MyCoordPid; extern PGDLLIMPORT LocalTransactionId MyCoordLxid; /* BackendId of the first backend of the distributed session on the node */ extern PGDLLIMPORT BackendId MyFirstBackendId; #endif /* backend id of our parallel session leader, or InvalidBackendId if none */ extern PGDLLIMPORT BackendId ParallelMasterBackendId; /* * The BackendId to use for our session's temp relations is normally our own, * but parallel workers should use their leader's ID. */ #define BackendIdForTempRelations() \ (ParallelMasterBackendId == InvalidBackendId ? MyBackendId : ParallelMasterBackendId) #endif /* BACKENDID_H */