-// }
-// }
-// (*assoc->init->bend_fetch)(assoc->backend, rr);
-// if (rc && rr->record && rr->errcode == 0 && rr->len > 0)
-// { /* post conversion must take place .. */
+ // record transformation must take place
+ if (rc && pr_res
+ && pr_res->numberOfRecordsReturned
+ && *(pr_res->numberOfRecordsReturned)
+ && pr_res->records
+ && pr_res->records->which == Z_Records_DBOSD
+ && pr_res->records->u.databaseOrSurDiagnostics->num_records)
+ {
+ //transform all records
+ for (int i = 0;
+ i < pr_res->records->u.databaseOrSurDiagnostics->num_records;
+ i++)
+ {
+ Z_NamePlusRecord *npr
+ = pr_res->records->u.databaseOrSurDiagnostics->records[i];
+ if (npr->which != Z_NamePlusRecord_databaseRecord)
+ {
+ std::cout << "TODO: surrogate diag to be set\n";
+ }
+ else
+ {
+ std::cout << "TODO: record transform to be done\n";
+ WRBUF output_record = wrbuf_alloc();
+ Z_External *r = npr->u.databaseRecord;
+ //oident *ent = oid_getentbyoid(r->direct_reference);
+ std::cout
+ << "database record type: " << r->which << "\n";
+ if (r->which == Z_External_octet)
+ //&& ent->value == *backend_schema)
+ {
+ int ret_trans
+ = yaz_record_conv_record(rc,
+ (const char *)
+ r->u.octet_aligned->buf,
+ r->u.octet_aligned->len,
+ output_record);
+ std::cout
+ << "TODO: record transformation error checking\n";
+ }
+
+ }
+ }
+//&& rr->record && rr->errcode == 0 && rr->len > 0)
+ }
+