-
- if (result_set_size < *req->smallSetUpperBound)
- {
- // small set . Return all records in set
- records = m_p->fetch(
- odr, req->preferredRecordSyntax,
- 1, result_set_size,
- error_code, addinfo,
- &number_returned,
- &next_position);
- }
- else if (result_set_size > *req->largeSetLowerBound)
- {
- // large set . Return no records
- }
- else
- {
- // medium set .Return mediumSetPresentNumber records
- int to_get = *req->mediumSetPresentNumber;
- if (to_get > result_set_size)
- to_get = result_set_size;
+
+ int number = 0;
+ mp::util::piggyback(*req->smallSetUpperBound,
+ *req->largeSetLowerBound,
+ *req->mediumSetPresentNumber,
+ result_set_size,
+ number);
+
+ if (number)
+ { // not a large set for sure
+ Z_ElementSetNames *esn;
+ if (number > *req->smallSetUpperBound)
+ esn = req->mediumSetElementSetNames;
+ else
+ esn = req->smallSetElementSetNames;