projects
/
idzebra-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Scan: allow preferred position > number + 1
[idzebra-moved-to-github.git]
/
rset
/
rset.c
diff --git
a/rset/rset.c
b/rset/rset.c
index
5a18742
..
3da4bd6
100644
(file)
--- a/
rset/rset.c
+++ b/
rset/rset.c
@@
-1,5
+1,5
@@
/* This file is part of the Zebra server.
/* This file is part of the Zebra server.
- Copyright (C) 1995-2008 Index Data
+ Copyright (C) 1994-2011 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
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
@@
-17,6
+17,9
@@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
*/
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
#include <stdio.h>
#include <string.h>
#include <idzebra/util.h>
#include <stdio.h>
#include <string.h>
#include <idzebra/util.h>
@@
-27,6
+30,7
@@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
static int log_level = 0;
static int log_level_initialized = 0;
static int log_level = 0;
static int log_level_initialized = 0;
+
/**
\brief Common constuctor for RFDs
\param rs Result set handle.
/**
\brief Common constuctor for RFDs
\param rs Result set handle.
@@
-83,6
+87,7
@@
static void rset_close_int(RSET rs, RSFD rfd)
void rset_set_hits_limit(RSET rs, zint l)
{
void rset_set_hits_limit(RSET rs, zint l)
{
+ yaz_log(log_level, "rset_set_hits_limit %p l=" ZINT_FORMAT, rs, l);
rs->hits_limit = l;
}
rs->hits_limit = l;
}
@@
-99,7
+104,7
@@
void rset_close(RSFD rfd)
TERMID termid;
char buf[100];
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))
;
&& rset_default_read(rfd, buf, &termid))
;
@@
-108,7
+113,7
@@
void rset_close(RSFD rfd)
" hits_limit=" ZINT_FORMAT,
rs, rs->hits_count, rs->hits_limit);
rs->hits_approx = 0;
" 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;
{
double cur, tot;
zint est;
@@
-134,7
+139,8
@@
void rset_close(RSFD rfd)
rs->hits_approx = 1;
}
}
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);
rs->hits_count);
}
rset_close_int(rs, rfd);
@@
-170,9
+176,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);
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;
rset->nmem = nmem;
rset->control = sel;
rset->refcount = 1;
@@
-315,6
+320,11
@@
struct ord_list *ord_list_dup(NMEM nmem, struct ord_list *list)
return n;
}
return n;
}
+void ord_list_print(struct ord_list *list)
+{
+ for (; list; list = list->next)
+ yaz_log(YLOG_LOG, "ord_list %d", list->ord);
+}
/**
\brief Creates a TERMID entry.
\param name Term/Name buffer with given length
/**
\brief Creates a TERMID entry.
\param name Term/Name buffer with given length
@@
-400,12
+410,12
@@
int rset_default_forward(RSFD rfd, void *buf, TERMID *term,
while ((more = rset_read(rfd, buf, term)) > 0)
{
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)
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;
}
return more;
}
@@
-423,6
+433,7
@@
void rset_visit(RSET rset, int level)
/*
* Local variables:
* c-basic-offset: 4
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab