Allow no element set name again
authorAdam Dickmeiss <adam@indexdata.dk>
Wed, 29 Apr 2015 10:54:28 +0000 (12:54 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Wed, 29 Apr 2015 10:54:28 +0000 (12:54 +0200)
When no element set is given, it will pick the first uri-line.
If there's no uri-line it will use query of the matching db.

src/filter_sparql.cpp
src/sparql.c

index 681575a..34759e5 100644 (file)
@@ -426,13 +426,13 @@ Z_Records *yf::SPARQL::Session::fetch(
 
     for (; it != fset->results.end(); it++)
     {
-        if (schema && !strcmp(esn->u.generic, it->conf->schema.c_str()))
-            break;
         if (yaz_sparql_lookup_schema(it->conf->s, schema))
         {
             uri_lookup = true;
             break;
         }
+        if (!schema || !strcmp(esn->u.generic, it->conf->schema.c_str()))
+            break;
     }
     if (it == fset->results.end())
     {
index e9987a1..50f41f6 100644 (file)
@@ -378,11 +378,9 @@ int yaz_sparql_lookup_schema(yaz_sparql_t s, const char *schema)
 
     for (e = s->conf; e; e = e->next)
     {
-        if (!schema && !strcmp(e->pattern, "uri"))
-            break;
-        else if (schema && !strncmp(e->pattern, "uri.", 4))
+        if (!strncmp(e->pattern, "uri.", 4))
         {
-            if (!strcmp(e->pattern + 4, schema))
+            if (!schema || !strcmp(e->pattern + 4, schema))
                 break;
         }
     }
@@ -400,11 +398,9 @@ int yaz_sparql_from_uri_stream(yaz_sparql_t s,
 
     for (e = s->conf; e; e = e->next)
     {
-        if (!schema && !strcmp(e->pattern, "uri"))
-            break;
-        else if (schema && !strncmp(e->pattern, "uri.", 4))
+        if (!strncmp(e->pattern, "uri.", 4))
         {
-            if (!strcmp(e->pattern + 4, schema))
+            if (!schema || !strcmp(e->pattern + 4, schema))
                 break;
         }
     }