Re: [GENERAL] Get user defined type OID (PostgreSQL extension in C) - Mailing list pgsql-general

From Melvin Davidson
Subject Re: [GENERAL] Get user defined type OID (PostgreSQL extension in C)
Date
Msg-id CANu8Fixftnnb0H6bVS2Q5rZgfqcmMX1Rh=fEFcnQGFkg9Ec9jQ@mail.gmail.com
Whole thread Raw
In response to [GENERAL] Get user defined type OID (PostgreSQL extension in C)  (Fabiana Zioti <fabi_zioti@hotmail.com>)
List pgsql-general


On Fri, Aug 25, 2017 at 2:34 PM, Fabiana Zioti <fabi_zioti@hotmail.com> wrote:

 

I'm developing an extension to PostgreSQL using C. I created a user-defined type called geo_trajc_elem. I also created a function to generate an array of this new type.

 
(....)

  ArrayType *result_array;
  struct geo_trajc_elem *traje = (struct geo_trajc_elem *)palloc(sizeof(struct geo_trajc_elem));

  Timestamp time_el = PG_GETARG_TIMESTAMP(1);
  struct geo_point *pt = PG_GETARG_GEOPOINT_TYPE_P(2);

  int16 typlen;
  bool typbyval;
  char typalign;

  Datum datum_element;


  traje = DatumGetGeoTrajETypeP(DirectFunctionCall2(get_trajectory_elem, PointerGetDatum(time_el), PointerGetDatum(pt)));
  datum_element = PointerGetDatum(traje);

  /* Oid element_type = get_fn_expr_argtype(fcinfo->flinfo, 0); */

  Oid element_type = ?

  get_typlenbyvalalign(element_type, &typlen, &typbyval, &typalign);
(....)


Is there a function to get the id of my new type? Like get_oid_elem (struct geo_trajc_elem)

In this case, it is not possible to use get_fn_expr_argtype because I am not passing the new type as argument but creating it in the function itself, correct ?
 
>Is there a function to get the id of my new type? Like get_oid_elem (struct geo_trajc_elem)

A simple

SELECT oid, typname
     FROM pg_type
 WHERE typname = 'struct geo_trajc_elem';

should do the trick for you.

--
Melvin Davidson
I reserve the right to fantasize.  Whether or not you
wish to share my fantasy is entirely up to you.

pgsql-general by date:

Previous
From: marcelo
Date:
Subject: Re: [GENERAL] Porting libpq to QNX 4.25
Next
From: Adam Brusselback
Date:
Subject: Re: [GENERAL] Porting libpq to QNX 4.25