Class ReplaceAggregatesWithCRVisitor
java.lang.Object
org.apache.derby.impl.sql.compile.ReplaceAggregatesWithCRVisitor
- All Implemented Interfaces:
Visitor
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionReplaceAggregatesWithCRVisitor(ResultColumnList rcl, int tableNumber) Replace all aggregates with column references.ReplaceAggregatesWithCRVisitor(ResultColumnList rcl, int tableNumber, Class<?> skipOverClass) ReplaceAggregatesWithCRVisitor(ResultColumnList rcl, Class<?> nodeToSkip) Replace all aggregates with column references. -
Method Summary
Modifier and TypeMethodDescriptionbooleanskipChildren(Visitable node) Don't visit children under the skipOverClass node, if it isn't null.booleanMethod that is called to see if query tree traversal should be stopped before visiting all nodes.Don't do anything unless we have an aggregate node.booleanvisitChildrenFirst(Visitable node) Method that is called to see ifvisit()should be called on the children ofnodebefore it is called onnodeitself.
-
Field Details
-
rcl
-
skipOverClass
-
tableNumber
private int tableNumber
-
-
Constructor Details
-
ReplaceAggregatesWithCRVisitor
ReplaceAggregatesWithCRVisitor(ResultColumnList rcl, int tableNumber) Replace all aggregates with column references. Add the reference to the RCL. Delegates most work to AggregateNode.replaceAggregatesWithColumnReferences(rcl, tableNumber).- Parameters:
rcl- the result column listtableNumber- The tableNumber for the new CRs
-
ReplaceAggregatesWithCRVisitor
ReplaceAggregatesWithCRVisitor(ResultColumnList rcl, int tableNumber, Class<?> skipOverClass) -
ReplaceAggregatesWithCRVisitor
ReplaceAggregatesWithCRVisitor(ResultColumnList rcl, Class<?> nodeToSkip) Replace all aggregates with column references. Add the reference to the RCL. Delegates most work to AggregateNode.replaceAggregatesWithColumnReferences(rcl). Doesn't traverse below the passed in class.- Parameters:
rcl- the result column listnodeToSkip- don't examine anything below nodeToSkip
-
-
Method Details
-
visit
Don't do anything unless we have an aggregate node.- Specified by:
visitin interfaceVisitor- Parameters:
node- the node to process- Returns:
- me
- Throws:
StandardException- on error
-
skipChildren
Don't visit children under the skipOverClass node, if it isn't null.- Specified by:
skipChildrenin interfaceVisitor- Parameters:
node- the node to process- Returns:
- true/false
-
visitChildrenFirst
Description copied from interface:VisitorMethod that is called to see ifvisit()should be called on the children ofnodebefore it is called onnodeitself. If this method always returnstrue, the visitor will walk the tree bottom-up. If it always returnsfalse, the tree is visited top-down.- Specified by:
visitChildrenFirstin interfaceVisitor- Parameters:
node- the top node of a sub-tree about to be visited- Returns:
trueifnode's children should be visited beforenode,falseotherwise
-
stopTraversal
public boolean stopTraversal()Description copied from interface:VisitorMethod that is called to see if query tree traversal should be stopped before visiting all nodes. Useful for short circuiting traversal if we already know we are done.- Specified by:
stopTraversalin interfaceVisitor- Returns:
- true/false
-