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++)
89 if (strncmp(
forkNames[forkNum], str, len) == 0)
112 if (spcNode == GLOBALTABLESPACE_OID)
118 else if (spcNode == DEFAULTTABLESPACE_OID)
126 return psprintf(
"pg_tblspc/%u/%s/%u",
146 if (spcNode == GLOBALTABLESPACE_OID)
155 path =
psprintf(
"global/%u", relNode);
157 else if (spcNode == DEFAULTTABLESPACE_OID)
173 path =
psprintf(
"base/%u/t%d_%u_%s",
174 dbNode, backendId, relNode,
178 dbNode, backendId, relNode);
187 path =
psprintf(
"pg_tblspc/%u/%s/%u/%u_%s",
192 path =
psprintf(
"pg_tblspc/%u/%s/%u/%u",
199 path =
psprintf(
"pg_tblspc/%u/%s/%u/t%d_%u_%s",
201 dbNode, backendId, relNode,
204 path =
psprintf(
"pg_tblspc/%u/%s/%u/t%d_%u",
206 dbNode, backendId, relNode);
int errhint(const char *fmt,...)
char * GetRelationPath(Oid dbNode, Oid spcNode, Oid relNode, int backendId, ForkNumber forkNumber)
char * pstrdup(const char *in)
int forkname_chars(const char *str, ForkNumber *fork)
char * psprintf(const char *fmt,...)
int errcode(int sqlerrcode)
ForkNumber forkname_to_number(const char *forkName)
#define TABLESPACE_VERSION_DIRECTORY
char * GetDatabasePath(Oid dbNode, Oid spcNode)
#define ereport(elevel,...)
#define Assert(condition)
int errmsg(const char *fmt,...)
StaticAssertDecl(lengthof(forkNames)==(MAX_FORKNUM+1), "array length mismatch")
const char *const forkNames[]