* Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: seshigh.c,v 1.64 2005-11-08 15:08:02 adam Exp $
+ * $Id: seshigh.c,v 1.67 2006-02-27 21:31:33 adam Exp $
*/
/**
* \file seshigh.c
#include <yaz/oid.h>
#include <yaz/log.h>
#include <yaz/logrpn.h>
+#include <yaz/querytowrbuf.h>
#include <yaz/statserv.h>
#include <yaz/diagbib1.h>
#include <yaz/charneg.h>
(*assoc->init->bend_scan))(assoc->backend, bsrr);
}
else if (srw_req->query_type == Z_SRW_query_type_cql
- && assoc->init->bend_srw_scan)
+ && assoc->init->bend_scan && assoc->cql_transform)
{
- if (assoc->cql_transform)
- {
- int srw_error;
- bsrr->scanClause = 0;
- bsrr->attributeset = VAL_NONE;
- bsrr->term = odr_malloc(assoc->decode, sizeof(*bsrr->term));
- srw_error = cql2pqf_scan(assoc->encode,
- srw_req->scanClause.cql,
- assoc->cql_transform,
- bsrr->term);
- if (srw_error)
- yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics,
- &srw_res->num_diagnostics,
- srw_error, 0);
- else
- {
- ((int (*)(void *, bend_scan_rr *))
- (*assoc->init->bend_scan))(assoc->backend, bsrr);
- }
- }
+ int srw_error;
+ bsrr->scanClause = 0;
+ bsrr->attributeset = VAL_NONE;
+ bsrr->term = odr_malloc(assoc->decode, sizeof(*bsrr->term));
+ srw_error = cql2pqf_scan(assoc->encode,
+ srw_req->scanClause.cql,
+ assoc->cql_transform,
+ bsrr->term);
+ if (srw_error)
+ yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics,
+ &srw_res->num_diagnostics,
+ srw_error, 0);
else
{
- bsrr->term = 0;
- bsrr->attributeset = VAL_NONE;
- bsrr->scanClause = srw_req->scanClause.cql;
((int (*)(void *, bend_scan_rr *))
- (*assoc->init->bend_srw_scan))(assoc->backend, bsrr);
+ (*assoc->init->bend_scan))(assoc->backend, bsrr);
}
}
+ else if (srw_req->query_type == Z_SRW_query_type_cql
+ && assoc->init->bend_srw_scan)
+ {
+ bsrr->term = 0;
+ bsrr->attributeset = VAL_NONE;
+ bsrr->scanClause = srw_req->scanClause.cql;
+ ((int (*)(void *, bend_scan_rr *))
+ (*assoc->init->bend_srw_scan))(assoc->backend, bsrr);
+ }
else
{
yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics,
}
else if (sr->which == Z_SRW_update_request)
{
- yaz_log(YLOG_DEBUG, "handling SRW UpdateRequest");
Z_SRW_PDU *res = yaz_srw_get(o, Z_SRW_update_response);
+ yaz_log(YLOG_DEBUG, "handling SRW UpdateRequest");
if (num_diagnostic)
{
res->u.update_response->diagnostics = diagnostic;
assoc->init->implementation_name,
odr_prepend(assoc->encode, "GFS", resp->implementationName));
- version = odr_strdup(assoc->encode, "$Revision: 1.64 $");
+ version = odr_strdup(assoc->encode, "$Revision: 1.67 $");
if (strlen(version) > 10) /* check for unexpanded CVS strings */
version[strlen(version)-2] = '\0';
resp->implementationVersion = odr_prepend(assoc->encode,
wrbuf_printf(wr, "OK %d", bsrt->hits);
wrbuf_printf(wr, " %s 1+%d ",
req->resultSetName, returnedrecs);
- wrbuf_put_zquery(wr, req->query);
+ yaz_query_to_wrbuf(wr, req->query);
yaz_log(log_request, "Search %s", wrbuf_buf(wr));
wrbuf_free(wr, 1);
*req->preferredPositionInResponse : 1),
*req->numberOfTermsRequested,
(res->stepSize ? *res->stepSize : 0));
- wrbuf_scan_term(wr, req->termListAndStartPoint,
- bsrr->attributeset);
-
+ yaz_scan_to_wrbuf(wr, req->termListAndStartPoint,
+ bsrr->attributeset);
yaz_log(log_request, "Scan %s", wrbuf_buf(wr) );
wrbuf_free(wr, 1);
}