public class FromSubquery extends FromTable
| Modifier and Type | Field and Description |
|---|---|
private ValueNode |
fetchFirst |
private boolean |
hasJDBClimitClause |
private ValueNode |
offset |
private OrderByList |
orderByList |
private SchemaDescriptor |
origCompilationSchema
DERBY-3270: If this subquery represents an expanded view, this holds the
current compilation schema at view definition time.
|
(package private) ResultSetNode |
subquery |
ADD_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 |
|---|
FromSubquery() |
| Modifier and Type | Method and Description |
|---|---|
(package private) void |
acceptChildren(Visitor v)
Accept the visitor for all visitable children of this node.
|
void |
bindExpressions(FromList fromListParam)
Bind the expressions in this FromSubquery.
|
ResultSetNode |
bindNonVTITables(DataDictionary dataDictionary,
FromList fromListParam)
Bind this subquery that appears in the FROM list.
|
void |
bindUntypedNullsToResultColumns(ResultColumnList bindingRCL)
Bind any untyped null nodes to the types in the given ResultColumnList.
|
ResultSetNode |
bindVTITables(FromList fromListParam)
Bind this subquery that appears in the FROM list.
|
(package private) void |
decrementLevel(int decrement)
Decrement (query block) level (0-based) for this FromTable.
|
ResultSetNode |
extractSubquery(int numTables)
Extract out and return the subquery, with a PRN on top.
|
FromList |
flatten(ResultColumnList rcl,
PredicateList outerPList,
SubqueryList sql,
GroupByList gbl,
ValueNode havingClause)
Flatten this FSqry into the outer query block.
|
ResultColumnList |
getAllResultColumns(TableName allTableName)
Expand a "*" into a ResultColumnList with all of the
result columns from the subquery.
|
java.lang.String |
getExposedName()
Get the exposed name for this table, which is the name that can
be used to refer to it in the rest of the query.
|
protected FromTable |
getFromTableByName(java.lang.String name,
java.lang.String schemaName,
boolean exactMatch)
Determine whether or not the specified name is an exposed name in
the current query block.
|
ResultColumn |
getMatchingColumn(ColumnReference columnReference)
Try to find a ResultColumn in the table represented by this FromBaseTable
that matches the name in the given ColumnReference.
|
ResultSetNode |
getSubquery()
Return the "subquery" from this node.
|
void |
init(java.lang.Object subquery,
java.lang.Object orderByList,
java.lang.Object offset,
java.lang.Object fetchFirst,
java.lang.Object hasJDBClimitClause,
java.lang.Object correlationName,
java.lang.Object derivedRCL,
java.lang.Object tableProperties)
Intializer for a table in a FROM list.
|
ResultSetNode |
preprocess(int numTables,
GroupByList gbl,
FromList fromList)
Preprocess a ResultSetNode - this currently means:
o Generating a referenced table map for each ResultSetNode.
|
void |
printSubNodes(int depth)
Prints the sub-nodes of this object.
|
boolean |
referencesSessionSchema()
Return true if the node references SESSION schema tables (temporary or permanent)
|
boolean |
referencesTarget(java.lang.String name,
boolean baseTable)
Search to see if a query references the specifed table name.
|
void |
rejectParameters()
Check for (and reject) ?
|
void |
setOrigCompilationSchema(SchemaDescriptor sd)
Associate this subquery with the original compilation schema of a view.
|
assignCostEstimate, canBeOrdered, considerSortAvoidancePath, convertAbsoluteToRelativeColumnPosition, cursorTargetTable, estimateCost, feasibleJoinStrategy, fillInReferencedTableMap, forUpdate, getBaseTableName, getBestAccessPath, getBestSortAvoidancePath, getCorrelationName, getCostEstimate, getCurrentAccessPath, getFinalCostEstimate, 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, modifyAccessPath, needsSpecialRCLBinding, nextAccessPath, optimizeIt, optimizeSubqueries, pullOptPredicates, pushExpressions, pushOptPredicate, rememberAsBest, rememberJoinStrategyAsBest, rememberSortAvoidancePath, resetJoinStrategies, setCostEstimate, setHashKeyColumns, setLevel, setOrigTableName, setProperties, setTableNumber, startOptimizing, supportsMultipleInstantiations, tellRowOrderingAboutConstantColumns, toString, transformOuterJoins, uniqueJoin, updateBestPlanMap, verifyPropertiesaddNewPredicate, adjustForSortElimination, adjustForSortElimination, assignResultSetNumber, bindExpressionsWithTables, bindResultColumns, bindResultColumns, bindTargetExpressions, changeAccessPath, columnTypesAndLengthsMatch, considerMaterialization, enhanceRCLForInsert, ensurePredicateList, flattenableInFromSubquery, generateNormalizationResultSet, generateResultSet, genProjectRestrict, genProjectRestrict, genProjectRestrictForReordering, getCostEstimate, getCursorTargetTable, getFromList, getNewCostEstimate, getOptimizer, getOptimizerImpl, getRCLForInsert, getReferencedTableMap, getResultColumns, getResultSetNumber, isNotExists, isOneRowResultSet, isOrderedOn, isPossibleDistinctScan, isUpdatableCursor, LOJgetReferencedTables, makeResultDescription, makeResultDescriptors, markAsCursorTargetTable, markForDistinctScan, markStatementResultSet, modifyAccessPaths, modifyAccessPaths, notCursorTargetTable, notFlattenableJoin, numDistinctAggregates, optimize, parseDefault, performMaterialization, projectResultColumns, pushOffsetFetchFirst, pushOrderByList, rejectXMLValues, renameGeneratedResultNames, replaceOrForbidDefaults, returnsAtMostOneRow, setInsertSource, setReferencedTableMap, setResultColumns, setResultToBooleanTrueNode, setTableConstructorTypes, subqueryReferencesTarget, updateTargetLockMode, verifySelectStarSubqueryaccept, bindOffsetFetch, bindRowMultiSet, bindUserCatalogType, bindUserType, checkReliability, checkReliability, convertDefaultNode, createTypeDependency, debugFlush, debugPrint, disablePrivilegeCollection, formatNodeString, foundString, generate, 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, 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, getResultSetNumberResultSetNode subquery
private OrderByList orderByList
private ValueNode offset
private ValueNode fetchFirst
private boolean hasJDBClimitClause
private SchemaDescriptor origCompilationSchema
public void init(java.lang.Object subquery,
java.lang.Object orderByList,
java.lang.Object offset,
java.lang.Object fetchFirst,
java.lang.Object hasJDBClimitClause,
java.lang.Object correlationName,
java.lang.Object derivedRCL,
java.lang.Object tableProperties)
init in interface Nodeinit in class QueryTreeNodesubquery - The subqueryorderByList - ORDER BY list if any, or nulloffset - OFFSET if any, or nullfetchFirst - FETCH FIRST if any, or nullhasJDBClimitClause - True if the offset/fetchFirst clauses come from JDBC limit/offset escape syntaxcorrelationName - The correlation namederivedRCL - The derived column listtableProperties - Properties list associated with the tablepublic void printSubNodes(int depth)
printSubNodes in class ResultSetNodedepth - The depth of this node in the treepublic ResultSetNode getSubquery()
protected FromTable getFromTableByName(java.lang.String name, java.lang.String schemaName, boolean exactMatch) throws StandardException
getFromTableByName in class FromTablename - The specified name to search for as an exposed name.schemaName - Schema name, if non-null.exactMatch - Whether or not we need an exact match on specified schema and table
names or match on table id.StandardException - Thrown on errorpublic ResultSetNode bindNonVTITables(DataDictionary dataDictionary, FromList fromListParam) throws StandardException
bindNonVTITables in class ResultSetNodedataDictionary - The DataDictionary to use for bindingfromListParam - FromList to use/append to.StandardException - Thrown on errorpublic ResultSetNode bindVTITables(FromList fromListParam) throws StandardException
bindVTITables in class ResultSetNodefromListParam - FromList to use/append to.StandardException - Thrown on errorpublic void rejectParameters()
throws StandardException
rejectParameters in class ResultSetNodeStandardException - Thrown if a ? parameter found
directly under a ResultColumnpublic void bindExpressions(FromList fromListParam) throws StandardException
bindExpressions in class ResultSetNodefromListParam - FromList to use/append to.StandardException - Thrown on errorpublic ResultColumn getMatchingColumn(ColumnReference columnReference) throws StandardException
getMatchingColumn in class ResultSetNodecolumnReference - The columnReference whose name we're looking
for in the given table.StandardException - Thrown on errorpublic ResultSetNode preprocess(int numTables, GroupByList gbl, FromList fromList) throws StandardException
preprocess in class ResultSetNodenumTables - The number of tables in the DML Statementgbl - The group by list, if anyfromList - The from list, if anyStandardException - Thrown on errorpublic ResultSetNode extractSubquery(int numTables) throws StandardException
numTables - The number of tables in the DML StatementStandardException - Thrown on errorpublic FromList flatten(ResultColumnList rcl, PredicateList outerPList, SubqueryList sql, GroupByList gbl, ValueNode havingClause) throws StandardException
flatten in class FromTablercl - The RCL from the outer queryouterPList - PredicateList to append wherePredicates to.sql - The SubqueryList from the outer querygbl - The group by list, if anyhavingClause - The HAVING clause, if anyStandardException - Thrown on errorpublic java.lang.String getExposedName()
getExposedName in class FromTablepublic ResultColumnList getAllResultColumns(TableName allTableName) throws StandardException
getAllResultColumns in class ResultSetNodeallTableName - The qualifier on the "*"null if
allTableName is non-null and doesn't match a table name in
this result setStandardException - Thrown on errorpublic boolean referencesTarget(java.lang.String name,
boolean baseTable)
throws StandardException
referencesTarget in class ResultSetNodename - Table name (String) to search for.baseTable - Whether or not name is for a base tableStandardException - Thrown on errorpublic boolean referencesSessionSchema()
throws StandardException
referencesSessionSchema in class QueryTreeNodeStandardException - Thrown on errorpublic void bindUntypedNullsToResultColumns(ResultColumnList bindingRCL) throws StandardException
bindUntypedNullsToResultColumns in class ResultSetNodebindingRCL - The ResultColumnList with the types to bind to.StandardException - Thrown on errorvoid decrementLevel(int decrement)
decrementLevel in class FromTabledecrement - The amount to decrement by.public void setOrigCompilationSchema(SchemaDescriptor sd)
sd - schema descriptor of the original compilation schema of the
view.void acceptChildren(Visitor v) throws StandardException
ResultSetNodeacceptChildren in class ResultSetNodev - the visitorStandardException - on errorQueryTreeNode.acceptChildren(org.apache.derby.iapi.sql.compile.Visitor)Apache Derby V10.10 Internals - Copyright © 2004,2014 The Apache Software Foundation. All Rights Reserved.