    /*
     *  call-seq:
     *     index_reader.tokenized_fields -> array of field-names
     *
     *  Returns an array of field names of all of the tokenized fields 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_tk_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++) {
            if (!fi_is_tokenized(fis->fields[i])) continue;
            rb_ary_push(rfield_names, ID2SYM(rb_intern(fis->fields[i]->name)));
        }
        return rfield_names;
    }