- Z_NamePlusRecord *this_rec =
- (Z_NamePlusRecord *) odr_malloc (odr_encode(), sizeof(*this_rec));
- this_rec->databaseName = 0;
- this_rec->which = Z_NamePlusRecord_databaseRecord;
- this_rec->u.databaseRecord = 0;
-
- int this_length = 0;
-
- sr_record (resultSetName, recno, format, comp, this_rec, records);
-
- if (records->which != Z_Records_DBOSD)
- {
- *pres = Z_PRES_FAILURE;
- return records;
- }
-
- if (this_rec->which == Z_NamePlusRecord_databaseRecord &&
- this_rec->u.databaseRecord == 0)
- { // handler did not return a record..
- create_surrogateDiagnostics(odr_encode(), this_rec, 0, 14, 0);
- }
- /*
- * we get the number of bytes allocated on the stream before any
- * allocation done by the backend - this should give us a reasonable
- * idea of the total size of the data so far.
- */
- total_length = odr_total(odr_encode()) - dumped_records;
- this_length = odr_total(odr_encode()) - total_length;
- if (this_length + total_length > m_preferredMessageSize)
- {
- /* record is small enough, really */
- if (this_length <= m_preferredMessageSize)
- {
- *pres = Z_PRES_PARTIAL_2;
- break;
- }
- if (this_length >= m_maximumRecordSize)
- { /* too big entirely */
- reclist->records[reclist->num_records] = this_rec;
- create_surrogateDiagnostics(odr_encode(), this_rec,
- this_rec->databaseName, 17, 0);
- reclist->num_records++;
- *next = recno + 1;
- dumped_records += this_length;
- continue;
- }
- else /* record can only be fetched by itself */
- {
- if (toget > 1)
- {
- yaz_log(YLOG_DEBUG, " Dropped it");
- reclist->records[reclist->num_records] = this_rec;
- create_surrogateDiagnostics(odr_encode(), this_rec,
- this_rec->databaseName,
- 16, 0);
- reclist->num_records++;
- // *next = freq.last_in_set ? 0 : recno + 1;
- *next = recno + 1;
- dumped_records += this_length;
- continue;
- }
- }
- }
- reclist->records[reclist->num_records] = this_rec;
- reclist->num_records++;
- *next = recno + 1;
+ Z_NamePlusRecord *this_rec =
+ (Z_NamePlusRecord *) odr_malloc (odr_encode(), sizeof(*this_rec));
+ this_rec->databaseName = 0;
+ this_rec->which = Z_NamePlusRecord_databaseRecord;
+ this_rec->u.databaseRecord = 0;
+
+ int this_length = 0;
+
+ sr_record (resultSetName, recno, format, comp, this_rec, records);
+
+ if (records->which != Z_Records_DBOSD)
+ {
+ *pres = Z_PresentStatus_failure;
+ return records;
+ }
+
+ if (this_rec->which == Z_NamePlusRecord_databaseRecord &&
+ this_rec->u.databaseRecord == 0)
+ { // handler did not return a record..
+ create_surrogateDiagnostics(odr_encode(), this_rec, 0, 14, 0);
+ }
+ /*
+ * we get the number of bytes allocated on the stream before any
+ * allocation done by the backend - this should give us a reasonable
+ * idea of the total size of the data so far.
+ */
+ total_length = odr_total(odr_encode()) - dumped_records;
+ this_length = odr_total(odr_encode()) - total_length;
+ if (this_length + total_length > m_preferredMessageSize)
+ {
+ /* record is small enough, really */
+ if (this_length <= m_preferredMessageSize)
+ {
+ *pres = Z_PresentStatus_partial_2;
+ break;
+ }
+ if (this_length >= m_maximumRecordSize)
+ { /* too big entirely */
+ reclist->records[reclist->num_records] = this_rec;
+ create_surrogateDiagnostics(odr_encode(), this_rec,
+ this_rec->databaseName, 17, 0);
+ reclist->num_records++;
+ *next = recno + 1;
+ dumped_records += this_length;
+ continue;
+ }
+ else /* record can only be fetched by itself */
+ {
+ if (toget > 1)
+ {
+ yaz_log(YLOG_DEBUG, " Dropped it");
+ reclist->records[reclist->num_records] = this_rec;
+ create_surrogateDiagnostics(odr_encode(), this_rec,
+ this_rec->databaseName,
+ 16, 0);
+ reclist->num_records++;
+ // *next = freq.last_in_set ? 0 : recno + 1;
+ *next = recno + 1;
+ dumped_records += this_length;
+ continue;
+ }
+ }
+ }
+ reclist->records[reclist->num_records] = this_rec;
+ reclist->num_records++;
+ *next = recno + 1;