/*
 *  call-seq:
 *     query_parser.fields = fields -> self
 *
 *  Set the list of fields. These fields are expanded for searches on "*".
 */
static VALUE
frt_qp_set_fields(VALUE self, VALUE rfields)
{
    GET_QP;
    HashSet *fields = frt_get_fields(rfields);

    if (qp->def_fields == qp->all_fields) {
        qp->def_fields = NULL;
    }
    if (fields == NULL) {
        fields = hs_new_str(&free);
    }
    hs_destroy(qp->all_fields);
    qp->all_fields = fields;
    if (qp->def_fields == NULL) {
        qp->def_fields = fields;
    }

    return self;
}