diff options
| author | Pavan Deolasee | 2015-01-09 06:43:17 +0000 |
|---|---|---|
| committer | Pavan Deolasee | 2015-04-15 05:49:15 +0000 |
| commit | 266b8aaa84555edfb62b857b0d797011917bc523 (patch) | |
| tree | e2e4a4ebc2e6a46a53daaae1ee22d885481ffc3d /src | |
| parent | 9163ee94c0f9c9b0f1c20e08b89731133cd1ca8a (diff) | |
Allow direct datanode sessions to grab an XID from the GTM directly.
Earlier we had tightened this so that all datanode sessions must get XID from
coordinators. But this creates issues for direct client connections which are
required, for example, to take a pg_dump of the datanode. So relax this a bit
and only force coordinator supplied XID for coordinator originated connections
Diffstat (limited to 'src')
| -rw-r--r-- | src/backend/access/transam/varsup.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c index 9ec73a755f..77e33af1ee 100644 --- a/src/backend/access/transam/varsup.c +++ b/src/backend/access/transam/varsup.c @@ -169,11 +169,12 @@ GetNewTransactionId(bool isSubXact) * valid XID/snapshot for catalog access * */ - if ((IS_PGXC_COORDINATOR && !IsConnFromCoord()) || + if (!useLocalXid && + (!IsConnFromCoord() || IsAutoVacuumWorkerProcess() || IsAutoVacuumLauncherProcess() || GetForceXidFromGTM() || - (IsInitProcessingMode() && IsPostmasterEnvironment)) + (IsInitProcessingMode() && IsPostmasterEnvironment))) { if (MyPgXact->vacuumFlags & PROC_IN_VACUUM) next_xid = xid = (TransactionId) BeginTranAutovacuumGTM(); |
