/* * 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; }