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

Reply via email to