93 #define TupleDescAttr(tupdesc, i) (&(tupdesc)->attrs[(i)]) 104 #define TupleDescSize(src) \ 105 (offsetof(struct tupleDesc, attrs) + \ 106 (src)->natts * sizeof(FormData_pg_attribute)) 118 #define PinTupleDesc(tupdesc) \ 120 if ((tupdesc)->tdrefcount >= 0) \ 121 IncrTupleDescRefCount(tupdesc); \ 124 #define ReleaseTupleDesc(tupdesc) \ 126 if ((tupdesc)->tdrefcount >= 0) \ 127 DecrTupleDescRefCount(tupdesc); \ 136 const char *attributeName,
143 const char *attributeName,
TupleDesc CreateTupleDescCopyConstr(TupleDesc tupdesc)
uint32 hashTupleDesc(TupleDesc tupdesc)
void TupleDescCopyEntry(TupleDesc dst, AttrNumber dstAttno, TupleDesc src, AttrNumber srcAttno)
void TupleDescInitEntryCollation(TupleDesc desc, AttrNumber attributeNumber, Oid collationid)
void FreeTupleDesc(TupleDesc tupdesc)
void IncrTupleDescRefCount(TupleDesc tupdesc)
void DecrTupleDescRefCount(TupleDesc tupdesc)
struct tupleConstr TupleConstr
bool equalTupleDescs(TupleDesc tupdesc1, TupleDesc tupdesc2)
TupleDesc BuildDescFromLists(List *names, List *types, List *typmods, List *collations)
void TupleDescInitEntry(TupleDesc desc, AttrNumber attributeNumber, const char *attributeName, Oid oidtypeid, int32 typmod, int attdim)
FormData_pg_attribute * Form_pg_attribute
TupleDesc CreateTupleDescCopy(TupleDesc tupdesc)
struct constrCheck ConstrCheck
struct attrMissing * MissingPtr
struct tupleDesc * TupleDesc
void TupleDescInitBuiltinEntry(TupleDesc desc, AttrNumber attributeNumber, const char *attributeName, Oid oidtypeid, int32 typmod, int attdim)
struct attrDefault AttrDefault
TupleDesc BuildDescForRelation(List *schema)
TupleDesc CreateTemplateTupleDesc(int natts, bool hasoid)
void TupleDescCopy(TupleDesc dst, TupleDesc src)
TupleDesc CreateTupleDesc(int natts, bool hasoid, Form_pg_attribute *attrs)