X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzserver.c;h=b499c2153deb170a553eb8d2e8d67c5192fc2811;hb=2cd05dfd682c368fd3bd73912144344d2954325f;hp=9e943b184c5b75f94113f9974f9b065ce060e90c;hpb=6cb032fd2ece4742e3516e0941507143f677e5cd;p=idzebra-moved-to-github.git diff --git a/index/zserver.c b/index/zserver.c index 9e943b1..b499c21 100644 --- a/index/zserver.c +++ b/index/zserver.c @@ -1,4 +1,4 @@ -/* $Id: zserver.c,v 1.132 2005-05-11 12:39:37 adam Exp $ +/* $Id: zserver.c,v 1.134 2005-05-24 11:35:42 adam Exp $ Copyright (C) 1995-2005 Index Data ApS @@ -171,18 +171,15 @@ bend_initresult *bend_init (bend_initrequest *q) 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; @@ -210,13 +207,14 @@ static void search_terms (ZebraHandle zh, bend_search_rr *r) for (i = 0; isetname, 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, @@ -471,7 +469,6 @@ static int es_admin (ZebraHandle zh, Z_Admin *r) default: break; } - return 0; } @@ -561,11 +558,14 @@ int bend_esrequest (void *handle, bend_esrequest_rr *rr) 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;