if (c->password)
wrbuf_sha1_puts(r->mc_key, c->password, 1);
wrbuf_puts(r->mc_key, ";");
- wrbuf_sha1_puts(r->mc_key, ZOOM_query_get_query_string(q), 1);
+ {
+ WRBUF w = wrbuf_alloc();
+ ZOOM_query_get_hash(q, w);
+ wrbuf_sha1_puts(r->mc_key, wrbuf_cstr(w), 1);
+ wrbuf_destroy(w);
+ }
wrbuf_puts(r->mc_key, ";");
#endif
}
rc = memcached_set(c->mc_st,
wrbuf_buf(resultset->mc_key),wrbuf_len(resultset->mc_key),
str, strlen(str), expiration, flags);
- yaz_log(YLOG_LOG, "Store SRU hit count key=%s value=%s rc=%u %s",
+ yaz_log(YLOG_LOG, "Store hit count key=%s value=%s rc=%u %s",
wrbuf_cstr(resultset->mc_key), str, (unsigned) rc,
memcached_last_error_message(c->mc_st));
}
Z_SortKeySpecList *ZOOM_query_get_sortspec(ZOOM_query s);
const char *ZOOM_query_get_query_string(ZOOM_query s);
const char *ZOOM_query_get_sru11(ZOOM_query s);
+void ZOOM_query_get_hash(ZOOM_query s, WRBUF w);
int ZOOM_uri_to_code(const char *uri);
return wrbuf_cstr(s->full_query);
}
+void ZOOM_query_get_hash(ZOOM_query s, WRBUF w)
+{
+ wrbuf_printf(w, "%d;", s->query_type);
+ if (s->query_string)
+ wrbuf_puts(w, s->query_string);
+ wrbuf_printf(w, ";%d;", s->sort_strategy);
+ if (s->sort_spec)
+ yaz_sort_spec_to_type7(s->sort_spec, w);
+}
+
/*
* Returns an xmalloc()d string containing RPN that corresponds to the
* CQL passed in. On error, sets the Connection object's error state
odr_reset(s->odr_sort_spec);
s->sort_spec = yaz_sort_spec(s->odr_sort_spec, criteria);
if (!s->sort_spec)
- return -1;
+ return -2;
return generate(s);
}