# Uses of Package
org.modeshape.jcr.query.optimize

- Packages that use org.modeshape.jcr.query.optimize
  Package | Description
  --- | ---
  org.modeshape.jcr.query.lucene | The core query engine, which currently uses Lucene for indexing and raw queries, and the Hibernate Search engine (which does not depend on or use Hibernate Core or JPA) for updating and querying the Lucene indexes.
  org.modeshape.jcr.query.optimize | This package contains the Optimizer interface, a rule-based optimizer implementation, and library of optimization rules.
  org.modeshape.jcr.query.process | This package defines the `QueryProcessor` interface, which is responsible for constructing for each query a tree of `ProcessingComponent` objects that each are responsible for processing a specific aspect of the query and returning the tuples to the parent component.

- Classes in org.modeshape.jcr.query.optimize used by org.modeshape.jcr.query.lucene
  Class and Description
  Optimizer Interface for an optimizer.

- Classes in org.modeshape.jcr.query.optimize used by org.modeshape.jcr.query.optimize
  Class and Description
  AddAccessNodes An `optimizer rule` that inserts an ACCESS above each SOURCE leaf node in a query plan.
  AddJoinConditionColumnsToSources An `OptimizerRule` that adds any missing columns required by the join conditions to the appropriate join source.
  AddOrderingColumnsToSources An `OptimizerRule` that adds any missing columns required by the ordering specifications to the SORT node's PROJECT, and to the appropriate access nodes.
  ChooseJoinAlgorithm An `optimizer rule` that choose the appropriate join algorithm and sets up any prerequisites, based upon the `JoinCondition`.
  CopyCriteria An `optimizer rule` that copies SELECT nodes that apply to one side of a equi-join condition so that they also apply to the other side fo the equi-join condition.
  Optimizer Interface for an optimizer.
  OptimizerRule Interface that defines an `Optimizer` rule.
  PushProjects This rule attempts to ensure the proper location of `PlanNode.Type.PROJECT` nodes.
  PushSelectCriteria An `optimizer rule` that attempts to push the criteria nodes in a canonical plan down as far as possible.
  RaiseSelectCriteria An `optimizer rule` that moves up higher in the plan any SELECT node that appears below a JOIN node and that applies to selectors that are on the other side of the join.
  RaiseVariableName An `optimizer rule` that moves up higher in the plan any `variable name` property to the node immediately under a `dependent query` node.
  RemoveEmptyAccessNodes An `optimizer rule` that removes any ACCESS nodes that are known to never return any tuples because of conflicting constraints.
  ReplaceViews An `optimizer rule` that replaces any SOURCE nodes that happen to be `views`.
  RewriteAsRangeCriteria An `optimizer rule` that rewrites two `AND-ed` `Constraint`s that constraint a dynamic operand to a range of values as a single `Between` constraint.
  RewriteIdentityJoins An `optimizer rule` that rewrites JOIN nodes that have `equi-join criteria` where the columns involved in the equi-join are all identity columns (that is, they form a `key` for the table).
  RewritePathAndNameCriteria An `optimizer rule` that rewrites Constraint trees, moving path-, name-, or depth-oriented criteria to the left-most parts of the constraint tree.
  RewritePseudoColumns An `optimizer rule` that moves up higher in the plan any `variable name` property to the node immediately under a `dependent query` node.
  RightOuterToLeftOuterJoins An `optimizer rule` that converts `right outer joins` into `left outer joins`.

- Classes in org.modeshape.jcr.query.optimize used by org.modeshape.jcr.query.process
  Class and Description
  Optimizer Interface for an optimizer.

Copyright © 2008-2014 JBoss, a division of Red Hat. All Rights Reserved.