Issue raised by: Kevin Thomas 12 Feb 1996
What is the correct (or preferred or appropriate) target behavior when a Present request is received that requests the retrieval of records, some of whose ordinal result set positions exceed the number of items in the result set?
Clearly, a non-surrogate diagnostic with code 13 (Present request out-of-range) is legal, but is there a more friendly but still-legal action? For example, suppose the origin asks for eight records starting at number 160 but there are only 163 result set items, can the target return records 160-163?
The target may (as noted) send a single non-surrogate diagnostic, 13, with failure status. Alternatively, in the example above, the target may, in Z39.50-1995, send the last four records and then four surrogate diagnostics, each with code 13. However, the latter is not appropriate in the 1992 version.
There is no syntactic distinction between a surrogate and non-surrogate diagnostic, and, in Z39.50-1995, no longer even a semantic designation. However, in the 1992 version bib-1 diagnostics are designated either "surrogate" or "non- surrogate"; diagnostic 13 is designated for non-surrogate use only.
When Z39.50 was originally developed there was concern that since the origin knows the result set size (from the Search response), a request of this nature indicates an error, thus the target should fail the request. This reasoning no longer applies, with the possibility of persistent result sets and sorting, and perhaps in the future, filtering, analyzing, and de-duping.