/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2009 Index Data
+ * Copyright (C) 1995-2010 Index Data
* See the file LICENSE for details.
*/
Only terms that looks a numeric is used.. Returns -1 if
no sub tree has a hit count term
*/
-static int get_term_hit(Z_RPNStructure *s)
+static Odr_int get_term_hit(Z_RPNStructure *s)
{
- int h = -1;
+ Odr_int h = -1;
switch(s->which)
{
case Z_RPNStructure_simple:
{
Odr_oct *oct = apt->term->u.general;
if (oct->len > 0 && oct->buf[0] >= '0' && oct->buf[0] <= '9')
- h = atoi_n((const char *) oct->buf, oct->len);
+ {
+ WRBUF hits_str = wrbuf_alloc();
+ wrbuf_write(hits_str, (const char *) oct->buf, oct->len);
+ h = odr_atoi(wrbuf_cstr(hits_str));
+ wrbuf_destroy(hits_str);
+ }
}
}
break;
have a way to trigger a certain hit count. Good for testing of
client applications etc
*/
-static int get_hit_count(Z_Query *q)
+static Odr_int get_hit_count(Z_Query *q)
{
- int h = -1;
+ Odr_int h = -1;
if (q->which == Z_Query_type_1 || q->which == Z_Query_type_101)
h = get_term_hit(q->u.type_1->RPNStructure);
if (h == -1)
return h;
}
-/** \brief checks if it's a dummy Slow database..
+/** \brief checks if it's a dummy Slow database
\param basename database name to check
\param association backend association (or NULL if not available)
\retval 1 is slow database
rr->errcode = YAZ_BIB1_COMBI_OF_SPECIFIED_DATABASES_UNSUPP;
return 0;
}
- /* Throw Database unavailable if other than Default or Slow */
+ /* Allow Default, db.* and Slow */
if (!yaz_matchstr(rr->basenames[0], "Default"))
; /* Default is OK in our test */
+ else if (!strncmp(rr->basenames[0], "db", 2))
+ ; /* db.* is OK in our test */
else if (check_slow(rr->basenames[0], rr->association))
{
rr->estimated_hit_count = 1;
return 0;
}
len = q->term->term->u.general->len;
- if (len >= sizeof(term))
+ if (len >= (int ) sizeof(term))
len = sizeof(term)-1;
memcpy(term, q->term->term->u.general->buf, len);
term[len] = '\0';