X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=src%2Fbackend%2Faccess%2Ftransam%2Ftwophase.c;h=62ebf9fb40687263b0a6156efcf1665fe13f6961;hb=d42cf5a42a42689f68bc1ee1200aca75f954b1fd;hp=ccd8b802157ad16bebd4a067fab19cf72a755fe9;hpb=7762619e95272974f90a38d8d85aafbe0e94add5;p=postgresql diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c index ccd8b80215..62ebf9fb40 100644 --- a/src/backend/access/transam/twophase.c +++ b/src/backend/access/transam/twophase.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/transam/twophase.c,v 1.7 2005/06/28 05:08:51 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/transam/twophase.c,v 1.9 2005/07/31 17:19:17 tgl Exp $ * * NOTES * Each global transaction is associated with a global transaction @@ -272,6 +272,7 @@ MarkAsPreparing(TransactionId xid, const char *gid, gxact->proc.xmin = InvalidTransactionId; gxact->proc.pid = 0; gxact->proc.databaseId = databaseid; + gxact->proc.roleId = owner; gxact->proc.lwWaiting = false; gxact->proc.lwExclusive = false; gxact->proc.lwWaitLink = NULL; @@ -661,7 +662,7 @@ TwoPhaseGetDummyProc(TransactionId xid) /************************************************************************/ #define TwoPhaseFilePath(path, xid) \ - snprintf(path, MAXPGPATH, "%s/%s/%08X", DataDir, TWOPHASE_DIR, xid) + snprintf(path, MAXPGPATH, TWOPHASE_DIR "/%08X", xid) /* * 2PC state file format: @@ -1434,14 +1435,11 @@ PrescanPreparedTransactions(void) { TransactionId origNextXid = ShmemVariableCache->nextXid; TransactionId result = origNextXid; - char dir[MAXPGPATH]; DIR *cldir; struct dirent *clde; - snprintf(dir, MAXPGPATH, "%s/%s", DataDir, TWOPHASE_DIR); - - cldir = AllocateDir(dir); - while ((clde = ReadDir(cldir, dir)) != NULL) + cldir = AllocateDir(TWOPHASE_DIR); + while ((clde = ReadDir(cldir, TWOPHASE_DIR)) != NULL) { if (strlen(clde->d_name) == 8 && strspn(clde->d_name, "0123456789ABCDEF") == 8) @@ -1540,7 +1538,7 @@ RecoverPreparedTransactions(void) DIR *cldir; struct dirent *clde; - snprintf(dir, MAXPGPATH, "%s/%s", DataDir, TWOPHASE_DIR); + snprintf(dir, MAXPGPATH, "%s", TWOPHASE_DIR); cldir = AllocateDir(dir); while ((clde = ReadDir(cldir, dir)) != NULL)