00001 /*------------------------------------------------------------------------- 00002 * 00003 * catalog.h 00004 * prototypes for functions in backend/catalog/catalog.c 00005 * 00006 * 00007 * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group 00008 * Portions Copyright (c) 1994, Regents of the University of California 00009 * 00010 * src/include/catalog/catalog.h 00011 * 00012 *------------------------------------------------------------------------- 00013 */ 00014 #ifndef CATALOG_H 00015 #define CATALOG_H 00016 00017 #include "catalog/pg_class.h" 00018 #include "storage/relfilenode.h" 00019 #include "utils/relcache.h" 00020 00021 extern ForkNumber forkname_to_number(char *forkName); 00022 00023 extern char *GetDatabasePath(Oid dbNode, Oid spcNode); 00024 00025 00026 extern bool IsSystemRelation(Relation relation); 00027 extern bool IsToastRelation(Relation relation); 00028 00029 extern bool IsSystemClass(Form_pg_class reltuple); 00030 extern bool IsToastClass(Form_pg_class reltuple); 00031 00032 extern bool IsSystemNamespace(Oid namespaceId); 00033 extern bool IsToastNamespace(Oid namespaceId); 00034 00035 extern bool IsReservedName(const char *name); 00036 00037 extern bool IsSharedRelation(Oid relationId); 00038 00039 extern Oid GetNewOid(Relation relation); 00040 extern Oid GetNewOidWithIndex(Relation relation, Oid indexId, 00041 AttrNumber oidcolumn); 00042 extern Oid GetNewRelFileNode(Oid reltablespace, Relation pg_class, 00043 char relpersistence); 00044 00045 #endif /* CATALOG_H */