// TupleDesc: schema-related information for HeapTuples
typedef struct tupleDesc
{
int natts; // # attributes in tuple
Oid tdtypeid; // composite type ID for tuple type
int32 tdtypmod; // typmod for tuple type
bool tdhasoid; // does tuple have oid attribute?
int tdrefcount; // reference count (-1 if not counting)
TupleConstr *constr; // constraints, or NULL if none
FormData_pg_attribute attrs[];
// attrs[N] is a pointer to description of attribute N+1
} *TupleDesc;