static VALUE pg_tmas_result_value( t_typemap *p_typemap, VALUE result, int tuple, int field ) { VALUE ret; char * val; int len; t_pg_result *p_result = pgresult_get_this(result); if (PQgetisnull(p_result->pgresult, tuple, field)) { return Qnil; } val = PQgetvalue( p_result->pgresult, tuple, field ); len = PQgetlength( p_result->pgresult, tuple, field ); if ( 0 == PQfformat(p_result->pgresult, field) ) { ret = pg_text_dec_string(NULL, val, len, tuple, field, ENCODING_GET(result)); } else { ret = pg_bin_dec_bytea(NULL, val, len, tuple, field, ENCODING_GET(result)); } return ret; }
static VALUE pg_text_dec_in_ruby(t_pg_type *conv, char *val, int len, int tuple, int field, int enc_idx) { VALUE string = pg_text_dec_string(conv, val, len, tuple, field, enc_idx); return rb_funcall( conv->dec_obj, s_id_call, 3, string, INT2NUM(tuple), INT2NUM(field) ); }