Hi, I have defined some function and also used NDBOX structure that having variable length.
typedef struct NDBOX { int32 vl_len_; /* varlena length */ unsigned int dim; double x[1]; } NDBOX; When i called my function, it gives NDBOX to be null On debugging, i found out ,FunctionInvokeCall invokes fmgr_oldstyle function, for getting argument if (fnextra->arg_toastable[i]) //this returns false, not able to get arguments fcinfo->arg[i] = PointerGetDatum(PG_DETOAST_DATUM(fcinfo->arg[i])); } "How to get arguments toastable??" and even my table pg_class.reltoastrelid entry is zero. Can i have to tell explicitly to toast? If i commented that if conditions then, it got stuck below: struct varlena * pg_detoast_datum(struct varlena * datum) { if (VARATT_IS_EXTENDED(datum)) //My code get stuck here return heap_tuple_untoast_attr(datum); else return datum; } Can anyone tell me what VARATT_IS_EXTENDED(datum) mean? Thanks