]> granicus.if.org Git - postgresql/blobdiff - src/backend/access/transam/twophase.c
Add per-user and per-database connection limit options.
[postgresql] / src / backend / access / transam / twophase.c
index ccd8b802157ad16bebd4a067fab19cf72a755fe9..62ebf9fb40687263b0a6156efcf1665fe13f6961 100644 (file)
@@ -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)