|
|||||||||
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, offset, orderByList |
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 class QueryTreeNode
leftResult
- 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 TableOperatorNode
StandardException
- Thrown if a ? parameter found
directly under a ResultColumnvoid setTableConstructorTypes(ResultColumnList typeColumns) throws StandardException
setTableConstructorTypes
in class ResultSetNode
typeColumns
- The ResultColumnList containing the desired result
types.
StandardException
- Thrown on errorResultSetNode enhanceRCLForInsert(InsertNode target, boolean inOrder, int[] colMap) throws StandardException
enhanceRCLForInsert
in class ResultSetNode
target
- 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 errorpublic CostEstimate optimizeIt(Optimizer optimizer, OptimizablePredicateList predList, CostEstimate outerCost, RowOrdering rowOrdering) throws StandardException
Optimizable
optimizeIt
in interface Optimizable
optimizeIt
in class FromTable
optimizer
- 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 FromTable
predicateList
- List of single table predicates to push
StandardException
- Thrown on errorpublic Optimizable modifyAccessPath(JBitSet outerTables) throws StandardException
Optimizable
modifyAccessPath
in interface Optimizable
modifyAccessPath
in class TableOperatorNode
outerTables
- 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 TableOperatorNode
StandardException
- 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 TableOperatorNode
fromListParam
- FromList to use/append to.
StandardException
- Thrown on errorpublic void generate(ActivationClassBuilder acb, MethodBuilder mb) throws StandardException
generate
in class QueryTreeNode
acb
- The ActivationClassBuilder for the class being builtmb
- The method for the generated code to go into
StandardException
- Thrown on errorpublic CostEstimate getFinalCostEstimate() throws StandardException
FromTable
getFinalCostEstimate
in class FromTable
StandardException
Get the final CostEstimate for this UnionNode.
java.lang.String getOperatorName()
getOperatorName
in class SetOperatorNode
|
Built on Thu 2012-03-29 21:53:33+0000, from revision ??? | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |