Accessing fields past CATALOG_VARLEN - Mailing list pgsql-hackers

From Ed Behn
Subject Accessing fields past CATALOG_VARLEN
Date
Msg-id CAJBL5DOhY+p9w4FxhTji9HbFzbowhNKwG9hJZ_fMPK24GLYF-w@mail.gmail.com
Whole thread Raw
Responses Re: Accessing fields past CATALOG_VARLEN
Re: Accessing fields past CATALOG_VARLEN
List pgsql-hackers
I'm trying to write a C-language function to be compiled into a shared module to be loaded by Postgres. In it, I have the OID of a function and I need to get information from the pg_proc table. 

So far, I have:

HeapTuple procTuple;
Form_pg_proc procStruct;

procTuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(funcoid));
if(!HeapTupleIsValid(procTuple))
    ereport(ERROR, errmsg("cache lookup failed for function %u.", funcoid));
 
procStruct = (Form_pg_proc) GETSTRUCT(procTuple);

I can get fields like procStruct->prokind and procStruct->proretset.

However, I get a compiler error when I try to access procStruct->proargmodes. I know that this is because this field is in the CATALOG_VARLEN block which makes it invisible to the compiler. 

What is the proper way to get this field? 

       -Ed




pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: CREATEROLE and role ownership hierarchies
Next
From: Alvaro Herrera
Date:
Subject: Re: SKIP LOCKED assert triggered