Class ProjectionRemovalOptimizer

java.lang.Object
org.eclipse.rdf4j.query.algebra.evaluation.optimizer.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: