-/* $Id: zserver.c,v 1.132 2005-05-11 12:39:37 adam Exp $
+/* $Id: zserver.c,v 1.136 2005-06-14 20:28:54 adam Exp $
Copyright (C) 1995-2005
Index Data ApS
#include <io.h>
#include <process.h>
#include <sys/locking.h>
-#else
+#endif
+#if HAVE_UNISTD_H
#include <unistd.h>
#endif
return r;
}
-static void search_terms (ZebraHandle zh, bend_search_rr *r)
+static void search_terms(ZebraHandle zh, bend_search_rr *r)
{
- zint count = 0;
int no_terms;
int i;
int type = Z_Term_general;
struct Z_External *ext;
Z_SearchInfoReport *sr;
- /* get no of terms for result set */
- no_terms = 0; /* zebra_resultSetTerms (zh, r->setname, 0, 0, 0, 0, 0); */
- /* FIXME - Rsets don't know number of terms no more ??? */
+ zebra_result_set_term_no(zh, r->setname, &no_terms);
if (!no_terms)
return;
for (i = 0; i<no_terms; i++)
{
Z_Term *term;
+ zint count;
+ int approx;
char outbuf[1024];
size_t len = sizeof(outbuf);
- /* FIXME - Can we just skip this ??? */
- /*
- zebra_resultSetTerms (zh, r->setname, i,
- &count, &type, outbuf, &len);
- */
+
+ zebra_result_set_term_info(zh, r->setname, i,
+ &count, &approx, outbuf, &len);
+
sr->elements[i] = odr_malloc (r->stream, sizeof(**sr->elements));
sr->elements[i]->subqueryId = 0;
sr->elements[i]->fullQuery = odr_malloc (r->stream,
r->last_in_set = 0;
res = zebra_records_retrieve (zh, r->stream, r->setname, r->comp,
- r->request_format, 1, &retrievalRecord);
+ r->request_format, 1, &retrievalRecord);
if (res != ZEBRA_OK)
{
/* non-surrogate diagnostic */
default:
break;
}
-
return 0;
}
rr->errstring = "database";
return 0;
}
- if (notToKeep)
+ if (zebra_begin_trans(zh, 1) != ZEBRA_OK)
+ {
+ zebra_result(zh, &rr->errcode, &rr->errstring);
+ }
+ else
{
int i;
- zebra_begin_trans (zh, 1);
- for (i = 0; i < notToKeep->num; i++)
+ for (i = 0; notToKeep && i < notToKeep->num; i++)
{
Z_External *rec = notToKeep->elements[i]->record;
struct oident *oident = 0;