71 lines
2.2 KiB
C
71 lines
2.2 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* pg_attrdef.h
|
|
* definition of the "attribute defaults" system catalog (pg_attrdef)
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/catalog/pg_attrdef.h
|
|
*
|
|
* NOTES
|
|
* The Catalog.pm module reads this file and derives schema
|
|
* information.
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef PG_ATTRDEF_H
|
|
#define PG_ATTRDEF_H
|
|
|
|
#include "catalog/genbki.h"
|
|
#include "catalog/objectaddress.h"
|
|
#include "catalog/pg_attrdef_d.h"
|
|
|
|
/* ----------------
|
|
* pg_attrdef definition. cpp turns this into
|
|
* typedef struct FormData_pg_attrdef
|
|
* ----------------
|
|
*/
|
|
CATALOG(pg_attrdef,2604,AttrDefaultRelationId)
|
|
{
|
|
Oid oid; /* oid */
|
|
|
|
Oid adrelid BKI_LOOKUP(pg_class); /* OID of table containing
|
|
* attribute */
|
|
int16 adnum; /* attnum of attribute */
|
|
|
|
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
|
pg_node_tree adbin BKI_FORCE_NOT_NULL; /* nodeToString representation of
|
|
* default */
|
|
#endif
|
|
} FormData_pg_attrdef;
|
|
|
|
/* ----------------
|
|
* Form_pg_attrdef corresponds to a pointer to a tuple with
|
|
* the format of pg_attrdef relation.
|
|
* ----------------
|
|
*/
|
|
typedef FormData_pg_attrdef *Form_pg_attrdef;
|
|
|
|
DECLARE_TOAST(pg_attrdef, 2830, 2831);
|
|
|
|
DECLARE_UNIQUE_INDEX(pg_attrdef_adrelid_adnum_index, 2656, AttrDefaultIndexId, pg_attrdef, btree(adrelid oid_ops, adnum int2_ops));
|
|
DECLARE_UNIQUE_INDEX_PKEY(pg_attrdef_oid_index, 2657, AttrDefaultOidIndexId, pg_attrdef, btree(oid oid_ops));
|
|
|
|
DECLARE_FOREIGN_KEY((adrelid, adnum), pg_attribute, (attrelid, attnum));
|
|
|
|
|
|
extern Oid StoreAttrDefault(Relation rel, AttrNumber attnum,
|
|
Node *expr, bool is_internal,
|
|
bool add_column_mode);
|
|
extern void RemoveAttrDefault(Oid relid, AttrNumber attnum,
|
|
DropBehavior behavior,
|
|
bool complain, bool internal);
|
|
extern void RemoveAttrDefaultById(Oid attrdefId);
|
|
|
|
extern Oid GetAttrDefaultOid(Oid relid, AttrNumber attnum);
|
|
extern ObjectAddress GetAttrDefaultColumnAddress(Oid attrdefoid);
|
|
|
|
#endif /* PG_ATTRDEF_H */
|