| Modifier and Type | Field and Description |
|---|---|
| private boolean | |
| public static final int | |
| private int[] | |
| private int[] | |
| private boolean[] | |
| public static final int | |
| private int |
| Access | Constructor and Description |
|---|---|
| pack-priv | IntersectOrExceptNode(int
The operator type: one of opType, ResultSetNode EXCEPT_OP or
INTERSECT_OP.The ResultSetNode on the left side of this union leftResult, ResultSetNode The ResultSetNode on the right side of this union rightResult, boolean true if this is an ALL set operation.Properties list associated with the table tableProperties, ContextManager The context manager cm)Constructor for a SetOperatorNode. |
| Modifier and Type | Method and Description |
|---|---|
| private ResultSetNode | Returns: (Potentially new) head of the ResultSetNode tree.Add any new ResultSetNodes that are necessary to the tree. |
| 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 code. |
| pack-priv CostEstimate | Returns: The final CostEstimate for this IntersectOrExceptNode, which is the sum of the two child costs. The final number of rows depends on whether this is an INTERSECT or EXCEPT (see getRowCountEstimate() in this class for more).Overrides org. Get the final CostEstimate for this FromTable. |
| pack-priv String | getOperatorName()
Implements abstract org.
|
| private int | |
| pack-priv double | |
| pack-priv double | |
| public Optimizable | modifyAccessPath(JBitSet
Bit map of the tables that are outer to this one
in the join order. outerTables)Overrides org. Implements org. Modify the access path for this Optimizable, as necessary. |
| pack-priv ResultSetNode | modifyAccessPaths()
Overrides org. Modify the access paths according to the decisions the optimizer made. |
| pack-priv ResultSetNode | Returns: The preprocessed ResultSetNode that can be optimizedNumber of tables in the DML Statement numTables, GroupByList The group by list, if any gbl, FromList The from list, if any fromList)Overrides org. Push order by lists down to the children so that we can implement the intersect/except by scan of the two sorted inputs. |
| private void |
| addNewNodesCalled | back to summary |
|---|---|
| private boolean addNewNodesCalled | |
| EXCEPT_OP | back to summary |
|---|---|
| public static final int EXCEPT_OP | |
| intermediateOrderByColumns | back to summary |
|---|---|
| private int[] intermediateOrderByColumns | |
| intermediateOrderByDirection | back to summary |
|---|---|
| private int[] intermediateOrderByDirection | |
| intermediateOrderByNullsLow | back to summary |
|---|---|
| private boolean[] intermediateOrderByNullsLow | |
| INTERSECT_OP | back to summary |
|---|---|
| public static final int INTERSECT_OP | |
| opType | back to summary |
|---|---|
| private int opType | |
| IntersectOrExceptNode | back to summary |
|---|---|
| pack-priv IntersectOrExceptNode(int opType, ResultSetNode leftResult, ResultSetNode rightResult, boolean all, Properties tableProperties, ContextManager cm) throws StandardException Constructor for a SetOperatorNode.
| |
| addNewNodes | back to summary |
|---|---|
| private ResultSetNode addNewNodes() throws StandardException Add any new ResultSetNodes that are necessary to the tree. We wait until after optimization to do this in order to make it easier on the optimizer.
| |
| 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 code.
| |
| getFinalCostEstimate | back to summary |
|---|---|
| pack-priv CostEstimate getFinalCostEstimate() throws StandardException Overrides org. Doc from org. Get the final CostEstimate for this FromTable.
| |
| getOperatorName | back to summary |
|---|---|
| pack-priv String getOperatorName() Implements abstract org.
| |
| getOpType | back to summary |
|---|---|
| private int getOpType() | |
| getRowCountEstimate | back to summary |
|---|---|
| pack-priv double getRowCountEstimate(double leftRowCount, double rightRowCount) | |
| getSingleScanRowCountEstimate | back to summary |
|---|---|
| pack-priv double getSingleScanRowCountEstimate(double leftSingleScanRowCount, double rightSingleScanRowCount) | |
| modifyAccessPath | back to summary |
|---|---|
| public Optimizable modifyAccessPath(JBitSet outerTables) throws StandardException Overrides org. Implements org. Doc from org. Modify the access path for this Optimizable, as necessary. This includes things like adding a result set to translate from index rows to base rows
| |
| modifyAccessPaths | back to summary |
|---|---|
| pack-priv ResultSetNode modifyAccessPaths() throws StandardException Overrides org. Doc from org. Modify the access paths according to the decisions the optimizer made. This can include adding project/restrict nodes, index-to-base-row nodes, etc.
| |
| preprocess | back to summary |
|---|---|
| pack-priv ResultSetNode preprocess(int numTables, GroupByList gbl, FromList fromList) throws StandardException Overrides org. Push order by lists down to the children so that we can implement the intersect/except by scan of the two sorted inputs.
| |
| pushOrderingDown | back to summary |
|---|---|
| private void pushOrderingDown(ResultSetNode rsn) throws StandardException | |