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

- Packages that use org.modeshape.jcr.query.optimize
  Package | Description
  --- | ---
  org.modeshape.jcr.query | The Query API provides a mechanism for building and executing queries.
  org.modeshape.jcr.query.engine | This package contains several fully-functional query engine implementations.
  org.modeshape.jcr.query.optimize | This package contains the Optimizer interface, a rule-based optimizer implementation, and library of optimization rules.

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

- Classes in org.modeshape.jcr.query.optimize used by org.modeshape.jcr.query.engine
  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.
  AddIndexes A rule that adds indexes below `PlanNode.Type.SOURCE` nodes.
  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.
  JoinOrder An optimization rule that ensure that the order of the left and right side of a JOIN match certain join criteria, including `DescendantNodeJoinCondition` and `ChildNodeJoinCondition`.
  Optimizer Interface for an optimizer.
  OptimizerRule Interface that defines an `Optimizer` rule.
  OrderIndexesByCost
  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.
  ReorderSortAndRemoveDuplicates An `optimizer rule` that looks for a `PlanNode.Type.SORT` plan node below a `PlanNode.Type.DUP_REMOVE`, and swaps them.
  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 Changes any criteria that writes criteria containing pseudo-columns into standard criteria.
  RightOuterToLeftOuterJoins An `optimizer rule` that converts `right outer joins` into `left outer joins`.

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