Make make check work from top-level
[mp-sparql-moved-to-github.git] / src / sparql.c
index e551ead..d146458 100644 (file)
@@ -183,6 +183,23 @@ static int apt(yaz_sparql_t s, WRBUF addinfo, WRBUF res, WRBUF vars,
                 }
                 wrbuf_puts(addinfo, "\"");
                 break;
+            case 'u':
+                wrbuf_puts(addinfo, "<");
+                switch (term->which)
+                {
+                case Z_Term_general:
+                    wrbuf_json_write(addinfo,
+                                term->u.general->buf, term->u.general->len);
+                    break;
+                case Z_Term_numeric:
+                    wrbuf_printf(addinfo, ODR_INT_PRINTF, *term->u.numeric);
+                    break;
+                case Z_Term_characterString:
+                    wrbuf_json_puts(addinfo, term->u.characterString);
+                    break;
+                }
+                wrbuf_puts(addinfo, ">");
+                break;
             case 'd':
                 switch (term->which)
                 {
@@ -322,7 +339,11 @@ int yaz_sparql_from_rpn_stream(yaz_sparql_t s,
         {
             ;
         }
-        else if (!strncmp(e->pattern, "field", 5))
+        else if (!strcmp(e->pattern, "form"))
+        {
+            ;
+        }
+        else if (!strcmp(e->pattern, "modifier"))
         {
             ;
         }
@@ -331,17 +352,14 @@ int yaz_sparql_from_rpn_stream(yaz_sparql_t s,
             errors++;
         }
     }
-    pr("\n", client_data);
-    pr("SELECT", client_data);
     for (e = s->conf; e; e = e->next)
     {
-        if (!strncmp(e->pattern, "field", 5))
+        if (!strcmp(e->pattern, "form"))
         {
-            pr(" ", client_data);
             pr(e->value, client_data);
+            pr("\n", client_data);
         }
     }
-    pr("\n", client_data);
     pr("WHERE {\n", client_data);
     for (e = s->conf; e; e = e->next)
     {
@@ -398,6 +416,15 @@ int yaz_sparql_from_rpn_stream(yaz_sparql_t s,
         wrbuf_destroy(vars);
     }
     pr("\n}\n", client_data);
+
+    for (e = s->conf; e; e = e->next)
+    {
+        if (!strcmp(e->pattern, "modifier"))
+        {
+            pr(e->value, client_data);
+            pr("\n", client_data);
+        }
+    }
     yaz_tok_cfg_destroy(cfg);
 
     return errors ? -1 : r;