/*------------------------------------------------------------------------- * * pg_class_d.h * Macro definitions for pg_class * * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * NOTES * ****************************** * *** DO NOT EDIT THIS FILE! *** * ****************************** * * It has been GENERATED by src/backend/catalog/genbki.pl * *------------------------------------------------------------------------- */ #ifndef PG_CLASS_D_H #define PG_CLASS_D_H /* Macros related to the structure of pg_class */ #define RelationRelationId 1259 #define RelationRelation_Rowtype_Id 83 #define ClassOidIndexId 2662 #define ClassNameNspIndexId 2663 #define ClassTblspcRelfilenodeIndexId 3455 #define Anum_pg_class_oid 1 #define Anum_pg_class_relname 2 #define Anum_pg_class_relnamespace 3 #define Anum_pg_class_reltype 4 #define Anum_pg_class_reloftype 5 #define Anum_pg_class_relowner 6 #define Anum_pg_class_relam 7 #define Anum_pg_class_relfilenode 8 #define Anum_pg_class_reltablespace 9 #define Anum_pg_class_relpages 10 #define Anum_pg_class_reltuples 11 #define Anum_pg_class_relallvisible 12 #define Anum_pg_class_relallfrozen 13 #define Anum_pg_class_reltoastrelid 14 #define Anum_pg_class_relhasindex 15 #define Anum_pg_class_relisshared 16 #define Anum_pg_class_relpersistence 17 #define Anum_pg_class_relkind 18 #define Anum_pg_class_relnatts 19 #define Anum_pg_class_relchecks 20 #define Anum_pg_class_relhasrules 21 #define Anum_pg_class_relhastriggers 22 #define Anum_pg_class_relhassubclass 23 #define Anum_pg_class_relrowsecurity 24 #define Anum_pg_class_relforcerowsecurity 25 #define Anum_pg_class_relispopulated 26 #define Anum_pg_class_relreplident 27 #define Anum_pg_class_relispartition 28 #define Anum_pg_class_relrewrite 29 #define Anum_pg_class_relfrozenxid 30 #define Anum_pg_class_relminmxid 31 #define Anum_pg_class_relacl 32 #define Anum_pg_class_reloptions 33 #define Anum_pg_class_relpartbound 34 #define Natts_pg_class 34 /* Definitions copied from pg_class.h */ #define RELKIND_RELATION 'r' /* ordinary table */ #define RELKIND_INDEX 'i' /* secondary index */ #define RELKIND_SEQUENCE 'S' /* sequence object */ #define RELKIND_TOASTVALUE 't' /* for out-of-line values */ #define RELKIND_VIEW 'v' /* view */ #define RELKIND_MATVIEW 'm' /* materialized view */ #define RELKIND_COMPOSITE_TYPE 'c' /* composite type */ #define RELKIND_FOREIGN_TABLE 'f' /* foreign table */ #define RELKIND_PARTITIONED_TABLE 'p' /* partitioned table */ #define RELKIND_PARTITIONED_INDEX 'I' /* partitioned index */ #define RELPERSISTENCE_PERMANENT 'p' /* regular table */ #define RELPERSISTENCE_UNLOGGED 'u' /* unlogged permanent table */ #define RELPERSISTENCE_TEMP 't' /* temporary table */ /* default selection for replica identity (primary key or nothing) */ #define REPLICA_IDENTITY_DEFAULT 'd' /* no replica identity is logged for this relation */ #define REPLICA_IDENTITY_NOTHING 'n' /* all columns are logged as replica identity */ #define REPLICA_IDENTITY_FULL 'f' /* * an explicitly chosen candidate key's columns are used as replica identity. * Note this will still be set if the index has been dropped; in that case it * has the same meaning as 'n'. */ #define REPLICA_IDENTITY_INDEX 'i' /* * Relation kinds that have physical storage. These relations normally have * relfilenode set to non-zero, but it can also be zero if the relation is * mapped. */ #define RELKIND_HAS_STORAGE(relkind) \ ((relkind) == RELKIND_RELATION || \ (relkind) == RELKIND_INDEX || \ (relkind) == RELKIND_SEQUENCE || \ (relkind) == RELKIND_TOASTVALUE || \ (relkind) == RELKIND_MATVIEW) #define RELKIND_HAS_PARTITIONS(relkind) \ ((relkind) == RELKIND_PARTITIONED_TABLE || \ (relkind) == RELKIND_PARTITIONED_INDEX) /* * Relation kinds that support tablespaces: All relation kinds with storage * support tablespaces, except that we don't support moving sequences around * into different tablespaces. Partitioned tables and indexes don't have * physical storage, but they have a tablespace settings so that their * children can inherit it. */ #define RELKIND_HAS_TABLESPACE(relkind) \ ((RELKIND_HAS_STORAGE(relkind) || RELKIND_HAS_PARTITIONS(relkind)) \ && (relkind) != RELKIND_SEQUENCE) /* * Relation kinds with a table access method (rd_tableam). Although sequences * use the heap table AM, they are enough of a special case in most uses that * they are not included here. Likewise, partitioned tables can have an access * method defined so that their partitions can inherit it, but they do not set * rd_tableam; hence, this is handled specially outside of this macro. */ #define RELKIND_HAS_TABLE_AM(relkind) \ ((relkind) == RELKIND_RELATION || \ (relkind) == RELKIND_TOASTVALUE || \ (relkind) == RELKIND_MATVIEW) /* OID symbols for objects defined in pg_class.dat */ #endif /* PG_CLASS_D_H */