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
>>
>>
>

Reply via email to