}
else if (c->sru_mode == zoom_sru_solr)
{
- yaz_solr_encode(gdu->u.HTTP_Request, sr, c->odr_out, c->charset);
+ yaz_solr_encode_request(gdu->u.HTTP_Request, sr, c->odr_out, c->charset);
}
if (!z_GDU(c->odr_out, &gdu, 0, 0))
return zoom_complete;
}
else
{
- if (res->numberOfRecords)
+ if (res->numberOfRecords) {
resultset->size = *res->numberOfRecords;
+ }
for (i = 0; i<res->num_records; i++)
{
int pos;
Z_NamePlusRecord *npr = (Z_NamePlusRecord *)
odr_malloc(c->odr_in, sizeof(Z_NamePlusRecord));
-
+ /*
+ * TODO This does not work with 0-based recordPositions.
+ * We will iterate over one twice
+ */
if (res->records[i].recordPosition &&
*res->records[i].recordPosition > 0)
pos = *res->records[i].recordPosition - 1;
else
pos = *start + i;
-
+
sru_rec = &res->records[i];
npr->databaseName = 0;
*start += i;
if (*count + *start > resultset->size)
*count = resultset->size - *start;
+ yaz_log(YLOG_DEBUG, "SRU result set size " ODR_INT_PRINTF " start %d count %d", resultset->size, *start, *count);
if (*count < 0)
*count = 0;
-
nmem = odr_extract_mem(c->odr_in);
nmem_transfer(odr_getmem(resultset->odr), nmem);
nmem_destroy(nmem);