Andy Seaborne created JENA-875:
----------------------------------

             Summary: Additional optimization for BIND : 
                 Key: JENA-875
                 URL: https://issues.apache.org/jira/browse/JENA-875
             Project: Apache Jena
          Issue Type: Bug
          Components: ARQ
    Affects Versions: Jena 2.12.1
            Reporter: Andy Seaborne
            Assignee: Andy Seaborne
            Priority: Minor
             Fix For: Jena 2.12.2


This is split out from investigation of JENA-874. It is not the cause but was 
noticed writing the simplified test case.

With {{(extend))}, the filter-placement optimization can apply filter 
expressions directly when the {{(extend)}} introduces variables.

Currently, the  filter-placement optimization only covers expressions pushed 
inside the {{(extend)}}.

Example:

Input:
{noformat}
(filter (= ?x 123)
  (distinct
    (extend ((?x 123))
      (bgp (triple ?s ?p ?o)))))
{noformat}
The {{distinct}} is just some operation that is betwen the {{(extend)}} nad the 
outer most level.
Otherwise, the difference does not show up.

Current optimization:

{noformat}
(filter (= ?x 123)
  (distinct
    (extend ((?x 123))
      (bgp (triple ?s ?p ?o)))))
{noformat}

The filter is not placed around the {{(extend)}} but bubbles further up.

With the improved optimization:

{noformat}
(distinct
  (filter (= ?x 123)
    (extend ((?x 123))
      (bgp (triple ?s ?p ?o)))))
{noformat}

The filter is placed around the {{(extend)}} at the lowest point possible point.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to