/* * call-seq: * conn.select_values(query, *bind_values) * * Equivalent to conn.query(query, *bind_values).flatten */ static VALUE pgconn_select_values(argc, argv, self) int argc; VALUE *argv; VALUE self; { VALUE pg_result = pgconn_exec(argc, argv, self); PGresult * result = get_pgresult(pg_result); int ntuples = PQntuples(result); int nfields = PQnfields(result); VALUE values = rb_ary_new2(ntuples * nfields); int row_num, field_num; for (row_num = 0; row_num < ntuples; row_num++) { for (field_num = 0; field_num < nfields; field_num++) { rb_ary_push(values, fetch_pgresult(result, row_num, field_num)); } } pgresult_clear(pg_result); return values; }