Обсуждение: How to Know the number of attrs?

Поиск
Список
Период
Сортировка

How to Know the number of attrs?

От
jacktby jacktby
Дата:
typedef struct TupleDescData
{
    int            natts;            /* number of attributes in the tuple */
    Oid            tdtypeid;        /* composite type ID for tuple type */
    int32        tdtypmod;        /* typmod for tuple type */
    int            tdrefcount;        /* reference count, or -1 if not counting */
    TupleConstr *constr;        /* constraints, or NULL if none */
    /* attrs[N] is the description of Attribute Number N+1 */
    FormData_pg_attribute attrs[FLEXIBLE_ARRAY_MEMBER];
}            TupleDescData;

Hi, the attrs use FLEXIBLE_ARRAY_MEMBER, so which API should I use to get the real length of this array?


Re: How to Know the number of attrs?

От
Erik Wienhold
Дата:
On 2023-09-24 20:56 +0800, jacktby jacktby wrote:
> typedef struct TupleDescData
> {
>     int            natts;            /* number of attributes in the tuple */
>     Oid            tdtypeid;        /* composite type ID for tuple type */
>     int32        tdtypmod;        /* typmod for tuple type */
>     int            tdrefcount;        /* reference count, or -1 if not counting */
>     TupleConstr *constr;        /* constraints, or NULL if none */
>     /* attrs[N] is the description of Attribute Number N+1 */
>     FormData_pg_attribute attrs[FLEXIBLE_ARRAY_MEMBER];
> }            TupleDescData;
> 
> Hi, the attrs use FLEXIBLE_ARRAY_MEMBER, so which API should I use to
> get the real length of this array?

Use the natts field of TupleDescData.

-- 
Erik