/*
* call-seq:
* row[position] -> value
* row[name] -> value
*
* Access elements of this row by column position or name.
*/
static VALUE
pgrow_aref(argc, argv, self)
int argc;
VALUE * argv;
VALUE self;
{
if (TYPE(argv[0]) == T_STRING) {
VALUE keys = pgrow_keys(self);
VALUE index = rb_funcall(keys, rb_intern("index"), 1, argv[0]);
if (index == Qnil) {
rb_raise(rb_ePGError, "%s: field not found", StringValuePtr(argv[0]));
}
else {
return rb_ary_entry(self, NUM2INT(index));
}
}
else {
return rb_call_super(argc, argv);
}
}