Note
A DistinctNode extends FromTable since it can exist in a FromList.
| Modifier and Type | Field and Description |
|---|---|
| pack-priv boolean |
| Access | Constructor and Description |
|---|---|
| pack-priv | DistinctNode(ResultSetNode
The child ResultSetNode childResult, boolean Whether or not the child ResultSetNode returns its
output in sorted order. inSortedOrder, Properties Properties list associated with the table tableProperties, ContextManager The context manager cm)Constructor for a DistinctNode. |
| Modifier and Type | Method and Description |
|---|---|
| public CostEstimate | estimateCost(OptimizablePredicateList
The predicate list to optimize against predList, ConglomerateDescriptor The conglomerate descriptor to get the cost of cd, CostEstimate The estimated cost of the part of the plan outer
to this optimizable. outerCost, Optimizer The optimizer to use to help estimate the cost optimizer, RowOrdering The row ordering for all the tables in the
join order, including this one. rowOrdering)Overrides org. Implements org. Estimate the cost of scanning this Optimizable using the given predicate list with the given conglomerate. |
| pack-priv void | generate(ActivationClassBuilder
The ActivationClassBuilder for the class being built acb, MethodBuilder The method for the generated code to go into mb)Overrides org. generate the distinct result set operating over the source result set. |
| pack-priv boolean | Returns: Whether the underlying ResultSet tree is ordered on the specified column.The specified ColumnReference[] crs, boolean Whether or not the order of the CRs in the array can be permuted permuteOrdering, List<FromBaseTable> List that is to be filled with the FromBaseTable fbtHolder)Overrides org. Return whether or not the underlying ResultSet tree is ordered on the specified columns. |
| pack-priv ResultSetNode | Returns: ResultSetNode The top of the optimized subtreeThe DataDictionary to use for optimization dataDictionary, PredicateList The PredicateList to optimize. This should
be a join predicate. predicates, double The number of outer joining rows outerRows)Overrides org. Optimize this DistinctNode. |
| public CostEstimate | optimizeIt(Optimizer
Optimizer to use. optimizer, OptimizablePredicateList The predicate list to optimize against predList, CostEstimate The CostEstimate for the outer tables in the join order,
telling how many times this Optimizable will be scanned. outerCost, RowOrdering The row ordering for all the tables in the
join order, including this one. rowOrdering)Overrides org. Implements org. Choose the best access path for this Optimizable. |
| public boolean | pushOptPredicate(OptimizablePredicate
OptimizablePredicate to push down. optimizablePredicate)Overrides org. Implements org. Push an OptimizablePredicate down, if this node accepts it. |
| inSortedOrder | back to summary |
|---|---|
| pack-priv boolean inSortedOrder | |
| DistinctNode | back to summary |
|---|---|
| pack-priv DistinctNode(ResultSetNode childResult, boolean inSortedOrder, Properties tableProperties, ContextManager cm) throws StandardException Constructor for a DistinctNode.
| |
| estimateCost | back to summary |
|---|---|
| public CostEstimate estimateCost(OptimizablePredicateList predList, ConglomerateDescriptor cd, CostEstimate outerCost, Optimizer optimizer, RowOrdering rowOrdering) throws StandardException Overrides org. Implements org. Doc from org. Estimate the cost of scanning this Optimizable using the given predicate list with the given conglomerate. It is assumed that the predicate list has already been classified. This cost estimate is just for one scan, not for the life of the query.
| |
| generate | back to summary |
|---|---|
| pack-priv void generate(ActivationClassBuilder acb, MethodBuilder mb) throws StandardException Overrides org. generate the distinct result set operating over the source result set.
| |
| isOrderedOn | back to summary |
|---|---|
| pack-priv boolean isOrderedOn(ColumnReference[] crs, boolean permuteOrdering, List<FromBaseTable> fbtHolder) Overrides org. Return whether or not the underlying ResultSet tree is ordered on the specified columns. RESOLVE - This method currently only considers the outermost table of the query block.
| |
| optimize | back to summary |
|---|---|
| pack-priv ResultSetNode optimize(DataDictionary dataDictionary, PredicateList predicates, double outerRows) throws StandardException Overrides org. Optimize this DistinctNode.
| |
| optimizeIt | back to summary |
|---|---|
| public CostEstimate optimizeIt(Optimizer optimizer, OptimizablePredicateList predList, CostEstimate outerCost, RowOrdering rowOrdering) throws StandardException Overrides org. Implements org. Doc from org. Choose the best access path for this Optimizable.
| |
| pushOptPredicate | back to summary |
|---|---|
| public boolean pushOptPredicate(OptimizablePredicate optimizablePredicate) throws StandardException Overrides org. Implements org. Doc from org. Push an OptimizablePredicate down, if this node accepts it.
| |