-/* $Id: recctrl.h,v 1.3 2004-09-28 13:31:18 adam Exp $
+/* $Id: recctrl.h,v 1.4 2004-11-29 21:45:11 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
void *rec_buf;
int rec_len;
int diagnostic;
- char *message;
+ char *addinfo;
};
typedef struct recType *RecType;
-/* $Id: index.h,v 1.124 2004-10-26 15:32:11 heikki Exp $
+/* $Id: index.h,v 1.125 2004-11-29 21:45:11 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
int zebra_record_fetch (ZebraHandle zh, SYSNO sysno, int score, ODR stream,
oid_value input_format, Z_RecordComposition *comp,
oid_value *output_format, char **rec_bufp,
- int *rec_lenp, char **basenamep);
+ int *rec_lenp, char **basenamep,
+ char **addinfo);
void extract_get_fname_tmp (ZebraHandle zh, char *fname, int no);
-/* $Id: retrieve.c,v 1.26 2004-11-19 10:27:03 heikki Exp $
+/* $Id: retrieve.c,v 1.27 2004-11-29 21:45:11 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
int zebra_record_fetch (ZebraHandle zh, SYSNO sysno, int score, ODR stream,
oid_value input_format, Z_RecordComposition *comp,
oid_value *output_format, char **rec_bufp,
- int *rec_lenp, char **basenamep)
+ int *rec_lenp, char **basenamep,
+ char **addinfo)
{
Record rec;
char *fname, *file_type, *basename;
void *clientData;
int raw_mode = 0;
+ *addinfo = 0;
rec = rec_get (zh->reg->records, sysno);
if (!rec)
{
retrieveCtrl.comp = comp;
retrieveCtrl.encoding = zh->record_encoding;
retrieveCtrl.diagnostic = 0;
+ retrieveCtrl.addinfo = 0;
retrieveCtrl.dh = zh->reg->dh;
retrieveCtrl.res = zh->res;
retrieveCtrl.rec_buf = 0;
close (fc.fd);
rec_rm (&rec);
+ *addinfo = retrieveCtrl.addinfo;
return retrieveCtrl.diagnostic;
}
-/* $Id: zebraapi.c,v 1.140 2004-11-19 10:27:03 heikki Exp $
+/* $Id: zebraapi.c,v 1.141 2004-11-29 21:45:11 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
stream, input_format, comp,
&recs[i].format, &recs[i].buf,
&recs[i].len,
- &recs[i].base);
- recs[i].errString = NULL;
+ &recs[i].base,
+ &recs[i].errString);
recs[i].score=poset[i].score;
recs[i].sysno=poset[i].sysno;
}
&recs[i].format,
&b,
&recs[i].len,
- &recs[i].base);
+ &recs[i].base,
+ &recs[i].errString);
recs[i].buf = (char *) odr_malloc(stream,recs[i].len);
memcpy(recs[i].buf, b, recs[i].len);
- recs[i].errString = 0; /* Hmmm !!! we should get this */
recs[i].sysno = poset[i].sysno;
recs[i].score = poset[i].score;
}
-/* $Id: zserver.c,v 1.123 2004-11-19 10:27:08 heikki Exp $
+/* $Id: zserver.c,v 1.124 2004-11-29 21:45:11 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
zebra_result (zh, &r->errcode, &r->errstring);
return 0;
}
- yaz_log (YLOG_LOG, "ResultSet '%s'", r->setname);
+ yaz_log (YLOG_DEBUG, "ResultSet '%s'", r->setname);
switch (r->query->which)
{
case Z_Query_type_1: case Z_Query_type_101:
-/* $Id: recgrs.c,v 1.93 2004-11-19 10:27:12 heikki Exp $
+/* $Id: recgrs.c,v 1.94 2004-11-29 21:45:12 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
/*
* Return: -1: Nothing done. 0: Ok. >0: Bib-1 diagnostic.
*/
-static int process_comp(data1_handle dh, data1_node *n, Z_RecordComposition *c)
+static int process_comp(data1_handle dh, data1_node *n, Z_RecordComposition *c,
+ char **addinfo, ODR o)
{
data1_esetname *eset;
Z_Espec1 *espec = 0;
c->u.simple->u.generic)))
{
yaz_log(YLOG_LOG, "Unknown esetname '%s'", c->u.simple->u.generic);
+ *addinfo = odr_strdup(o, c->u.simple->u.generic);
return 25; /* invalid esetname */
}
yaz_log(YLOG_DEBUG, "Esetname '%s' in simple compspec",
data1_getesetbyname(dh, n->u.root.absyn,
p->u.elementSetName)))
{
- yaz_log(YLOG_LOG, "Unknown esetname '%s'",
+ yaz_log(YLOG_DEBUG, "Unknown esetname '%s'",
p->u.elementSetName);
+ *addinfo = odr_strdup(o, p->u.elementSetName);
return 25; /* invalid esetname */
}
yaz_log(YLOG_DEBUG, "Esetname '%s' in complex compspec",
}
yaz_log(YLOG_DEBUG, "grs_retrieve: element spec");
- if (p->comp && (res = process_comp(p->dh, node, p->comp)) > 0)
+ if (p->comp && (res = process_comp(p->dh, node, p->comp, &p->addinfo,
+ p->odr)) > 0)
{
p->diagnostic = res;
if (onode)