    /*
     *  call-seq:
     *     index_reader.fields -> array of field-names
     *
     *  Returns an array of field names in the index. This can be used to pass to
     *  the QueryParser so that the QueryParser knows how to expand the "*"
     *  wild-card to all fields in the index. A list of field names can also be
     *  gathered from the FieldInfos object.
     */
    static VALUE
    frt_ir_fields(VALUE self)
    {
        IndexReader *ir = (IndexReader *)DATA_PTR(self);
        FieldInfos *fis = ir->fis;
        VALUE rfield_names = rb_ary_new();
        int i;
        for (i = 0; i < fis->size; i++) {
            rb_ary_push(rfield_names, ID2SYM(rb_intern(fis->fields[i]->name)));
        }
        return rfield_names;
    }