Class ProjectionRemovalOptimizer

  • All Implemented Interfaces:
    QueryOptimizer

    public class ProjectionRemovalOptimizer
    extends Object
    implements QueryOptimizer
    If a projection node in the algebra does not contribute or change the results it can be removed from the tree.

    For example SELECT ?s ?p ?o WHERE {?s ?p ?o } Does not need a projection as the inner statement pattern returns the same result.

    While * SELECT ?s ?p WHERE {?s ?p ?o } Does as the statement pattern has one more variable in use than the projection.

    Note: this optimiser should run after optimisations ran that depend on Projections. e.g.

    Author:
    Jerven Bolleman
    See Also:
    UnionScopeChangeOptimizer