|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.apache.derby.impl.sql.compile.QueryTreeNode
org.apache.derby.impl.sql.compile.ResultSetNode
org.apache.derby.impl.sql.compile.FromTable
org.apache.derby.impl.sql.compile.TableOperatorNode
org.apache.derby.impl.sql.compile.SetOperatorNode
org.apache.derby.impl.sql.compile.UnionNode
public class UnionNode
A UnionNode represents a UNION in a DML statement. It contains a boolean telling whether the union operation should eliminate duplicate rows.
| Field Summary | |
|---|---|
private boolean |
addNewNodesCalled
|
(package private) boolean |
tableConstructor
|
(package private) boolean |
topTableConstructor
|
| Fields inherited from class org.apache.derby.impl.sql.compile.SetOperatorNode |
|---|
all, fetchFirst, hasJDBClimitClause, offset, orderByLists |
| Fields inherited from class org.apache.derby.impl.sql.compile.TableOperatorNode |
|---|
leftOptimizer, leftResultSet, rightOptimizer, rightResultSet |
| Fields inherited from class org.apache.derby.impl.sql.compile.FromTable |
|---|
ADD_PLAN, bestAccessPath, bestCostEstimate, bestSortAvoidancePath, correlationName, corrTableName, currentAccessPath, hashKeyColumns, initialCapacity, level, LOAD_PLAN, loadFactor, maxCapacity, origTableName, REMOVE_PLAN, tableNumber, tableProperties, trulyTheBestAccessPath, userSpecifiedJoinStrategy |
| Fields inherited from class org.apache.derby.impl.sql.compile.ResultSetNode |
|---|
costEstimate, cursorTargetTable, finalCostEstimate, insertSource, optimizer, referencedTableMap, resultColumns, resultSetNumber, scratchCostEstimate, statementResultSet |
| Fields inherited from class org.apache.derby.impl.sql.compile.QueryTreeNode |
|---|
AUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX, isPrivilegeCollectionRequired |
| Constructor Summary | |
|---|---|
UnionNode()
|
|
| Method Summary | |
|---|---|
private ResultSetNode |
addNewNodes()
Add any new ResultSetNodes that are necessary to the tree. |
void |
bindExpressions(FromList fromListParam)
Bind the expressions under this TableOperatorNode. |
(package private) ResultSetNode |
enhanceRCLForInsert(InsertNode target,
boolean inOrder,
int[] colMap)
Make the RCL of this node match the target node for the insert. |
void |
generate(ActivationClassBuilder acb,
MethodBuilder mb)
Generate the code for this UnionNode. |
CostEstimate |
getFinalCostEstimate()
Get the final CostEstimate for this FromTable. |
(package private) java.lang.String |
getOperatorName()
|
void |
init(java.lang.Object leftResult,
java.lang.Object rightResult,
java.lang.Object all,
java.lang.Object tableConstructor,
java.lang.Object tableProperties)
Initializer for a UnionNode. |
void |
markTopTableConstructor()
Mark this as the top node of a table constructor. |
Optimizable |
modifyAccessPath(JBitSet outerTables)
Modify the access path for this Optimizable, as necessary. |
ResultSetNode |
modifyAccessPaths()
Modify the access paths according to the decisions the optimizer made. |
CostEstimate |
optimizeIt(Optimizer optimizer,
OptimizablePredicateList predList,
CostEstimate outerCost,
RowOrdering rowOrdering)
Choose the best access path for this Optimizable. |
void |
pushExpressions(PredicateList predicateList)
DERBY-649: Handle pushing predicates into UnionNodes. |
void |
rejectParameters()
Check for (and reject) ? |
(package private) void |
setTableConstructorTypes(ResultColumnList typeColumns)
Set the type of column in the result column lists of each source of this union tree to the type in the given result column list (which represents the result columns for an insert). |
(package private) boolean |
tableConstructor()
Tell whether this is a UNION for a table constructor. |
java.lang.String |
toString()
Convert this object to a String. |
| Methods inherited from class org.apache.derby.impl.sql.compile.TableOperatorNode |
|---|
acceptChildren, adjustForSortElimination, adjustForSortElimination, bindExpressionsWithTables, bindNonVTITables, bindVTITables, decrementLevel, getExposedName, getLeftmostResultSet, getLeftResultSet, getRightResultSet, init, needsSpecialRCLBinding, optimize, optimizeSource, projectResultColumns, referencesSessionSchema, referencesTarget, setLeftmostResultSet, setLevel, setNestedInParens, setReferencedColumns, updateBestPlanMap, verifyProperties |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.apache.derby.iapi.sql.compile.Optimizable |
|---|
getDataDictionary, getReferencedTableMap, getResultSetNumber |
| Field Detail |
|---|
private boolean addNewNodesCalled
boolean tableConstructor
boolean topTableConstructor
| Constructor Detail |
|---|
public UnionNode()
| Method Detail |
|---|
public void init(java.lang.Object leftResult,
java.lang.Object rightResult,
java.lang.Object all,
java.lang.Object tableConstructor,
java.lang.Object tableProperties)
throws StandardException
init in interface Nodeinit in class QueryTreeNodeleftResult - The ResultSetNode on the left side of this unionrightResult - The ResultSetNode on the right side of this unionall - Whether or not this is a UNION ALL.tableConstructor - Whether or not this is from a table constructor.tableProperties - Properties list associated with the table
StandardException - Thrown on errorpublic void markTopTableConstructor()
boolean tableConstructor()
public void rejectParameters()
throws StandardException
rejectParameters in class TableOperatorNodeStandardException - Thrown if a ? parameter found
directly under a ResultColumn
void setTableConstructorTypes(ResultColumnList typeColumns)
throws StandardException
setTableConstructorTypes in class ResultSetNodetypeColumns - The ResultColumnList containing the desired result
types.
StandardException - Thrown on error
ResultSetNode enhanceRCLForInsert(InsertNode target,
boolean inOrder,
int[] colMap)
throws StandardException
enhanceRCLForInsert in class ResultSetNodetarget - the target node for the insertinOrder - are source cols in same order as target cols?colMap - int array representation of correspondence between
RCLs - colmap[i] = -1 -> missing in current RCL
colmap[i] = j -> targetRCL(i) <-> thisRCL(j+1)
StandardException - Thrown on error
public CostEstimate optimizeIt(Optimizer optimizer,
OptimizablePredicateList predList,
CostEstimate outerCost,
RowOrdering rowOrdering)
throws StandardException
Optimizable
optimizeIt in interface OptimizableoptimizeIt in class FromTableoptimizer - Optimizer to use.predList - The predicate list to optimize againstouterCost - The CostEstimate for the outer tables in the join order,
telling how many times this Optimizable will be scanned.rowOrdering - The row ordering for all the tables in the
join order, including this one.
StandardException - Thrown on errorOptimizable.optimizeIt(org.apache.derby.iapi.sql.compile.Optimizer, org.apache.derby.iapi.sql.compile.OptimizablePredicateList, org.apache.derby.iapi.sql.compile.CostEstimate, org.apache.derby.iapi.sql.compile.RowOrdering)
public void pushExpressions(PredicateList predicateList)
throws StandardException
pushExpressions in class FromTablepredicateList - List of single table predicates to push
StandardException - Thrown on error
public Optimizable modifyAccessPath(JBitSet outerTables)
throws StandardException
Optimizable
modifyAccessPath in interface OptimizablemodifyAccessPath in class TableOperatorNodeouterTables - Bit map of the tables that are outer to this one
in the join order.
StandardException - Thrown on errorOptimizable.modifyAccessPath(org.apache.derby.iapi.util.JBitSet)
public ResultSetNode modifyAccessPaths()
throws StandardException
ResultSetNode
modifyAccessPaths in class TableOperatorNodeStandardException - Thrown on errorResultSetNode.modifyAccessPaths()
private ResultSetNode addNewNodes()
throws StandardException
StandardException - Thrown on errorpublic java.lang.String toString()
toString in class SetOperatorNode
public void bindExpressions(FromList fromListParam)
throws StandardException
bindExpressions in class SetOperatorNodefromListParam - FromList to use/append to.
StandardException - Thrown on error
public void generate(ActivationClassBuilder acb,
MethodBuilder mb)
throws StandardException
generate in class QueryTreeNodeacb - The ActivationClassBuilder for the class being builtmb - The method for the generated code to go into
StandardException - Thrown on error
public CostEstimate getFinalCostEstimate()
throws StandardException
FromTable
getFinalCostEstimate in class FromTableStandardExceptionGet the final CostEstimate for this UnionNode.java.lang.String getOperatorName()
getOperatorName in class SetOperatorNode
|
Built on Wed 2013-06-12 15:21:56+0000, from revision ??? | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||