+--- next version
+
+fix PAZ-1013 - do not re-search if facetlimit scan fails to find value
+
--- 1.11.2 2015/07/21
Fix PAZ-1015, which prevented the docs from being built, and therefore
cl, name,
values[i]);
if (id)
- values[i] = nmem_strdup(nmem_tmp, id);
+ {
+ if ( *id )
+ {
+ values[i] = nmem_strdup(nmem_tmp, id);
+ yaz_log(YLOG_DEBUG,
+ "apply_limit: s='%s' found id '%s'",s->name,id );
+ }
+ else
+ {
+ yaz_log(YLOG_DEBUG,
+ "apply_limit: %s: term '%s' not found, failing client",
+ s->name, values[i] );
+ ret = -1;
+ }
+ }
}
nmem_strsplit_escape2(nmem_tmp, ",", s->value, &cvalues,
&cnum, 1, '\\', 1);
}
+// Look up a facet term, and return matching id
+// If facet type not found, returns 0
+// If facet type found, but no matching term, returns ""
const char *session_lookup_id_facet(struct session *s, struct client *cl,
const char *type,
const char *term)
{
+ char *retval = 0;
struct facet_id *t = s->facet_id_list;
- for (; t; t = t->next)
- if (!strcmp(client_get_id(cl), t->client_id) &&
- !strcmp(t->type, type) && !strcmp(t->term, term))
+ for (; t; t = t->next)
+ {
+ if (!strcmp(client_get_id(cl), t->client_id) && !strcmp(t->type, type) )
{
- return t->id;
+ retval = "";
+ if ( !strcmp(t->term, term))
+ {
+ return t->id;
+ }
}
- return 0;
+ }
+ return retval;
}
void add_facet(struct session *s, const char *type, const char *value, int count, struct client *cl)