/* This file is part of Pazpar2.
- Copyright (C) 2006-2010 Index Data
+ Copyright (C) 2006-2011 Index Data
Pazpar2 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
client_set_database(cl, db);
client_set_session(cl, se);
+
l = xmalloc(sizeof(*l));
l->client = cl;
l->next = se->clients;
struct record_cluster **prev_r,
struct record_cluster **next_r)
{
- struct record_cluster *r;
+ struct record_cluster *r = 0;
session_enter(se);
- reclist_enter(se->reclist);
*prev_r = 0;
*next_r = 0;
- while ((r = reclist_read_record(se->reclist)))
+ if (se->reclist)
{
- if (!strcmp(r->recid, id))
+ reclist_enter(se->reclist);
+ while ((r = reclist_read_record(se->reclist)))
{
- *next_r = reclist_read_record(se->reclist);
- break;
+ if (!strcmp(r->recid, id))
+ {
+ *next_r = reclist_read_record(se->reclist);
+ break;
+ }
+ *prev_r = r;
}
- *prev_r = r;
+ reclist_leave(se->reclist);
}
- reclist_leave(se->reclist);
if (!r)
session_leave(se);
return r;
&se->total_merged);
const char *use_term_factor_str = session_setting_oneval(sdb, PZ_TERMLIST_TERM_FACTOR);
+ // TODO: Work-around to default to use term factor, until other MK2 components supports it
int use_term_factor = 1;
int term_factor = 1;
- if (use_term_factor_str)
+ if (use_term_factor_str && use_term_factor_str[0] != 0)
use_term_factor = atoi(use_term_factor_str);
-
if (use_term_factor) {
int maxrecs = client_get_maxrecs(cl);
int hits = (int) client_get_hits(cl);
term_factor = MAX(hits, maxrecs) / MAX(1, maxrecs);
assert(term_factor >= 1);
- yaz_log(YLOG_DEBUG, "Using term factor %d ", term_factor);
+ yaz_log(YLOG_DEBUG, "Using term factor: %d (%d / %d)", term_factor, MAX(hits, maxrecs), MAX(1, maxrecs));
}
if (!cluster)