22#include "catalog/pg_class_d.h"
148#define CLASS_TUPLE_SIZE \
149 (offsetof(FormData_pg_class,relminmxid) + sizeof(TransactionId))
165#ifdef EXPOSE_TO_CLIENT_CODE
167#define RELKIND_RELATION 'r'
168#define RELKIND_INDEX 'i'
169#define RELKIND_SEQUENCE 'S'
170#define RELKIND_TOASTVALUE 't'
171#define RELKIND_VIEW 'v'
172#define RELKIND_MATVIEW 'm'
173#define RELKIND_COMPOSITE_TYPE 'c'
174#define RELKIND_FOREIGN_TABLE 'f'
175#define RELKIND_PARTITIONED_TABLE 'p'
176#define RELKIND_PARTITIONED_INDEX 'I'
178#define RELPERSISTENCE_PERMANENT 'p'
179#define RELPERSISTENCE_UNLOGGED 'u'
180#define RELPERSISTENCE_TEMP 't'
183#define REPLICA_IDENTITY_DEFAULT 'd'
185#define REPLICA_IDENTITY_NOTHING 'n'
187#define REPLICA_IDENTITY_FULL 'f'
193#define REPLICA_IDENTITY_INDEX 'i'
200#define RELKIND_HAS_STORAGE(relkind) \
201 ((relkind) == RELKIND_RELATION || \
202 (relkind) == RELKIND_INDEX || \
203 (relkind) == RELKIND_SEQUENCE || \
204 (relkind) == RELKIND_TOASTVALUE || \
205 (relkind) == RELKIND_MATVIEW)
207#define RELKIND_HAS_PARTITIONS(relkind) \
208 ((relkind) == RELKIND_PARTITIONED_TABLE || \
209 (relkind) == RELKIND_PARTITIONED_INDEX)
218#define RELKIND_HAS_TABLESPACE(relkind) \
219 ((RELKIND_HAS_STORAGE(relkind) || RELKIND_HAS_PARTITIONS(relkind)) \
220 && (relkind) != RELKIND_SEQUENCE)
229#define RELKIND_HAS_TABLE_AM(relkind) \
230 ((relkind) == RELKIND_RELATION || \
231 (relkind) == RELKIND_TOASTVALUE || \
232 (relkind) == RELKIND_MATVIEW)
#define DECLARE_UNIQUE_INDEX_PKEY(name, oid, oidmacro, tblname, decl)
#define BKI_LOOKUP(catalog)
#define BKI_DEFAULT(value)
#define BKI_LOOKUP_OPT(catalog)
#define DECLARE_UNIQUE_INDEX(name, oid, oidmacro, tblname, decl)
#define CATALOG(name, oid, oidmacro)
#define DECLARE_INDEX(name, oid, oidmacro, tblname, decl)
#define MAKE_SYSCACHE(name, idxname, nbuckets)
#define BKI_ROWTYPE_OID(oid, oidmacro)
FormData_pg_class * Form_pg_class
RelationRelation_Rowtype_Id BKI_SCHEMA_MACRO
int errdetail_relkind_not_supported(char relkind)