const Z_SRW_searchRetrieveRequest *req
) const
{
- if (req->query_type == Z_SRW_query_type_cql)
+ if (
+#ifdef Z_SRW_query_type_cql
+ req->query_type == Z_SRW_query_type_cql
+#else
+ !strcmp(req->queryType, "cql")
+#endif
+ )
{
Z_External *ext = (Z_External *)
odr_malloc(odr_en, sizeof(*ext));
ext->indirect_reference = 0;
ext->descriptor = 0;
ext->which = Z_External_CQL;
- ext->u.cql = odr_strdup(odr_en, req->query.cql);
+ ext->u.cql = odr_strdup(odr_en,
+#ifdef Z_SRW_query_type_cql
+ req->query.cql
+#else
+ req->query
+#endif
+ );
z_query->which = Z_Query_type_104;
z_query->u.type_104 = ext;
return 0;
}
- if (req->query_type == Z_SRW_query_type_pqf)
+ if (
+#ifdef Z_SRW_query_type_pqf
+ req->query_type == Z_SRW_query_type_pqf
+#else
+ !strcmp(req->queryType, "pqf")
+#endif
+ )
{
Z_RPNQuery *RPNquery;
YAZ_PQF_Parser pqf_parser;
pqf_parser = yaz_pqf_create ();
- RPNquery = yaz_pqf_parse (pqf_parser, odr_en, req->query.pqf);
-
+ RPNquery = yaz_pqf_parse (pqf_parser, odr_en,
+#ifdef Z_SRW_query_type_pqf
+ req->query.pqf
+#else
+ req->query
+#endif
+ );
yaz_pqf_destroy(pqf_parser);
if (!RPNquery)
Z_SRW_PDU *sru_pdu_res,
Z_SRW_searchRetrieveRequest const *sr_req)
{
+#ifdef Z_SRW_query_type_cql
if ((sr_req->query_type == Z_SRW_query_type_cql && !sr_req->query.cql))
{
yaz_add_srw_diagnostic(odr_en,
"PQF query is empty");
return false;
}
+#else
+ if (!sr_req->query)
+ {
+ yaz_add_srw_diagnostic(odr_en,
+ &(sru_pdu_res->u.response->diagnostics),
+ &(sru_pdu_res->u.response->num_diagnostics),
+ YAZ_SRW_MANDATORY_PARAMETER_NOT_SUPPLIED,
+ "query");
+ yaz_add_srw_diagnostic(odr_en,
+ &(sru_pdu_res->u.response->diagnostics),
+ &(sru_pdu_res->u.response->num_diagnostics),
+ YAZ_SRW_QUERY_SYNTAX_ERROR,
+ "CQL query is empty");
+ return false;
+ }
+#endif
return true;
}
else
os << " -";
+#ifdef Z_SRW_query_type_cql
switch (sr->query_type){
case Z_SRW_query_type_cql:
os << " CQL";
os << " " << sr->query.pqf;
break;
}
+#else
+ os << " " << (sr->queryType ? sr->queryType : "cql")
+ << " " << sr->query;
+#endif
}
}
break;