tupdesc.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
- /*-------------------------------------------------------------------------
- *
- * tupdesc.h
- * POSTGRES tuple descriptor definitions.
- *
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- * $Id: tupdesc.h,v 1.22.2.1 1999/07/30 18:27:00 scrappy Exp $
- *
- *-------------------------------------------------------------------------
- */
- #ifndef TUPDESC_H
- #define TUPDESC_H
- #include "access/attnum.h"
- #include "catalog/pg_attribute.h"
- #include "nodes/pg_list.h"
- typedef struct attrDefault
- {
- AttrNumber adnum;
- char *adbin;
- char *adsrc;
- } AttrDefault;
- typedef struct constrCheck
- {
- char *ccname;
- char *ccbin;
- char *ccsrc;
- } ConstrCheck;
- /* This structure contains constraints of a tuple */
- typedef struct tupleConstr
- {
- AttrDefault *defval;
- ConstrCheck *check;
- uint16 num_defval;
- uint16 num_check;
- bool has_not_null;
- } TupleConstr;
- /*
- * This structure contains all information (i.e. from Classes
- * pg_attribute, pg_attrdef, pg_relcheck) for a tuple.
- */
- typedef struct tupleDesc
- {
- int natts;
- /* Number of attributes in the tuple */
- Form_pg_attribute *attrs;
- /* attrs[N] is a pointer to the description of Attribute Number N+1. */
- TupleConstr *constr;
- } *TupleDesc;
- extern TupleDesc CreateTemplateTupleDesc(int natts);
- extern TupleDesc CreateTupleDesc(int natts, Form_pg_attribute *attrs);
- extern TupleDesc CreateTupleDescCopy(TupleDesc tupdesc);
- extern TupleDesc CreateTupleDescCopyConstr(TupleDesc tupdesc);
- extern void FreeTupleDesc(TupleDesc tupdesc);
- extern bool TupleDescInitEntry(TupleDesc desc,
- AttrNumber attributeNumber,
- char *attributeName,
- Oid typeid,
- int32 typmod,
- int attdim,
- bool attisset);
- extern TupleDesc BuildDescForRelation(List *schema, char *relname);
- #endif /* TUPDESC_H */