Allow include of db definitions MPSPARQL-15
[mp-sparql-moved-to-github.git] / src / sparql.c
index 0ce6c40..c738e5d 100644 (file)
@@ -37,6 +37,13 @@ void yaz_sparql_destroy(yaz_sparql_t s)
         nmem_destroy(s->nmem);
 }
 
+void yaz_sparql_include(yaz_sparql_t s, yaz_sparql_t u)
+{
+    struct sparql_entry *e = u->conf;
+    for (; e; e = e->next)
+        yaz_sparql_add_pattern(s, e->pattern, e->value);
+}
+
 int yaz_sparql_add_pattern(yaz_sparql_t s, const char *pattern,
                            const char *value)
 {
@@ -359,6 +366,10 @@ static int emit_prefixes(yaz_sparql_t s,
         {
             ;
         }
+        else if (!strncmp(e->pattern, "present", 7))
+        {
+            ;
+        }
         else if (!strncmp(e->pattern, "uri", 3))
         {
             ;
@@ -378,6 +389,11 @@ struct sparql_entry *lookup_schema(yaz_sparql_t s, const char *schema)
 
     for (e = s->conf; e; e = e->next)
     {
+        if (!strncmp(e->pattern, "present.", 8))
+        {
+            if (!schema || !strcmp(e->pattern + 8, schema))
+                break;
+        }
         if (!strncmp(e->pattern, "uri.", 4))
         {
             if (!schema || !strcmp(e->pattern + 4, schema))