From a73018392636ce832b09b5c31f6ad1f18a4643ea Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Thu, 21 Feb 2013 22:46:17 -0300 Subject: Move relpath() to libpgcommon This enables non-backend code, such as pg_xlogdump, to use it easily. The previous location, in src/backend/catalog/catalog.c, made that essentially impossible because that file depends on many backend-only facilities; so this needs to live separately. --- src/include/catalog/catalog.h | 20 -------------------- src/include/common/relpath.h | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 20 deletions(-) create mode 100644 src/include/common/relpath.h (limited to 'src/include') diff --git a/src/include/catalog/catalog.h b/src/include/catalog/catalog.h index 5d506fe78b1..44b6f387436 100644 --- a/src/include/catalog/catalog.h +++ b/src/include/catalog/catalog.h @@ -14,34 +14,14 @@ #ifndef CATALOG_H #define CATALOG_H -/* - * 'pgrminclude ignore' needed here because CppAsString2() does not throw - * an error if the symbol is not defined. - */ -#include "catalog/catversion.h" /* pgrminclude ignore */ #include "catalog/pg_class.h" #include "storage/relfilenode.h" #include "utils/relcache.h" -#define OIDCHARS 10 /* max chars printed by %u */ -#define TABLESPACE_VERSION_DIRECTORY "PG_" PG_MAJORVERSION "_" \ - CppAsString2(CATALOG_VERSION_NO) - -extern const char *forkNames[]; extern ForkNumber forkname_to_number(char *forkName); -extern int forkname_chars(const char *str, ForkNumber *); -extern char *relpathbackend(RelFileNode rnode, BackendId backend, - ForkNumber forknum); extern char *GetDatabasePath(Oid dbNode, Oid spcNode); -/* First argument is a RelFileNodeBackend */ -#define relpath(rnode, forknum) \ - relpathbackend((rnode).node, (rnode).backend, (forknum)) - -/* First argument is a RelFileNode */ -#define relpathperm(rnode, forknum) \ - relpathbackend((rnode), InvalidBackendId, (forknum)) extern bool IsSystemRelation(Relation relation); extern bool IsToastRelation(Relation relation); diff --git a/src/include/common/relpath.h b/src/include/common/relpath.h new file mode 100644 index 00000000000..5b28bd03619 --- /dev/null +++ b/src/include/common/relpath.h @@ -0,0 +1,41 @@ +/*------------------------------------------------------------------------- + * + * relpath.h + * Declarations for relpath() and friends + * + * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/include/common/relpath.h + * + *------------------------------------------------------------------------- + */ +#ifndef RELPATH_H +#define RELPATH_H + +/* + * 'pgrminclude ignore' needed here because CppAsString2() does not throw + * an error if the symbol is not defined. + */ +#include "catalog/catversion.h" /* pgrminclude ignore */ +#include "storage/relfilenode.h" + + +#define OIDCHARS 10 /* max chars printed by %u */ +#define TABLESPACE_VERSION_DIRECTORY "PG_" PG_MAJORVERSION "_" \ + CppAsString2(CATALOG_VERSION_NO) + +extern const char *forkNames[]; +extern int forkname_chars(const char *str, ForkNumber *fork); +extern char *relpathbackend(RelFileNode rnode, BackendId backend, + ForkNumber forknum); + +/* First argument is a RelFileNodeBackend */ +#define relpath(rnode, forknum) \ + relpathbackend((rnode).node, (rnode).backend, (forknum)) + +/* First argument is a RelFileNode */ +#define relpathperm(rnode, forknum) \ + relpathbackend((rnode), InvalidBackendId, (forknum)) + +#endif /* RELPATH_H */ -- cgit v1.2.3