Details
Description
I am running into a bug when trying to BIND a variable:
SELECT *
WHERE {
GRAPH ?g {
BIND( "hello " as ?hello ) .
BIND( CONCAT(?hello, "world") as ?helloWorld ) .
?member a ?class .
}
}
LIMIT 1
The first BIND works fine, but the second gives an unbound variable for ?helloWorld. See attached screenshot or xml. The query explanation and analysis is also attached.
Oddly, if I put "hello " directly in the second BIND, instead of using the first BIND, then it works fine. It also works if I don't nest everything inside the GRAPH statement. And it works if I get rid of the "?member a ?class ." statement. But somehow the combination is triggering it.
We're using BIGDATA_RELEASE_1_2_4.
-----------------------------------------------
Here is another example that illustrates the bug. Using this data:
PREFIX tmp: <http://example/tmp/>
INSERT DATA {
GRAPH tmp: {
tmp:s tmp tmp:v .
}
}
The query:
PREFIX tmp: <http://example/tmp/>
SELECT *
WHERE {
GRAPH tmp: {
#{ SELECT * {
BIND( "hello " as ?hello ) .
BIND( CONCAT(?hello, "world") as ?helloWorld ) .
#}}
?s ?p ?v .
}
}
leaves ?helloWorld unbound. But if I use a nested SELECT, by uncommenting the lines shown, it works properly. I'll also attach the query analysis with and without the nested SELECT.