X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsparql.c;h=0f38d577c6ddf78b2b6aa997f749fcebe738730f;hb=1bd695eb9f4b166b5d32cd5ddac1b1cdf41c14f1;hp=39053470d4399b1d71d83372a8afb0856acef81a;hpb=c30ad7a532b4384a50c5036f5b289d36d06fdb24;p=mp-sparql-moved-to-github.git diff --git a/src/sparql.c b/src/sparql.c index 3905347..0f38d57 100644 --- a/src/sparql.c +++ b/src/sparql.c @@ -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) { @@ -158,6 +165,21 @@ static int z_term(yaz_sparql_t s, WRBUF addinfo, WRBUF res, WRBUF vars, } wrbuf_puts(addinfo, ">"); break; + case 't': + 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; + } + break; case 'd': switch (term->which) {