Hi,
I am defining a new data type called mpoint
i.e.
typedef struct mpoint
{
Point p;
Timestamp t;
} mpoint;
For defining input/output function
1 Datum mpoint_in(PG_FUNCTION_ARGS)
2 {
3
4 mpoint *result;
5 char *pnt=(char *)malloc (sizeof (20));
6 char *ts=(char *)malloc (sizeof (20));
7 result= (mpoint *) palloc(sizeof(mpoint));
8 char *st = PG_GETARG_CSTRING(0);
9 mpoint_decode(st,pnt,ts); // st breaks down into pnt that corresponds to Point and ts corresponds to Timestamp
10
11 result->p = point_in(PointerGetDatum(pnt)); // point_in (input function for point that assigns x, y into point)
12 result-> t = timestamp_in(PointerGetDatum(ts)); // similar for timestamp
13
14 PG_RETURN_MPOINT_P(result);
15 }
line no 11 warning: passing argument 1 of ‘point_in’ makes pointer from integer without a cast
../../../include/utils/geo_decls.h:191: note: expected ‘FunctionCallInfo’ but argument is of type ‘unsigned int’
line no 11 error: incompatible types when assigning to type ‘Point’ from type ‘Datum’
line no 12 warning: passing argument 1 of ‘timestamp_in’ makes pointer from integer without a cast
../../../include/utils/timestamp.h:205: note: expected ‘FunctionCallInfo’ but argument is of type ‘unsigned int’
Can anybody figure out what kind of mistake i am doing?
Also, why it got related to 'FunctionCallInfo' ?
Thanks
Nick