From: | Fabiana Zioti <fabi_zioti(at)hotmail(dot)com> |
---|---|
To: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Get user defined type OID (PostgreSQL extension in C) |
Date: | 2017-08-25 18:34:36 |
Message-ID: | CP1PR80MB07417E55E182E8E5681D0D3FFD9B0@CP1PR80MB0741.lamprd80.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
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 ?
From | Date | Subject | |
---|---|---|---|
Next Message | marcelo | 2017-08-25 18:47:18 | Re: Porting libpq to QNX 4.25 |
Previous Message | Peter J. Holzer | 2017-08-25 18:26:42 | Re: Porting libpq to QNX 4.25 |