static Datum coerceTupleObject(UDT self, jobject value) { Datum result = 0; if(value != 0) { HeapTuple tuple; jobject sqlOutput = SQLOutputToTuple_create(self->tupleDesc); JNI_callVoidMethod(value, self->writeSQL, sqlOutput); tuple = SQLOutputToTuple_getTuple(sqlOutput); if(tuple != 0) result = HeapTupleGetDatum(tuple); } return result; }
static Datum coerceTupleObject(UDT self, jobject value) { Datum result = 0; if(value != 0) { HeapTuple tuple; Oid typeId = ((Type)self)->typeId; TupleDesc tupleDesc = lookup_rowtype_tupdesc_noerror(typeId, -1, true); jobject sqlOutput = SQLOutputToTuple_create(tupleDesc); ReleaseTupleDesc(tupleDesc); JNI_callVoidMethod(value, self->writeSQL, sqlOutput); tuple = SQLOutputToTuple_getTuple(sqlOutput); if(tuple != 0) result = HeapTupleGetDatum(tuple); } return result; }