Sorry I am snowed under with work atm. I have not tested but I would be tempted to enable and change the tests so that they reflect Holger's original regression test case. This would realign the behavior with previous versions of ARQ and fix the regression
On a related topic I looked at Holger's question around injecting BNodes into SPARQL updates via ParameterizedSparqlString and it doesn't work in the scenario he describes (an INSERT WHERE) if the variable is used both in the INSERT template and WHERE since the template mention is treated as a minting a fresh BNode. Either he needs to use the BIND workaround discussed by yourself in another thread (http://markmail.org/message/3lsnjq7yca4es2wb) which I suspect is not workable for TQ OR we need to look at restoring initial bindings for updates. I think restoring the feature is going to be the best option, the documentation just needs to be really clear that initial bindings only apply to the WHERE portion of updates and not more generally since that is the only way they were used prior to the feature being removed (I went back and looked at the ARW 2.9.4 code). We can always look at expanding their scope later as we've discussed in the past. Rob On 8/7/13 3:53 PM, "Andy Seaborne" <[email protected]> wrote: >Holger, everyone - ping. > >Anyone tried this (it's currently "if (false &&"-ed out). >Shall I enabled in trunk (and change the two affected tests)? > > Andy > >On 05/08/13 20:52, Andy Seaborne wrote: >> I've checked into QueryEngineBase (line 96) code to substitute variables >> before algebra optimization, rather than the current approach which >> optimizes then expects the storage query engine to deal with it. >> >> This does not apply to QueryEngineHTTP (this has never supported initial >> bindings). >> >> This does not apply to updates. >> >> Please take a look and say what you think. >> if you enable the code, two test will fail - >> >> com.hp.hpl.jena.sparql.api.TestAPI >> >> testInitialBindings5 >> >> ASK WHERE { FILTER (?a = <http://constant>) } >> substituting <http://constant> for ?a >> >> testInitialBindings6 >> >> ASK WHERE { FILTER (?a = ?b) } >> substituting value true for ?a and ?b >> >> this is correct for the substitution-before-optimization design. >> >> Andy >> >> >
