Added setting to specify pqf prefix, to support database subset selection, etc.
[pazpar2-moved-to-github.git] / src / client.c
index 076b5e5..6473597 100644 (file)
@@ -990,6 +990,8 @@ int client_parse_query(struct client *cl, const char *query)
     struct ccl_rpn_node *cn;
     int cerror, cpos;
     CCL_bibset ccl_map = prepare_cclmap(cl);
+    struct session_database *sdb = client_get_database(cl);
+    const char *pqf_prefix = session_setting_oneval(sdb, PZ_PQF_PREFIX);
 
     if (!ccl_map)
         return -1;
@@ -1004,6 +1006,11 @@ int client_parse_query(struct client *cl, const char *query)
         return -1;
     }
     wrbuf_rewind(se->wrbuf);
+    if (*pqf_prefix)
+    {
+        wrbuf_puts(se->wrbuf, pqf_prefix);
+        wrbuf_puts(se->wrbuf, " ");
+    }
     ccl_pquery(se->wrbuf, cn);
     xfree(cl->pquery);
     cl->pquery = xstrdup(wrbuf_cstr(se->wrbuf));