* Copyright (C) 1995-2007, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: client.c,v 1.322 2007-01-03 08:42:13 adam Exp $
+ * $Id: client.c,v 1.323 2007-01-16 14:12:37 adam Exp $
*/
/** \file client.c
* \brief yaz-client program
last_hit_count = *res->resultCount;
if (setnumber >= 0)
printf (", setno %d", setnumber);
- printf ("\n");
+ putchar('\n');
+ if (res->resultSetStatus)
+ {
+ printf("Result Set Status: ");
+ switch(*res->resultSetStatus)
+ {
+ case Z_SearchResponse_subset:
+ printf("subset"); break;
+ case Z_SearchResponse_interim:
+ printf("interim"); break;
+ case Z_SearchResponse_none:
+ printf("none"); break;
+ case Z_SearchResponse_estimate:
+ printf("estimate"); break;
+ default:
+ printf("%d", *res->resultSetStatus);
+ }
+ putchar('\n');
+ }
display_searchResult (res->additionalSearchInfo);
printf("records returned: %d\n",
*res->numberOfRecordsReturned);
* Copyright (C) 1995-2007, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: seshigh.c,v 1.108 2007-01-03 08:42:15 adam Exp $
+ * $Id: seshigh.c,v 1.109 2007-01-16 14:12:38 adam Exp $
*/
/**
* \file seshigh.c
rr.srw_sortKeys = 0;
rr.srw_setname = 0;
rr.srw_setnameIdleTime = 0;
+ rr.estimated_hit_count = 0;
+ rr.partial_resultset = 0;
rr.query = (Z_Query *) odr_malloc (assoc->decode, sizeof(*rr.query));
rr.query->u.type_1 = 0;
srw_res->records = 0;
}
}
+ if (rr.estimated_hit_count || rr.partial_resultset)
+ {
+ yaz_add_srw_diagnostic(
+ assoc->encode,
+ &srw_res->diagnostics,
+ &srw_res->num_diagnostics,
+ YAZ_SRW_RESULT_SET_CREATED_WITH_VALID_PARTIAL_RESULTS_AVAILABLE,
+ 0);
+ }
}
}
}
assoc->init->implementation_name,
odr_prepend(assoc->encode, "GFS", resp->implementationName));
- version = odr_strdup(assoc->encode, "$Revision: 1.108 $");
+ version = odr_strdup(assoc->encode, "$Revision: 1.109 $");
if (strlen(version) > 10) /* check for unexpanded CVS strings */
version[strlen(version)-2] = '\0';
resp->implementationVersion = odr_prepend(assoc->encode,
bsrr->srw_sortKeys = 0;
bsrr->srw_setname = 0;
bsrr->srw_setnameIdleTime = 0;
+ bsrr->estimated_hit_count = 0;
+ bsrr->partial_resultset = 0;
yaz_log (log_requestdetail, "ResultSet '%s'", req->resultSetName);
if (req->databaseNames)
{
int i;
for (i = 0; i < req->num_databaseNames; i++)
- yaz_log (log_requestdetail, "Database '%s'", req->databaseNames[i]);
+ yaz_log(log_requestdetail, "Database '%s'", req->databaseNames[i]);
}
yaz_log_zquery_level(log_requestdetail,req->query);
Z_SearchResponse *resp = (Z_SearchResponse *)
odr_malloc (assoc->encode, sizeof(*resp));
int *nulint = odr_intdup (assoc->encode, 0);
- bool_t *sr = odr_intdup(assoc->encode, 1);
int *next = odr_intdup(assoc->encode, 0);
int *none = odr_intdup(assoc->encode, Z_SearchResponse_none);
- int returnedrecs=0;
+ int returnedrecs = 0;
apdu->which = Z_APDU_searchResponse;
apdu->u.searchResponse = resp;
}
else
{
+ bool_t *sr = odr_intdup(assoc->encode, 1);
int *toget = odr_intdup(assoc->encode, 0);
- int *presst = odr_intdup(assoc->encode, 0);
Z_RecordComposition comp, *compp = 0;
yaz_log (log_requestdetail, "resultCount: %d", bsrt->hits);
{
oident *prefformat;
oid_value form;
+ int *presst = odr_intdup(assoc->encode, 0);
if (!(prefformat = oid_getentbyoid(req->preferredRecordSyntax)))
form = VAL_NONE;
return 0;
resp->numberOfRecordsReturned = toget;
returnedrecs = *toget;
- resp->nextResultSetPosition = next;
- resp->searchStatus = sr;
- resp->resultSetStatus = 0;
resp->presentStatus = presst;
}
else
if (*resp->resultCount)
*next = 1;
resp->numberOfRecordsReturned = nulint;
- resp->nextResultSetPosition = next;
- resp->searchStatus = sr;
- resp->resultSetStatus = 0;
resp->presentStatus = 0;
}
+ resp->nextResultSetPosition = next;
+ resp->searchStatus = sr;
+ resp->resultSetStatus = 0;
+ if (bsrt->estimated_hit_count)
+ {
+ resp->resultSetStatus = odr_intdup(assoc->encode,
+ Z_SearchResponse_estimate);
+ }
+ else if (bsrt->partial_resultset)
+ {
+ resp->resultSetStatus = odr_intdup(assoc->encode,
+ Z_SearchResponse_subset);
+ }
}
resp->additionalSearchInfo = bsrt->search_info;