Datum checkreaction(PG_FUNCTION_ARGS) { Datum react_datum = PG_GETARG_DATUM(0); char* result = 0; PG_BINGO_BEGIN { BingoPgCommon::BingoSessionHandler bingo_handler(fcinfo->flinfo->fn_oid); bingo_handler.setFunctionName("checkreaction"); BingoPgText react_text(react_datum); int buf_size; const char* react_buf = react_text.getText(buf_size); const char* bingo_result = ringoCheckReaction(react_buf, buf_size); if(bingo_result == 0) PG_RETURN_NULL(); result = BingoPgCommon::releaseString(bingo_result); } PG_BINGO_END if (result == 0) PG_RETURN_NULL(); PG_RETURN_CSTRING(result); }
Datum rcml(PG_FUNCTION_ARGS) { Datum react_datum = PG_GETARG_DATUM(0); char* result = 0; PG_BINGO_BEGIN { BingoPgCommon::BingoSessionHandler bingo_handler(fcinfo->flinfo->fn_oid); bingo_handler.setFunctionName("rcml"); BingoPgText react_text(react_datum); int buf_size; const char* react_buf = react_text.getText(buf_size); const char* bingo_result = ringoRCML(react_buf, buf_size); if(bingo_result == 0) { CORE_HANDLE_WARNING(0, 1, "bingo.rcml", bingoGetError()); PG_RETURN_NULL(); } result = BingoPgCommon::releaseString(bingo_result); } PG_BINGO_END if (result == 0) PG_RETURN_NULL(); PG_RETURN_CSTRING(result); }
Datum rxnfile(PG_FUNCTION_ARGS) { Datum react_datum = PG_GETARG_DATUM(0); void* result = 0; PG_BINGO_BEGIN { BingoPgCommon::BingoSessionHandler bingo_handler(fcinfo->flinfo->fn_oid); bingo_handler.setFunctionName("rxnfile"); BingoPgText react_text(react_datum); int buf_size; const char* react_buf = react_text.getText(buf_size); const char* bingo_result = ringoRxnfile(react_buf, buf_size); if(bingo_result == 0) { CORE_HANDLE_WARNING(0, 1, "bingo.rxnfile", bingoGetError()); PG_RETURN_NULL(); } BingoPgText result_text; result_text.initFromString(bingo_result); result = result_text.release(); } PG_BINGO_END if (result == 0) PG_RETURN_NULL(); PG_RETURN_TEXT_P(result); }