/* * call-seq: * res.each{ |tuple| ... } * * Invokes the block for each tuple (row) in the result. * * Equivalent to <tt>res.result.each{ |tuple| ... }</tt>. */ static VALUE pgresult_each(obj) VALUE obj; { PGresult *result; int nt, nf, i, j; result = get_pgresult(obj); nt = PQntuples(result); nf = PQnfields(result); for (i=0; i<nt; i++) { VALUE row = rb_ary_new2(nf); for (j=0; j<nf; j++) { VALUE value = fetch_pgresult(result, i, j); rb_ary_push(row, value); } rb_yield(row); }; return Qnil; }