From: Adam Dickmeiss Date: Mon, 29 Nov 2004 21:45:11 +0000 (+0000) Subject: Add member addinfo for recRetrieveCtrl to throw better diagnostics X-Git-Tag: snippet.version.1~252 X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=commitdiff_plain;h=a6c6ab1a43cc3bbe1dd7f233ead8a24e8eba4b56 Add member addinfo for recRetrieveCtrl to throw better diagnostics --- diff --git a/include/idzebra/recctrl.h b/include/idzebra/recctrl.h index dbba8a5..de543f4 100644 --- a/include/idzebra/recctrl.h +++ b/include/idzebra/recctrl.h @@ -1,4 +1,4 @@ -/* $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 @@ -86,7 +86,7 @@ struct recRetrieveCtrl { void *rec_buf; int rec_len; int diagnostic; - char *message; + char *addinfo; }; typedef struct recType *RecType; diff --git a/index/index.h b/index/index.h index 39ad880..2af7982 100644 --- a/index/index.h +++ b/index/index.h @@ -1,4 +1,4 @@ -/* $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 @@ -410,7 +410,8 @@ extern struct rank_control *rankliv_class; 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); diff --git a/index/retrieve.c b/index/retrieve.c index b25a3ae..a029fce 100644 --- a/index/retrieve.c +++ b/index/retrieve.c @@ -1,4 +1,4 @@ -/* $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 @@ -85,7 +85,8 @@ void zebra_record_int_end (void *fh, off_t off) 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; @@ -96,6 +97,7 @@ int zebra_record_fetch (ZebraHandle zh, SYSNO sysno, int score, ODR stream, void *clientData; int raw_mode = 0; + *addinfo = 0; rec = rec_get (zh->reg->records, sysno); if (!rec) { @@ -192,6 +194,7 @@ int zebra_record_fetch (ZebraHandle zh, SYSNO sysno, int score, ODR stream, 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; @@ -205,5 +208,6 @@ int zebra_record_fetch (ZebraHandle zh, SYSNO sysno, int score, ODR stream, close (fc.fd); rec_rm (&rec); + *addinfo = retrieveCtrl.addinfo; return retrieveCtrl.diagnostic; } diff --git a/index/zebraapi.c b/index/zebraapi.c index 3ede064..0bd24c2 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,4 +1,4 @@ -/* $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 @@ -904,8 +904,8 @@ int zebra_records_retrieve (ZebraHandle zh, ODR stream, 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; } @@ -2008,10 +2008,10 @@ void api_records_retrieve (ZebraHandle zh, ODR stream, &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; } diff --git a/index/zserver.c b/index/zserver.c index 600248a..3537873 100644 --- a/index/zserver.c +++ b/index/zserver.c @@ -1,4 +1,4 @@ -/* $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 @@ -271,7 +271,7 @@ int bend_search (void *handle, bend_search_rr *r) 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: diff --git a/recctrl/recgrs.c b/recctrl/recgrs.c index 41b873c..b1e714d 100644 --- a/recctrl/recgrs.c +++ b/recctrl/recgrs.c @@ -1,4 +1,4 @@ -/* $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 @@ -900,7 +900,8 @@ int zebra_grs_extract(void *clientData, struct recExtractCtrl *p, /* * 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; @@ -915,6 +916,7 @@ static int process_comp(data1_handle dh, data1_node *n, Z_RecordComposition *c) 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", @@ -934,8 +936,9 @@ static int process_comp(data1_handle dh, data1_node *n, Z_RecordComposition *c) 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", @@ -1213,7 +1216,8 @@ int zebra_grs_retrieve(void *clientData, struct recRetrieveCtrl *p, } 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)