diff options
Diffstat (limited to 'src/backend/catalog/catalog.c')
| -rw-r--r-- | src/backend/catalog/catalog.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/src/backend/catalog/catalog.c b/src/backend/catalog/catalog.c index c1287a77df..577206cd26 100644 --- a/src/backend/catalog/catalog.c +++ b/src/backend/catalog/catalog.c @@ -75,35 +75,23 @@ forkname_to_number(char *forkName) char * GetDatabasePath(Oid dbNode, Oid spcNode) { - int pathlen; - char *path; - if (spcNode == GLOBALTABLESPACE_OID) { /* Shared system relations live in {datadir}/global */ Assert(dbNode == 0); - pathlen = 6 + 1; - path = (char *) palloc(pathlen); - snprintf(path, pathlen, "global"); + return pstrdup("global"); } else if (spcNode == DEFAULTTABLESPACE_OID) { /* The default tablespace is {datadir}/base */ - pathlen = 5 + OIDCHARS + 1; - path = (char *) palloc(pathlen); - snprintf(path, pathlen, "base/%u", - dbNode); + return psprintf("base/%u", dbNode); } else { /* All other tablespaces are accessed via symlinks */ - pathlen = 9 + 1 + OIDCHARS + 1 + strlen(TABLESPACE_VERSION_DIRECTORY) + - 1 + OIDCHARS + 1; - path = (char *) palloc(pathlen); - snprintf(path, pathlen, "pg_tblspc/%u/%s/%u", - spcNode, TABLESPACE_VERSION_DIRECTORY, dbNode); + return psprintf("pg_tblspc/%u/%s/%u", + spcNode, TABLESPACE_VERSION_DIRECTORY, dbNode); } - return path; } |
