    /*
     *  call-seq:
     *     query_parser.fields -> Array of Symbols
     *
     *  Returns the list of all fields that the QueryParser knows about.
     */
    static VALUE
    frt_qp_get_fields(VALUE self)
    {
        GET_QP;
        int i;
        HashSet *fields = qp->all_fields;
        VALUE rfields = rb_ary_new();

        for (i = 0; i < fields->size; i++) {
            rb_ary_push(rfields, ID2SYM(rb_intern((char *)fields->elems[i])));
        }

        return rfields;
    }