X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=rset%2Frset.c;h=114a36eafbf5588714dec4ebcf0dbe25ef82b441;hb=4e6078e4660869b9d83223c8ce842ed8dda211ab;hp=f97b8fb8ed24b7c9adf34f23498ce644f84a02a0;hpb=dfecbd92db8f9581ec24f1cd29c48198e1413546;p=idzebra-moved-to-github.git diff --git a/rset/rset.c b/rset/rset.c index f97b8fb..114a36e 100644 --- a/rset/rset.c +++ b/rset/rset.c @@ -1,5 +1,5 @@ /* This file is part of the Zebra server. - Copyright (C) 1995-2008 Index Data + Copyright (C) 1994-2009 Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -99,7 +99,7 @@ void rset_close(RSFD rfd) TERMID termid; char buf[100]; - while(rfd->counted_items <= rs->hits_limit + while (rfd->counted_items <= rs->hits_limit && rset_default_read(rfd, buf, &termid)) ; @@ -108,7 +108,7 @@ void rset_close(RSFD rfd) " hits_limit=" ZINT_FORMAT, rs, rs->hits_count, rs->hits_limit); rs->hits_approx = 0; - if (rs->hits_count > rs->hits_limit) + if (rs->hits_count > rs->hits_limit && rs->hits_limit > 0) { double cur, tot; zint est; @@ -134,7 +134,8 @@ void rset_close(RSFD rfd) rs->hits_approx = 1; } } - yaz_log(log_level, "rset_close p=%p count=" ZINT_FORMAT, rs, + yaz_log(log_level, "rset_close(%s) p=%p count=" ZINT_FORMAT, + rs->control->desc, rs, rs->hits_count); } rset_close_int(rs, rfd); @@ -170,9 +171,8 @@ RSET rset_create_base(const struct rset_control *sel, rset = (RSET) nmem_malloc(nmem, sizeof(*rset)); yaz_log(log_level, "rs_create(%s) rs=%p (nm=%p)", sel->desc, rset, nmem); - yaz_log(log_level, " ref_id=%s limit=" ZINT_FORMAT, - (term && term->ref_id ? term->ref_id : "null"), - rset->hits_limit); + yaz_log(log_level, " ref_id=%s", + (term && term->ref_id ? term->ref_id : "null")); rset->nmem = nmem; rset->control = sel; rset->refcount = 1; @@ -405,12 +405,12 @@ int rset_default_forward(RSFD rfd, void *buf, TERMID *term, while ((more = rset_read(rfd, buf, term)) > 0) { - if ((rfd->rset->keycontrol->cmp)(untilbuf, buf) <= 1) + if ((rfd->rset->keycontrol->cmp)(untilbuf, buf) < rset->scope) break; } if (log_level) - yaz_log (log_level, "rset_default_forward exiting m=%d c=%d", - more, rset->scope); + yaz_log(log_level, "rset_default_forward exiting rfd=%p scope=%d m=%d c=%d", + rfd, rset->scope, more, rset->scope); return more; } @@ -428,6 +428,7 @@ void rset_visit(RSET rset, int level) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab