Possible compatibility problems with earlier versions marked with '*'.
+New ZOOM option "step" which specifies number of records to be
+retrieved in one chunk. Used in conjunction with "start" and "count".
+
SRW support for yaz-client.
yaz-client no longer does (un)intelligent character set conversions
+yaz (2.0.2-3) unstable; urgency=low
+
+ * SRW support for YAZ client.
+ * Minor updates to documenation Makefiles.
+
+ -- Adam Dickmeiss <adam@indexdata.dk> Mon, 19 May 2003 23:41:59 +0200
+
yaz (2.0.2-2) unstable; urgency=low
* yaz.7 moved from yaz to libyaz.
-<!-- $Id: zoom.xml,v 1.26 2003-05-19 20:45:07 adam Exp $ -->
+<!-- $Id: zoom.xml,v 1.27 2003-05-20 08:22:33 adam Exp $ -->
<chapter id="zoom"><title>ZOOM</title>
<para>
&zoom; is an acronym for 'Z39.50 Object-Orientation Model' and is
count</entry><entry>Number of records to be retrieved.
</entry><entry>0</entry></row>
<row><entry>
+ step</entry><entry>Number of records to be retrieved in
+ one chunk. The value, 0 means unchunked.
+ </entry><entry>0</entry></row>
+ <row><entry>
elementSetName</entry><entry>Element-Set name of records.
Most targets should honor element set name <literal>B</literal>
and <literal>F</literal> for brief and full respectively.
* Copyright (c) 1995-2003, Index Data
* See the file LICENSE for details.
*
- * $Id: seshigh.c,v 1.155 2003-04-29 21:20:33 adam Exp $
+ * $Id: seshigh.c,v 1.156 2003-05-20 08:22:33 adam Exp $
*/
/*
}
else
{
+ int number = srw_req->maximumRecords ? *srw_req->maximumRecords : 0;
+ int start = srw_req->startRecord ? *srw_req->startRecord : 1;
+
+ yaz_log(LOG_LOG, "Request to pack %d+%d out of %d",
+ start, number, rr.hits);
+
srw_res->numberOfRecords = odr_intdup(assoc->encode, rr.hits);
- if (srw_req->maximumRecords && *srw_req->maximumRecords > 0)
+ if (number > 0)
{
- int number = *srw_req->maximumRecords;
- int start = 1;
int i;
- if (srw_req->startRecord)
- start = *srw_req->startRecord;
-
- yaz_log(LOG_DEBUG, "srw_bend_search. start=%d max=%d",
- start, *srw_req->maximumRecords);
-
- if (start <= rr.hits)
+ if (start > rr.hits)
+ {
+ yaz_log(LOG_LOG, "Request out or range");
+ }
+ else
{
int j = 0;
int packing = Z_SRW_recordPacking_string;
* Copyright (c) 2000-2003, Index Data
* See the file LICENSE for details.
*
- * $Id: zoom-c.c,v 1.34 2003-05-14 20:58:07 adam Exp $
+ * $Id: zoom-c.c,v 1.35 2003-05-20 08:22:33 adam Exp $
*
* ZOOM layer for C, connections, result sets, queries.
*/
r->setname = 0;
r->schema = 0;
r->count = 0;
+ r->step = 0;
r->record_cache = 0;
r->r_sort_spec = 0;
r->query = 0;
r->start = ZOOM_options_get_int(r->options, "start", 0);
r->count = ZOOM_options_get_int(r->options, "count", 0);
+ r->step = ZOOM_options_get_int(r->options, "step", 0);
r->piggyback = ZOOM_options_get_bool (r->options, "piggyback", 1);
cp = ZOOM_options_get (r->options, "setname");
if (cp)
return zoom_complete;
}
sr->u.request->startRecord = odr_intdup (c->odr_out, resultset->start + 1);
- sr->u.request->maximumRecords = odr_intdup (c->odr_out, resultset->count);
+ sr->u.request->maximumRecords = odr_intdup (
+ c->odr_out, resultset->step>0 ? resultset->step : resultset->count);
sr->u.request->recordSchema = resultset->schema;
recordPacking = ZOOM_resultset_option_get (resultset, "recordPacking");
/* Regular piggyback - do it unless we're going to do sort */
*search_req->largeSetLowerBound = 2000000000;
*search_req->smallSetUpperBound = 0;
- *search_req->mediumSetPresentNumber = r->count;
+ *search_req->mediumSetPresentNumber = r->step>0 ? r->step : r->count;
smallSetElementSetName = 0;
}
else
resultset->start += i;
resultset->count -= i;
*req->resultSetStartPoint = resultset->start + 1;
- *req->numberOfRecordsRequested = resultset->count;
+ *req->numberOfRecordsRequested = resultset->step>0 ?
+ resultset->step : resultset->count;
assert (*req->numberOfRecordsRequested > 0);
if (syntax && *syntax)
/*
* Private C header for ZOOM C.
- * $Id: zoom-p.h,v 1.6 2003-02-20 15:11:58 adam Exp $
+ * $Id: zoom-p.h,v 1.7 2003-05-20 08:22:33 adam Exp $
*/
#if HAVE_XSLT
int size;
int start;
int count;
+ int step;
int piggyback;
char *setname;
char *schema;