[ https://issues.apache.org/jira/browse/JENA-1519?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Seaborne resolved JENA-1519. --------------------------------- Resolution: Fixed Assignee: Andy Seaborne Fix Version/s: Jena 3.8.0 PR merged, thank you very much. > OpWalkerVisitor should interact better with custom operators > ------------------------------------------------------------ > > Key: JENA-1519 > URL: https://issues.apache.org/jira/browse/JENA-1519 > Project: Apache Jena > Issue Type: Bug > Components: ARQ > Affects Versions: Jena 3.6.0 > Reporter: Jeremy Coulon > Assignee: Andy Seaborne > Priority: Major > Fix For: Jena 3.8.0 > > > When visiting an OpExt, current implementation of OpWalkerVisitor is just > calling the visitor on opExt.effectiveOp(). > However if OpExt is replacing a sub-tree of the algebra instead of a single > leaf node, the sub-tree is ignored by walker. > I found this bug when trying to execute a query with a MINUS operator with > either side of the operator being replaced by an custom operator. > For example the following query is not working, if I transform both side of > MINUS with a custom operator: > {{(project (?animal)}} > {{ (minus}} > {{ (bgp (triple ?animal rdf:type ex:Animal))}} > {{ (filter (|| (= ?type ex:Reptile) (= ?type ex:Insect))}} > {{ (bgp (triple ?animal rdf:type ?type)))))}} > which I transform into: > {{(project (?animal)}} > {{ (minus}} > {{ (op-ext )}} > {{ (op-ext )))}} > The reason is that MINUS is calling OpVars.visibleVars() which does not walk > into the subop of the filter. -- This message was sent by Atlassian JIRA (v7.6.3#76005)