public class UnionNode extends SetOperatorNode
| Modifier and Type | Field and Description |
|---|---|
private boolean |
addNewNodesCalled |
(package private) boolean |
tableConstructor |
(package private) boolean |
topTableConstructor |
all, fetchFirst, hasJDBClimitClause, offset, orderByListsleftOptimizer, leftResultSet, rightOptimizer, rightResultSetADD_PLAN, bestAccessPath, bestCostEstimate, bestSortAvoidancePath, correlationName, corrTableName, currentAccessPath, hashKeyColumns, initialCapacity, level, LOAD_PLAN, loadFactor, maxCapacity, origTableName, REMOVE_PLAN, tableNumber, tableProperties, trulyTheBestAccessPath, userSpecifiedJoinStrategycostEstimate, cursorTargetTable, finalCostEstimate, insertSource, optimizer, referencedTableMap, resultColumns, resultSetNumber, scratchCostEstimate, statementResultSetAUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX| Constructor and Description |
|---|
UnionNode() |
| Modifier and Type | Method and Description |
|---|---|
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.
|
bindResultColumns, bindResultColumns, bindTargetExpressions, bindUntypedNullsToResultColumns, ensurePredicateList, flattenableInFromSubquery, getFromTableByName, getLeftOptPredicateList, getParamColumnTypes, getRightOptPredicateList, hasUnPushedPredicates, init, modifyAccessPath, performMaterialization, preprocess, printSubNodes, pullOptPredicates, pushOffsetFetchFirst, pushOptPredicate, pushOrderByList, replaceOrForbidDefaults, setParamColumnTypes, setResultToBooleanTrueNode, verifySelectStarSubqueryacceptChildren, adjustForSortElimination, adjustForSortElimination, bindExpressionsWithTables, bindNonVTITables, bindVTITables, decrementLevel, getExposedName, getLeftmostResultSet, getLeftResultSet, getRightResultSet, init, needsSpecialRCLBinding, optimize, optimizeSource, projectResultColumns, referencesSessionSchema, referencesTarget, setLeftmostResultSet, setLevel, setNestedInParens, setReferencedColumns, updateBestPlanMap, verifyPropertiesassignCostEstimate, canBeOrdered, considerSortAvoidancePath, convertAbsoluteToRelativeColumnPosition, cursorTargetTable, estimateCost, feasibleJoinStrategy, fillInReferencedTableMap, flatten, forUpdate, getBaseTableName, getBestAccessPath, getBestSortAvoidancePath, getCorrelationName, getCostEstimate, getCurrentAccessPath, getLevel, getName, getNumColumnsReturned, getOrigTableName, getProperties, getResultColumnsForList, getSchemaDescriptor, getSchemaDescriptor, getScratchCostEstimate, getTableDescriptor, getTableName, getTableNumber, getTrulyTheBestAccessPath, getUserSpecifiedJoinStrategy, hashKeyColumns, hasLargeObjectColumns, hasTableNumber, init, initAccessPaths, initialCapacity, isBaseTable, isCoveringIndex, isFlattenableJoinNode, isJoinColumnForRightOuterJoin, isMaterializable, isOneRowScan, isTargetTable, legalJoinOrder, loadFactor, LOJ_reorderable, markUpdatableByCursor, maxCapacity, memoryUsageOK, nextAccessPath, optimizeSubqueries, rememberAsBest, rememberJoinStrategyAsBest, rememberSortAvoidancePath, resetJoinStrategies, setCostEstimate, setHashKeyColumns, setOrigTableName, setProperties, setTableNumber, startOptimizing, supportsMultipleInstantiations, tellRowOrderingAboutConstantColumns, transformOuterJoins, uniqueJoinaddNewPredicate, assignResultSetNumber, changeAccessPath, columnTypesAndLengthsMatch, considerMaterialization, generateNormalizationResultSet, generateResultSet, genProjectRestrict, genProjectRestrict, genProjectRestrictForReordering, getAllResultColumns, getCostEstimate, getCursorTargetTable, getFromList, getMatchingColumn, getNewCostEstimate, getOptimizer, getOptimizerImpl, getRCLForInsert, getReferencedTableMap, getResultColumns, getResultSetNumber, isNotExists, isOneRowResultSet, isOrderedOn, isPossibleDistinctScan, isUpdatableCursor, LOJgetReferencedTables, makeResultDescription, makeResultDescriptors, markAsCursorTargetTable, markForDistinctScan, markStatementResultSet, modifyAccessPaths, notCursorTargetTable, notFlattenableJoin, numDistinctAggregates, parseDefault, rejectXMLValues, renameGeneratedResultNames, returnsAtMostOneRow, setInsertSource, setReferencedTableMap, setResultColumns, subqueryReferencesTarget, updateTargetLockModeaccept, bindOffsetFetch, bindRowMultiSet, bindUserCatalogType, bindUserType, checkReliability, checkReliability, convertDefaultNode, createTypeDependency, debugFlush, debugPrint, disablePrivilegeCollection, formatNodeString, foundString, generateAuthorizeCheck, getBeginOffset, getClassFactory, getCompilerContext, getContextManager, getCursorInfo, getDataDictionary, getDependencyManager, getEndOffset, getExecutionFactory, getGenericConstantActionFactory, getIntProperty, getLanguageConnectionContext, getNodeFactory, getNodeType, getNullNode, getParameterTypes, getSchemaDescriptor, getSchemaDescriptor, getStatementType, getTableDescriptor, getTypeCompiler, init, init, init, init, init, init, init, init, init, init, isAtomic, isInstanceOf, isPrivilegeCollectionRequired, isSessionSchema, isSessionSchema, makeConstantAction, makeTableName, makeTableName, nodeHeader, orReliability, parseStatement, printLabel, resolveTableToSynonym, setBeginOffset, setContextManager, setEndOffset, setNodeType, setRefActionInfo, stackPrint, treePrint, treePrint, verifyClassExistclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetDataDictionary, getReferencedTableMap, getResultSetNumberprivate boolean addNewNodesCalled
boolean tableConstructor
boolean topTableConstructor
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 tableStandardException - Thrown on errorpublic void markTopTableConstructor()
boolean tableConstructor()
public void rejectParameters()
throws StandardException
rejectParameters in class TableOperatorNodeStandardException - Thrown if a ? parameter found
directly under a ResultColumnvoid setTableConstructorTypes(ResultColumnList typeColumns) throws StandardException
setTableConstructorTypes in class ResultSetNodetypeColumns - The ResultColumnList containing the desired result
types.StandardException - Thrown on errorResultSetNode 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 errorpublic CostEstimate optimizeIt(Optimizer optimizer, OptimizablePredicateList predList, CostEstimate outerCost, RowOrdering rowOrdering) throws StandardException
OptimizableoptimizeIt 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 pushStandardException - Thrown on errorpublic Optimizable modifyAccessPath(JBitSet outerTables) throws StandardException
OptimizablemodifyAccessPath 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
ResultSetNodemodifyAccessPaths in class TableOperatorNodeStandardException - Thrown on errorResultSetNode.modifyAccessPaths()private ResultSetNode addNewNodes() throws StandardException
StandardException - Thrown on errorpublic java.lang.String toString()
toString in class SetOperatorNodepublic void bindExpressions(FromList fromListParam) throws StandardException
bindExpressions in class SetOperatorNodefromListParam - FromList to use/append to.StandardException - Thrown on errorpublic 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 intoStandardException - Thrown on errorpublic CostEstimate getFinalCostEstimate() throws StandardException
FromTablegetFinalCostEstimate in class FromTableStandardExceptionGet the final CostEstimate for this UnionNode.java.lang.String getOperatorName()
getOperatorName in class SetOperatorNodeApache Derby V10.10 Internals - Copyright © 2004,2014 The Apache Software Foundation. All Rights Reserved.