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

        for (hse = fields->first; hse; hse = hse->next) {
            rb_ary_push(rfields, ID2SYM(rb_intern((char *)hse->elem)));
        }

        return rfields;
    }