21#include "catalog/pg_tablespace_d.h"
41 "array length mismatch");
54 for (forkNum = 0; forkNum <=
MAX_FORKNUM; forkNum++)
55 if (strcmp(
forkNames[forkNum], forkName) == 0)
60 (
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
61 errmsg(
"invalid fork name"),
62 errhint(
"Valid fork names are \"main\", \"fsm\", "
63 "\"vm\", and \"init\".")));
85 for (forkNum = 1; forkNum <=
MAX_FORKNUM; forkNum++)
112 if (spcOid == GLOBALTABLESPACE_OID)
118 else if (spcOid == DEFAULTTABLESPACE_OID)
147 if (spcOid == GLOBALTABLESPACE_OID)
156 path =
psprintf(
"global/%u", relNumber);
158 else if (spcOid == DEFAULTTABLESPACE_OID)
174 path =
psprintf(
"base/%u/t%d_%u_%s",
175 dbOid, procNumber, relNumber,
179 dbOid, procNumber, relNumber);
188 path =
psprintf(
"%s/%u/%s/%u/%u_%s",
202 path =
psprintf(
"%s/%u/%s/%u/t%d_%u_%s",
205 dbOid, procNumber, relNumber,
208 path =
psprintf(
"%s/%u/%s/%u/t%d_%u",
211 dbOid, procNumber, relNumber);
#define Assert(condition)
int errhint(const char *fmt,...)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
char * pstrdup(const char *in)
#define INVALID_PROC_NUMBER
char * psprintf(const char *fmt,...)
StaticAssertDecl(lengthof(forkNames)==(MAX_FORKNUM+1), "array length mismatch")
char * GetRelationPath(Oid dbOid, Oid spcOid, RelFileNumber relNumber, int procNumber, ForkNumber forkNumber)
int forkname_chars(const char *str, ForkNumber *fork)
ForkNumber forkname_to_number(const char *forkName)
const char *const forkNames[]
char * GetDatabasePath(Oid dbOid, Oid spcOid)
#define TABLESPACE_VERSION_DIRECTORY