r->which = Z_External_single;
r->u.single_ASN1_type =
- odr_create_Odr_oct(out,
- (unsigned char *)illRequest_buf,
- illRequest_size);
+ odr_create_Odr_oct(out, illRequest_buf, illRequest_size);
}
return r;
}
ext->indirect_reference = 0;
ext->which = Z_External_octet;
- ext->u.single_ASN1_type =
- odr_create_Odr_oct(p->odr_out, (const unsigned char *) doc, len);
+ ext->u.single_ASN1_type = odr_create_Odr_oct(p->odr_out, doc, len);
return apdu;
}
if (recordIdOpaque)
{
notToKeep->elements[0]->u.opaque =
- odr_create_Odr_oct(p->odr_out,
- (const unsigned char *) recordIdOpaque,
+ odr_create_Odr_oct(p->odr_out, recordIdOpaque,
recordIdOpaque_len);
}
else if (recordIdNumber)
ZOOM_resultset r;
int lslb, ssub, mspn;
const char *syntax;
+ const char *schema;
Z_APDU *apdu = zget_APDU(c->odr_out, Z_APDU_searchRequest);
Z_SearchRequest *search_req = apdu->u.searchRequest;
const char *elementSetName;
if (facets) {
Z_FacetList *facet_list = yaz_pqf_parse_facet_list(c->odr_out, facets);
if (facet_list) {
- Z_OtherInformation **oi;
- yaz_oi_APDU(apdu, &oi);
+ Z_OtherInformation **oi = &search_req->additionalSearchInfo;
yaz_oi_set_facetlist(oi, c->odr_out, facet_list);
}
else
/* get syntax (no need to provide unless piggyback is in effect) */
syntax = c->tasks->u.search.syntax;
+ schema = c->tasks->u.search.schema;
+
lslb = ZOOM_options_get_int(r->options, "largeSetLowerBound", -1);
ssub = ZOOM_options_get_int(r->options, "smallSetUpperBound", -1);
mspn = ZOOM_options_get_int(r->options, "mediumSetPresentNumber", -1);
*search_req->mediumSetPresentNumber = mspn;
}
else if (c->tasks->u.search.start == 0 && c->tasks->u.search.count > 0
- && r->piggyback && !r->r_sort_spec && !r->schema)
+ && r->piggyback && !r->r_sort_spec && !schema)
{
/* Regular piggyback - do it unless we're going to do sort */
*search_req->largeSetLowerBound = 2000000000;
result sets on the server. */
for (ord = 1; ; ord++)
{
-#if ZOOM_RESULT_LISTS
- ZOOM_resultsets rsp;
- sprintf(setname, "%d", ord);
- for (rsp = c->resultsets; rsp; rsp = rsp->next)
- if (rsp->resultset->setname && !strcmp(rsp->resultset->setname, setname))
- break;
- if (!rsp)
- break;
-#else
ZOOM_resultset rp;
sprintf(setname, "%d", ord);
for (rp = c->resultsets; rp; rp = rp->next)
break;
if (!rp)
break;
-#endif
-
}
r->setname = xstrdup(setname);
yaz_log(c->log_details, "%p ZOOM_connection_send_search: "
{
ZOOM_resultset resultset;
int *start, *count;
- const char *syntax = 0, *elementSetName = 0;
+ const char *syntax = 0, *elementSetName = 0, *schema = 0;
if (!c->tasks)
return ;
count = &c->tasks->u.search.count;
syntax = c->tasks->u.search.syntax;
elementSetName = c->tasks->u.search.elementSetName;
+ schema = c->tasks->u.search.schema;
break;
case ZOOM_TASK_RETRIEVE:
resultset = c->tasks->u.retrieve.resultset;
count = &c->tasks->u.retrieve.count;
syntax = c->tasks->u.retrieve.syntax;
elementSetName = c->tasks->u.retrieve.elementSetName;
+ schema = c->tasks->u.retrieve.schema;
break;
default:
return;
for (i = 0; i<p->num_records; i++)
{
ZOOM_record_cache_add(resultset, p->records[i], i + *start,
- syntax, elementSetName,
- elementSetName, 0);
+ syntax, elementSetName, schema, 0);
}
*count -= i;
if (*count < 0)
YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS,
"ZOOM C generated. Present phase and no records");
ZOOM_record_cache_add(resultset, myrec, *start,
- syntax, elementSetName, 0, 0);
+ syntax, elementSetName, schema, 0);
+ *count = 0;
}
}
else if (present_phase)
YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS,
"ZOOM C generated: Present response and no records");
ZOOM_record_cache_add(resultset, myrec, *start,
- syntax, elementSetName, 0, 0);
+ syntax, elementSetName, schema, 0);
+ *count = 0;
}
}
}
int i = 0;
const char *syntax = 0;
const char *elementSetName = 0;
- ZOOM_resultset resultset;
+ const char *schema = 0;
+ ZOOM_resultset resultset;
int *start, *count;
if (!c->tasks)
count = &c->tasks->u.search.count;
syntax = c->tasks->u.search.syntax;
elementSetName = c->tasks->u.search.elementSetName;
+ schema = c->tasks->u.search.schema;
break;
case ZOOM_TASK_RETRIEVE:
resultset = c->tasks->u.retrieve.resultset;
count = &c->tasks->u.retrieve.count;
syntax = c->tasks->u.retrieve.syntax;
elementSetName = c->tasks->u.retrieve.elementSetName;
+ schema = c->tasks->u.retrieve.schema;
break;
default:
return zoom_complete;
{
ZOOM_record rec =
ZOOM_record_cache_lookup(resultset, i + *start,
- syntax, elementSetName);
+ syntax, elementSetName, schema);
if (!rec)
break;
else
req->preferredRecordSyntax =
zoom_yaz_str_to_z3950oid(c, CLASS_RECSYN, syntax);
- if (resultset->schema && *resultset->schema)
+ if (schema && *schema)
{
Z_RecordComposition *compo = (Z_RecordComposition *)
odr_malloc(c->odr_out, sizeof(*compo));
compo->u.complex->generic->which = Z_Schema_oid;
compo->u.complex->generic->schema.oid = (Odr_oid *)
- zoom_yaz_str_to_z3950oid (c, CLASS_SCHEMA, resultset->schema);
+ zoom_yaz_str_to_z3950oid(c, CLASS_SCHEMA, schema);
if (!compo->u.complex->generic->schema.oid)
{
/* OID wasn't a schema! Try record syntax instead. */
compo->u.complex->generic->schema.oid = (Odr_oid *)
- zoom_yaz_str_to_z3950oid (c, CLASS_RECSYN, resultset->schema);
+ zoom_yaz_str_to_z3950oid(c, CLASS_RECSYN, schema);
}
if (elementSetName && *elementSetName)
{