- char *setstring = "default";
- int len;
- Z_SortRequest *sr = apdu->u.sortRequest;
-
- sr->num_inputResultSetNames = 1;
- sr->num_inputResultSetNames = 1;
- sr->inputResultSetNames = (Z_InternationalString **)
- odr_malloc (odr_encode(), sizeof(*sr->inputResultSetNames));
- sr->inputResultSetNames[0] = odr_strdup (odr_encode(), setstring);
- sr->sortedResultSetName = odr_strdup(odr_encode(), setstring);
- sr->sortSequence = yaz_sort_spec(odr_encode(), try_sort[m_sort_no]);
- send_Z_PDU(apdu, &len);
+ apdu = zget_APDU(odr_encode(), Z_APDU_searchRequest);
+ Z_SearchRequest *sr;
+ sr = apdu->u.searchRequest;
+ sr->query = (Z_Query *) odr_malloc(odr_encode(), sizeof(*sr->query));
+ if (try_query[m_query_no] && sr)
+ {
+ sr->query->which = Z_Query_type_1;
+ Z_RPNQuery *rpn;
+ YAZ_PQF_Parser pqf_parser = yaz_pqf_create ();
+
+ sr->databaseNames = &m_database;
+ sr->num_databaseNames = 1;
+
+ rpn = yaz_pqf_parse(pqf_parser, odr_encode(), try_query[m_query_no]);
+
+ yaz_pqf_destroy (pqf_parser);
+
+ if (rpn)
+ {
+ int len;
+ yaz_log(LOG_DEBUG, "%spqf: %s",
+ m_session_str, try_query[m_query_no]);
+
+ sr->query->u.type_1 = rpn;
+ send_Z_PDU(apdu, &len);
+ }
+ else
+ closeNextTest();
+ }
+ else
+ {
+ yaz_log(LOG_WARN, "%sunable to get any hit count",
+ m_session_str);
+ closeNextTest();
+ }
+ }
+ else
+ {
+ apdu = zget_APDU(odr_encode(), Z_APDU_sortRequest);
+ if (apdu && try_sort[m_sort_no])
+ {
+ char *setstring = "default";
+ int len;
+ Z_SortRequest *sr = apdu->u.sortRequest;
+
+ sr->num_inputResultSetNames = 1;
+ sr->num_inputResultSetNames = 1;
+ sr->inputResultSetNames = (Z_InternationalString **)
+ odr_malloc (odr_encode(), sizeof(*sr->inputResultSetNames));
+ sr->inputResultSetNames[0] = odr_strdup (odr_encode(), setstring);
+ sr->sortedResultSetName = odr_strdup(odr_encode(), setstring);
+ sr->sortSequence = yaz_sort_spec(odr_encode(), try_sort[m_sort_no]);
+ send_Z_PDU(apdu, &len);
+ }
+ else
+ closeNextTest();