jobject HeapTupleHeader_getObject( JNIEnv* env, jlong hth, jlong jtd, jint attrNo, jclass rqcls) { jobject result = 0; HeapTupleHeader self = (HeapTupleHeader)Invocation_getWrappedPointer(hth); if(self != 0 && jtd != 0) { Ptr2Long p2l; p2l.longVal = jtd; BEGIN_NATIVE PG_TRY(); { Type type = TupleDesc_getColumnType( (TupleDesc) p2l.ptrVal, (int) attrNo); if (type != 0) { Datum binVal; bool wasNull = false; binVal = GetAttributeByNum(self, (AttrNumber)attrNo, &wasNull); if(!wasNull) result = Type_coerceDatumAs(type, binVal, rqcls).l; } } PG_CATCH(); { Exception_throw_ERROR("GetAttributeByNum"); } PG_END_TRY(); END_NATIVE }
/* * Class: org_postgresql_pljava_TriggerData * Method: _getRelation * Signature: (J)Lorg/postgresql/pljava/internal/Relation; */ JNIEXPORT jobject JNICALL Java_org_postgresql_pljava_internal_TriggerData__1getRelation(JNIEnv* env, jclass clazz, jlong _this) { jobject result = 0; TriggerData* self = Invocation_getWrappedPointer(_this); if(self != 0) { BEGIN_NATIVE result = Relation_create(self->tg_relation); END_NATIVE }
/* * Class: org_postgresql_pljava_internal_LargeObject * Method: _close * Signature: (J)V */ JNIEXPORT void JNICALL Java_org_postgresql_pljava_internal_LargeObject__1close(JNIEnv* env, jclass cls, jlong _this) { LargeObjectDesc* self = Invocation_getWrappedPointer(_this); if(self != 0) { BEGIN_NATIVE PG_TRY(); { inv_close(self); } PG_CATCH(); { Exception_throw_ERROR("inv_close"); } PG_END_TRY(); END_NATIVE }
/* * Class: org_postgresql_pljava_internal_Relation * Method: _getName * Signature: (J)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_org_postgresql_pljava_internal_Relation__1getName(JNIEnv* env, jclass clazz, jlong _this) { jstring result = 0; Relation self = Invocation_getWrappedPointer(_this); if(self != 0) { BEGIN_NATIVE PG_TRY(); { char* relName = SPI_getrelname(self); result = String_createJavaStringFromNTS(relName); pfree(relName); } PG_CATCH(); { Exception_throw_ERROR("SPI_getrelname"); } PG_END_TRY(); END_NATIVE }