| java.lang.Object org.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.FromBaseTable
FromBaseTable | public class FromBaseTable extends FromTable (Code) | | A FromBaseTable represents a table in the FROM list of a DML statement,
as distinguished from a FromSubquery, which represents a subquery in the
FROM list. A FromBaseTable may actually represent a view. During parsing,
we can't distinguish views from base tables. During binding, when we
find FromBaseTables that represent views, we replace them with FromSubqueries.
By the time we get to code generation, all FromSubqueries have been eliminated,
and all FromBaseTables will represent only true base tables.
Positioned Update: Currently, all columns of an updatable cursor
are selected to deal with a positioned update. This is because we don't
know what columns will ultimately be needed from the UpdateNode above
us. For example, consider:
get c as 'select cint from t for update of ctinyint'
update t set ctinyint = csmallint
Ideally, the cursor only selects cint. Then,
something akin to an IndexRowToBaseRow is generated to
take the CursorResultSet and get the appropriate columns
out of the base table from the RowLocation retunrned by the
cursor. Then the update node can generate the appropriate
NormalizeResultSet (or whatever else it might need) to
get things into the correct format for the UpdateResultSet.
See CurrentOfNode for more information.
author: Jeff Lichtman |
Method Summary | |
public boolean | LOJ_reorderable(int numTables) no LOJ reordering for base table. | public JBitSet | LOJgetReferencedTables(int numTables) | public ResultColumnList | addColsToList(ResultColumnList inputRcl, FormatableBitSet colsWeWant) Augment the RCL to include the columns in the FormatableBitSet. | public void | bindExpressions(FromList fromListParam) Bind the expressions in this FromBaseTable. | public ResultSetNode | bindNonVTITables(DataDictionary dataDictionary, FromList fromListParam) Bind the table in this FromBaseTable. | public void | bindResultColumns(FromList fromListParam) Bind the result columns of this ResultSetNode when there is no
base table to bind them to. | protected boolean | canBeOrdered() | public ResultSetNode | changeAccessPath() | void | clearDependency(Vector locations) | public int | convertAbsoluteToRelativeColumnPosition(int absolutePosition) | protected boolean | cursorTargetTable() | void | disableBulkFetch() | void | doSpecialMaxScan() Do a special scan for max. | public CostEstimate | estimateCost(OptimizablePredicateList predList, ConglomerateDescriptor cd, CostEstimate outerCost, Optimizer optimizer, RowOrdering rowOrdering) | public boolean | forUpdate() | protected ResultSetNode | genProjectRestrict(int numTables) Put a ProjectRestrictNode on top of each FromTable in the FromList.
ColumnReferences must continue to point to the same ResultColumn, so
that ResultColumn must percolate up to the new PRN. | public ResultColumnList | genResultColList() Build a ResultColumnList based on all of the columns in this FromBaseTable. | public void | generate(ActivationClassBuilder acb, MethodBuilder mb) Generation on a FromBaseTable creates a scan on the
optimizer-selected conglomerate. | public void | generateResultSet(ExpressionClassBuilder acb, MethodBuilder mb) Generation on a FromBaseTable for a SELECT. | public ResultColumnList | getAllResultColumns(TableName allTableName) Return a ResultColumnList with all of the columns in this table. | public String | getBaseTableName() | boolean | getExistsBaseTable() Does this FBT represent an EXISTS FBT. | public 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. | public CostEstimate | getFinalCostEstimate() Get the final CostEstimate for this ResultSetNode. | protected FromTable | getFromTableByName(String name, String schemaName, boolean exactMatch) Determine whether or not the specified name is an exposed name in
the current query block.
Parameters: name - The specified name to search for as an exposed name. Parameters: schemaName - Schema name, if non-null. Parameters: exactMatch - Whether or not we need an exact match on specified schema and tablenames or match on table id. | public ResultColumn | getMatchingColumn(ColumnReference columnReference) Try to find a ResultColumn in the table represented by this FromBaseTable
that matches the name in the given ColumnReference. | public TableDescriptor | getTableDescriptor() | public TableName | getTableName() Return a TableName node representing this FromTable. | public TableName | getTableNameField() Return the table name for this table. | public void | init(Object arg1, Object arg2, Object arg3, Object arg4) Initializer for a table in a FROM list. | public int | initialCapacity() | public boolean | isBaseTable() | public boolean | isCoveringIndex(ConglomerateDescriptor cd) | public boolean | isMaterializable() | public boolean | isNotExists() Return whether or not this is actually a EBT for NOT EXISTS. | public boolean | isOneRowResultSet() Return whether or not the underlying ResultSet tree will return
a single row, at most. | public boolean | isOneRowResultSet(OptimizablePredicateList predList) | public boolean | isOneRowScan() | boolean | isOrderedOn(ColumnReference[] crs, boolean permuteOrdering, Vector fbtVector) Return whether or not the underlying ResultSet tree
is ordered on the specified columns. | boolean | isPossibleDistinctScan(Set distinctColumns) Is it possible to do a distinct scan on this ResultSet tree. | public boolean | isTargetTable() | public boolean | legalJoinOrder(JBitSet assignedTableMap) | public float | loadFactor() | public boolean | markAsCursorTargetTable() Mark this ResultSetNode as the target table of an updatable
cursor. | void | markForDistinctScan() Mark the underlying scan as a distinct scan. | void | markOrderingDependent() Notify the underlying result set tree that the result is
ordering dependent. | void | markUpdated(ResultColumnList updateColumns) Mark as updatable all the columns in the result column list of this
FromBaseTable that match the columns in the given update column list. | public boolean | memoryUsageOK(double rowCount, int maxMemoryPerTable) | public boolean | nextAccessPath(Optimizer optimizer, OptimizablePredicateList predList, RowOrdering rowOrdering) | public CostEstimate | optimizeIt(Optimizer optimizer, OptimizablePredicateList predList, CostEstimate outerCost, RowOrdering rowOrdering) | public ResultSetNode | preprocess(int numTables, GroupByList gbl, FromList fromList) Preprocess a ResultSetNode - this currently means:
o Generating a referenced table map for each ResultSetNode.
o Putting the WHERE and HAVING clauses in conjunctive normal form (CNF).
o Converting the WHERE and HAVING clauses into PredicateLists and
classifying them.
o Ensuring that a ProjectRestrictNode is generated on top of every
FromBaseTable and generated in place of every FromSubquery. | public void | pullOptPredicates(OptimizablePredicateList optimizablePredicates) | public boolean | pushOptPredicate(OptimizablePredicate optimizablePredicate) | public boolean | referencesSessionSchema() | public boolean | referencesTarget(String name, boolean baseTable) Search to see if a query references the specifed table name. | void | setExistsBaseTable(boolean existsBaseTable, JBitSet dependencyMap, boolean isNotExists) Set whether or not this FBT represents an
EXISTS FBT. | public void | setRefActionInfo(long fkIndexConglomId, int[] fkColArray, String parentResultSetId, boolean dependentScan) set the Information gathered from the parent table that is
required to peform a referential action on dependent table. | public void | setTableProperties(Properties tableProperties) Set the table properties for this table. | public void | startOptimizing(Optimizer optimizer, RowOrdering rowOrdering) | protected boolean | supersetOfUniqueIndex(boolean[] eqCols) Determine whether or not the columns marked as true in
the passed in array are a superset of any unique index
on this table. | protected boolean | supersetOfUniqueIndex(JBitSet[] tableColMap) Determine whether or not the columns marked as true in
the passed in join table matrix are a superset of any single column unique index
on this table. | public String | toString() Convert this object to a String. | public double | uniqueJoin(OptimizablePredicateList predList) | public int | updateTargetLockMode() Get the lock mode for the target table heap of an update or delete
statement. | public void | verifyProperties(DataDictionary dDictionary) |
DELETE | final public static int DELETE(Code) | | |
UNSET | final static int UNSET(Code) | | |
UPDATE | final public static int UPDATE(Code) | | |
baseTableRestrictionList | PredicateList baseTableRestrictionList(Code) | | Restriction as a PredicateList
|
bulkFetchTurnedOff | boolean bulkFetchTurnedOff(Code) | | |
updateOrDelete | int updateOrDelete(Code) | | |
LOJ_reorderable | public boolean LOJ_reorderable(int numTables) throws StandardException(Code) | | no LOJ reordering for base table.
|
addColsToList | public ResultColumnList addColsToList(ResultColumnList inputRcl, FormatableBitSet colsWeWant) throws StandardException(Code) | | Augment the RCL to include the columns in the FormatableBitSet.
If the column is already there, don't add it twice.
Column is added as a ResultColumn pointing to a
ColumnReference.
Parameters: inputRcl - The original list Parameters: colsWeWant - bit set of cols we want ResultColumnList the rcl exception: StandardException - Thrown on error |
bindExpressions | public void bindExpressions(FromList fromListParam) throws StandardException(Code) | | Bind the expressions in this FromBaseTable. This means binding the
sub-expressions, as well as figuring out what the return type is for
each expression.
Parameters: fromListParam - FromList to use/append to. exception: StandardException - Thrown on error |
bindNonVTITables | public ResultSetNode bindNonVTITables(DataDictionary dataDictionary, FromList fromListParam) throws StandardException(Code) | | Bind the table in this FromBaseTable.
This is where view resolution occurs
Parameters: dataDictionary - The DataDictionary to use for binding Parameters: fromListParam - FromList to use/append to. ResultSetNode The FromTable for the table or resolved view. exception: StandardException - Thrown on error |
bindResultColumns | public void bindResultColumns(FromList fromListParam) throws StandardException(Code) | | Bind the result columns of this ResultSetNode when there is no
base table to bind them to. This is useful for SELECT statements,
where the result columns get their types from the expressions that
live under them.
Parameters: fromListParam - FromList to use/append to. exception: StandardException - Thrown on error |
canBeOrdered | protected boolean canBeOrdered()(Code) | | Tell super-class that this Optimizable can be ordered
|
clearDependency | void clearDependency(Vector locations)(Code) | | Clear the bits from the dependency map when join nodes are flattened
Parameters: locations - vector of bit numbers to be cleared |
cursorTargetTable | protected boolean cursorTargetTable()(Code) | | Is this a table that has a FOR UPDATE
clause?
true/false |
disableBulkFetch | void disableBulkFetch()(Code) | | Turn off bulk fetch
|
doSpecialMaxScan | void doSpecialMaxScan()(Code) | | Do a special scan for max.
|
genProjectRestrict | protected ResultSetNode genProjectRestrict(int numTables) throws StandardException(Code) | | Put a ProjectRestrictNode on top of each FromTable in the FromList.
ColumnReferences must continue to point to the same ResultColumn, so
that ResultColumn must percolate up to the new PRN. However,
that ResultColumn will point to a new expression, a VirtualColumnNode,
which points to the FromTable and the ResultColumn that is the source for
the ColumnReference.
(The new PRN will have the original of the ResultColumnList and
the ResultColumns from that list. The FromTable will get shallow copies
of the ResultColumnList and its ResultColumns. ResultColumn.expression
will remain at the FromTable, with the PRN getting a new
VirtualColumnNode for each ResultColumn.expression.)
We then project out the non-referenced columns. If there are no referenced
columns, then the PRN's ResultColumnList will consist of a single ResultColumn
whose expression is 1.
Parameters: numTables - Number of tables in the DML Statement The generated ProjectRestrictNode atop the original FromTable. exception: StandardException - Thrown on error |
genResultColList | public ResultColumnList genResultColList() throws StandardException(Code) | | Build a ResultColumnList based on all of the columns in this FromBaseTable.
NOTE - Since the ResultColumnList generated is for the FromBaseTable,
ResultColumn.expression will be a BaseColumnNode.
ResultColumnList representing all referenced columns exception: StandardException - Thrown on error |
generateResultSet | public void generateResultSet(ExpressionClassBuilder acb, MethodBuilder mb) throws StandardException(Code) | | Generation on a FromBaseTable for a SELECT. This logic was separated
out so that it could be shared with PREPARE SELECT FILTER.
Parameters: acb - The ExpressionClassBuilder for the class being built Parameters: mb - The execute() method to be built exception: StandardException - Thrown on error |
getAllResultColumns | public ResultColumnList getAllResultColumns(TableName allTableName) throws StandardException(Code) | | Return a ResultColumnList with all of the columns in this table.
(Used in expanding '*'s.)
NOTE: Since this method is for expanding a "*" in the SELECT list,
ResultColumn.expression will be a ColumnReference.
Parameters: allTableName - The qualifier on the "*" ResultColumnList List of result columns from this table. exception: StandardException - Thrown on error |
getExistsBaseTable | boolean getExistsBaseTable()(Code) | | Does this FBT represent an EXISTS FBT.
Whether or not this FBT representsan EXISTS FBT. |
getExposedName | public String getExposedName()(Code) | | 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.
The exposed name of this table. |
getFinalCostEstimate | public CostEstimate getFinalCostEstimate()(Code) | | Get the final CostEstimate for this ResultSetNode.
The final CostEstimate for this ResultSetNode. |
getFromTableByName | protected FromTable getFromTableByName(String name, String schemaName, boolean exactMatch) throws StandardException(Code) | | Determine whether or not the specified name is an exposed name in
the current query block.
Parameters: name - The specified name to search for as an exposed name. Parameters: schemaName - Schema name, if non-null. Parameters: exactMatch - Whether or not we need an exact match on specified schema and tablenames or match on table id. The FromTable, if any, with the exposed name. exception: StandardException - Thrown on error |
getMatchingColumn | public ResultColumn getMatchingColumn(ColumnReference columnReference) throws StandardException(Code) | | Try to find a ResultColumn in the table represented by this FromBaseTable
that matches the name in the given ColumnReference.
Parameters: columnReference - The columnReference whose name we're lookingfor in the given table. A ResultColumn whose expression is the ColumnNodethat matches the ColumnReference.Returns null if there is no match. exception: StandardException - Thrown on error |
getTableNameField | public TableName getTableNameField()(Code) | | Return the table name for this table.
The table name for this table. |
init | public void init(Object arg1, Object arg2, Object arg3, Object arg4)(Code) | | Initializer for a table in a FROM list. Parameters are as follows:
- tableName The name of the table
- correlationName The correlation name
- derivedRCL The derived column list
- tableProperties The Properties list associated with the table.
- OR -
- tableName The name of the table
- correlationName The correlation name
- updateOrDelete Table is being updated/deleted from.
- derivedRCL The derived column list
|
isNotExists | public boolean isNotExists()(Code) | | Return whether or not this is actually a EBT for NOT EXISTS.
|
isOneRowResultSet | public boolean isOneRowResultSet() throws StandardException(Code) | | Return whether or not the underlying ResultSet tree will return
a single row, at most. This method is intended to be used during
generation, after the "truly" best conglomerate has been chosen.
This is important for join nodes where we can save the extra next
on the right side if we know that it will return at most 1 row.
Whether or not the underlying ResultSet tree will return a single row. exception: StandardException - Thrown on error |
isOrderedOn | boolean isOrderedOn(ColumnReference[] crs, boolean permuteOrdering, Vector fbtVector) throws StandardException(Code) | | Return whether or not the underlying ResultSet tree
is ordered on the specified columns.
RESOLVE - This method currently only considers the outermost table
of the query block.
RESOLVE - We do not currently push method calls down, so we don't
worry about whether the equals comparisons can be against a variant method.
Parameters: crs - The specified ColumnReference[] Parameters: permuteOrdering - Whether or not the order of the CRs in the array can be permuted Parameters: fbtVector - Vector that is to be filled with the FromBaseTable Whether the underlying ResultSet treeis ordered on the specified column. exception: StandardException - Thrown on error |
isPossibleDistinctScan | boolean isPossibleDistinctScan(Set distinctColumns)(Code) | | Is it possible to do a distinct scan on this ResultSet tree.
(See SelectNode for the criteria.)
Parameters: distinctColumns - the set of distinct columns Whether or not it is possible to do a distinct scan on this ResultSet tree. |
markAsCursorTargetTable | public boolean markAsCursorTargetTable()(Code) | | Mark this ResultSetNode as the target table of an updatable
cursor.
|
markForDistinctScan | void markForDistinctScan()(Code) | | Mark the underlying scan as a distinct scan.
|
markOrderingDependent | void markOrderingDependent()(Code) | | Notify the underlying result set tree that the result is
ordering dependent. (For example, no bulk fetch on an index
if under an IndexRowToBaseRow.)
|
markUpdated | void markUpdated(ResultColumnList updateColumns)(Code) | | Mark as updatable all the columns in the result column list of this
FromBaseTable that match the columns in the given update column list.
Parameters: updateColumns - A ResultColumnList representing the columnsto be updated. |
preprocess | public ResultSetNode preprocess(int numTables, GroupByList gbl, FromList fromList) throws StandardException(Code) | | Preprocess a ResultSetNode - this currently means:
o Generating a referenced table map for each ResultSetNode.
o Putting the WHERE and HAVING clauses in conjunctive normal form (CNF).
o Converting the WHERE and HAVING clauses into PredicateLists and
classifying them.
o Ensuring that a ProjectRestrictNode is generated on top of every
FromBaseTable and generated in place of every FromSubquery.
o Pushing single table predicates down to the new ProjectRestrictNodes.
Parameters: numTables - The number of tables in the DML Statement Parameters: gbl - The group by list, if any Parameters: fromList - The from list, if any ResultSetNode at top of preprocessed tree. exception: StandardException - Thrown on error |
referencesSessionSchema | public boolean referencesSessionSchema() throws StandardException(Code) | | Return true if the node references SESSION schema tables (temporary or permanent)
true if references SESSION schema tables, else false exception: StandardException - Thrown on error |
referencesTarget | public boolean referencesTarget(String name, boolean baseTable) throws StandardException(Code) | | Search to see if a query references the specifed table name.
Parameters: name - Table name (String) to search for. Parameters: baseTable - Whether or not name is for a base table true if found, else false exception: StandardException - Thrown on error |
setExistsBaseTable | void setExistsBaseTable(boolean existsBaseTable, JBitSet dependencyMap, boolean isNotExists)(Code) | | Set whether or not this FBT represents an
EXISTS FBT.
Parameters: existsBaseTable - Whether or not an EXISTS FBT. Parameters: dependencyMap - The dependency map for the EXISTS FBT. Parameters: isNotExists - Whether or not for NOT EXISTS, more specifically. |
setRefActionInfo | public void setRefActionInfo(long fkIndexConglomId, int[] fkColArray, String parentResultSetId, boolean dependentScan)(Code) | | set the Information gathered from the parent table that is
required to peform a referential action on dependent table.
|
setTableProperties | public void setTableProperties(Properties tableProperties)(Code) | | Set the table properties for this table.
Parameters: tableProperties - The new table properties. |
supersetOfUniqueIndex | protected boolean supersetOfUniqueIndex(boolean[] eqCols) throws StandardException(Code) | | Determine whether or not the columns marked as true in
the passed in array are a superset of any unique index
on this table.
This is useful for subquery flattening and distinct elimination
based on a uniqueness condition.
Parameters: eqCols - The columns to consider Whether or not the columns marked as true are a superset |
supersetOfUniqueIndex | protected boolean supersetOfUniqueIndex(JBitSet[] tableColMap) throws StandardException(Code) | | Determine whether or not the columns marked as true in
the passed in join table matrix are a superset of any single column unique index
on this table.
This is useful for distinct elimination
based on a uniqueness condition.
Parameters: tableColMap - The columns to consider Whether or not the columns marked as true for one at leastone table are a superset |
toString | public String toString()(Code) | | Convert this object to a String. See comments in QueryTreeNode.java
for how this should be done for tree printing.
This object as a String |
updateTargetLockMode | public int updateTargetLockMode()(Code) | | Get the lock mode for the target table heap of an update or delete
statement. It is not always MODE_RECORD. We want the lock on the
heap to be consistent with optimizer and eventually system's decision.
This is to avoid deadlock (beetle 4318). During update/delete's
execution, it will first use this lock mode we return to lock heap to
open a RowChanger, then use the lock mode that is the optimizer and
system's combined decision to open the actual source conglomerate.
We've got to make sure they are consistent. This is the lock chart (for
detail reason, see comments below):
BEST ACCESS PATH LOCK MODE ON HEAP
---------------------- -----------------------------------------
index row lock
heap row lock if READ_COMMITTED,
REPEATBLE_READ, or READ_UNCOMMITTED &&
not specified table lock otherwise,
use optimizer decided best acess
path's lock mode
The lock mode |
Methods inherited from org.apache.derby.impl.sql.compile.FromTable | public boolean LOJ_reorderable(int numTables) throws StandardException(Code)(Java Doc) protected void assignCostEstimate(CostEstimate newCostEstimate)(Code)(Java Doc) protected boolean canBeOrdered()(Code)(Java Doc) public boolean considerSortAvoidancePath()(Code)(Java Doc) public int convertAbsoluteToRelativeColumnPosition(int absolutePosition)(Code)(Java Doc) protected boolean cursorTargetTable()(Code)(Java Doc) void decrementLevel(int decrement)(Code)(Java Doc) public CostEstimate estimateCost(OptimizablePredicateList predList, ConglomerateDescriptor cd, CostEstimate outerCost, Optimizer optimizer, RowOrdering rowOrdering) throws StandardException(Code)(Java Doc) public boolean feasibleJoinStrategy(OptimizablePredicateList predList, Optimizer optimizer) throws StandardException(Code)(Java Doc) public void fillInReferencedTableMap(JBitSet passedMap)(Code)(Java Doc) public FromList flatten(ResultColumnList rcl, PredicateList outerPList, SubqueryList sql, GroupByList gbl) throws StandardException(Code)(Java Doc) public boolean forUpdate()(Code)(Java Doc) public String getBaseTableName()(Code)(Java Doc) public AccessPath getBestAccessPath()(Code)(Java Doc) public AccessPath getBestSortAvoidancePath()(Code)(Java Doc) public String getCorrelationName()(Code)(Java Doc) protected CostEstimate getCostEstimate(Optimizer optimizer)(Code)(Java Doc) public AccessPath getCurrentAccessPath()(Code)(Java Doc) public String getExposedName() throws StandardException(Code)(Java Doc) public CostEstimate getFinalCostEstimate() throws StandardException(Code)(Java Doc) protected FromTable getFromTableByName(String name, String schemaName, boolean exactMatch) throws StandardException(Code)(Java Doc) public int getLevel()(Code)(Java Doc) public String getName() throws StandardException(Code)(Java Doc) public int getNumColumnsReturned()(Code)(Java Doc) public TableName getOrigTableName()(Code)(Java Doc) public Properties getProperties()(Code)(Java Doc) public ResultColumnList getResultColumnsForList(TableName allTableName, ResultColumnList inputRcl, TableName tableName) throws StandardException(Code)(Java Doc) public SchemaDescriptor getSchemaDescriptor() throws StandardException(Code)(Java Doc) public SchemaDescriptor getSchemaDescriptor(TableName tableName) throws StandardException(Code)(Java Doc) protected CostEstimate getScratchCostEstimate(Optimizer optimizer)(Code)(Java Doc) public TableDescriptor getTableDescriptor()(Code)(Java Doc) public TableName getTableName() throws StandardException(Code)(Java Doc) public int getTableNumber()(Code)(Java Doc) public AccessPath getTrulyTheBestAccessPath()(Code)(Java Doc) String getUserSpecifiedJoinStrategy()(Code)(Java Doc) public boolean hasTableNumber()(Code)(Java Doc) public int[] hashKeyColumns()(Code)(Java Doc) public void init(Object correlationName, Object tableProperties)(Code)(Java Doc) public void initAccessPaths(Optimizer optimizer)(Code)(Java Doc) public int initialCapacity()(Code)(Java Doc) public boolean isBaseTable()(Code)(Java Doc) public boolean isCoveringIndex(ConglomerateDescriptor cd) throws StandardException(Code)(Java Doc) public boolean isFlattenableJoinNode()(Code)(Java Doc) public boolean isMaterializable() throws StandardException(Code)(Java Doc) public boolean isOneRowScan() throws StandardException(Code)(Java Doc) public boolean isTargetTable()(Code)(Java Doc) public boolean legalJoinOrder(JBitSet assignedTableMap)(Code)(Java Doc) public float loadFactor()(Code)(Java Doc) protected void markUpdatableByCursor(Vector updateColumns)(Code)(Java Doc) public int maxCapacity(JoinStrategy joinStrategy, int maxMemoryPerTable) throws StandardException(Code)(Java Doc) public boolean memoryUsageOK(double rowCount, int maxMemoryPerTable) throws StandardException(Code)(Java Doc) public Optimizable modifyAccessPath(JBitSet outerTables) throws StandardException(Code)(Java Doc) public boolean needsSpecialRCLBinding()(Code)(Java Doc) public boolean nextAccessPath(Optimizer optimizer, OptimizablePredicateList predList, RowOrdering rowOrdering) throws StandardException(Code)(Java Doc) public CostEstimate optimizeIt(Optimizer optimizer, OptimizablePredicateList predList, CostEstimate outerCost, RowOrdering rowOrdering) throws StandardException(Code)(Java Doc) void optimizeSubqueries(DataDictionary dd, double rowCount) throws StandardException(Code)(Java Doc) public void pullOptPredicates(OptimizablePredicateList optimizablePredicates) throws StandardException(Code)(Java Doc) void pushExpressions(PredicateList predicateList) throws StandardException(Code)(Java Doc) public boolean pushOptPredicate(OptimizablePredicate optimizablePredicate) throws StandardException(Code)(Java Doc) public void rememberAsBest(int planType, Optimizer optimizer) throws StandardException(Code)(Java Doc) public void rememberJoinStrategyAsBest(AccessPath ap)(Code)(Java Doc) public void rememberSortAvoidancePath()(Code)(Java Doc) protected void resetJoinStrategies(Optimizer optimizer)(Code)(Java Doc) protected void setCostEstimate(CostEstimate newCostEstimate)(Code)(Java Doc) public void setHashKeyColumns(int[] columnNumbers)(Code)(Java Doc) public void setLevel(int level)(Code)(Java Doc) public void setOrigTableName(TableName tableName)(Code)(Java Doc) public void setProperties(Properties tableProperties)(Code)(Java Doc) public void setTableNumber(int tableNumber)(Code)(Java Doc) public void startOptimizing(Optimizer optimizer, RowOrdering rowOrdering)(Code)(Java Doc) public boolean supportsMultipleInstantiations()(Code)(Java Doc) protected void tellRowOrderingAboutConstantColumns(RowOrdering rowOrdering, OptimizablePredicateList predList)(Code)(Java Doc) public String toString()(Code)(Java Doc) public FromTable transformOuterJoins(ValueNode predicateTree, int numTables) throws StandardException(Code)(Java Doc) public double uniqueJoin(OptimizablePredicateList predList) throws StandardException(Code)(Java Doc) public void updateBestPlanMap(short action, Object planKey) throws StandardException(Code)(Java Doc) public void verifyProperties(DataDictionary dDictionary) throws StandardException(Code)(Java Doc)
|
Methods inherited from org.apache.derby.impl.sql.compile.ResultSetNode | public JBitSet LOJgetReferencedTables(int numTables) throws StandardException(Code)(Java Doc) public Visitable accept(Visitor v) throws StandardException(Code)(Java Doc) public ResultSetNode addNewPredicate(Predicate predicate) throws StandardException(Code)(Java Doc) public void assignResultSetNumber() throws StandardException(Code)(Java Doc) public void bindExpressions(FromList fromListParam) throws StandardException(Code)(Java Doc) public void bindExpressionsWithTables(FromList fromListParam) throws StandardException(Code)(Java Doc) public ResultSetNode bindNonVTITables(DataDictionary dataDictionary, FromList fromListParam) throws StandardException(Code)(Java Doc) public void bindResultColumns(FromList fromListParam) throws StandardException(Code)(Java Doc) public void bindResultColumns(TableDescriptor targetTableDescriptor, FromVTI targetVTI, ResultColumnList targetColumnList, DMLStatementNode statement, FromList fromListParam) throws StandardException(Code)(Java Doc) public void bindTargetExpressions(FromList fromListParam) throws StandardException(Code)(Java Doc) public void bindUntypedNullsToResultColumns(ResultColumnList rcl) throws StandardException(Code)(Java Doc) public ResultSetNode bindVTITables(FromList fromListParam) throws StandardException(Code)(Java Doc) public ResultSetNode changeAccessPath() throws StandardException(Code)(Java Doc) boolean columnTypesAndLengthsMatch() throws StandardException(Code)(Java Doc) public ResultSetNode considerMaterialization(JBitSet outerTables) throws StandardException(Code)(Java Doc) abstract void decrementLevel(int decrement)(Code)(Java Doc) public void disablePrivilegeCollection()(Code)(Java Doc) public ResultSetNode enhanceRCLForInsert(int numTargetColumns, int[] colMap, DataDictionary dataDictionary, TableDescriptor targetTD, FromVTI targetVTI) throws StandardException(Code)(Java Doc) public ResultSetNode ensurePredicateList(int numTables) throws StandardException(Code)(Java Doc) public void fillInReferencedTableMap(JBitSet passedMap)(Code)(Java Doc) public boolean flattenableInFromSubquery(FromList fromList)(Code)(Java Doc) ResultColumn genNewRCForInsert(TableDescriptor targetTD, FromVTI targetVTI, int columnNumber, DataDictionary dataDictionary) throws StandardException(Code)(Java Doc) public NormalizeResultSetNode genNormalizeResultSetNode(ResultSetNode normalizeChild, boolean forUpdate) throws StandardException(Code)(Java Doc) public ResultSetNode genProjectRestrict() throws StandardException(Code)(Java Doc) protected ResultSetNode genProjectRestrict(int numTables) throws StandardException(Code)(Java Doc) ResultSetNode genProjectRestrictForReordering() throws StandardException(Code)(Java Doc) public void generateNormalizationResultSet(ActivationClassBuilder acb, MethodBuilder mb, int resultSetNumber, ResultDescription resultDescription) throws StandardException(Code)(Java Doc) public void generateResultSet(ExpressionClassBuilder acb, MethodBuilder mb) throws StandardException(Code)(Java Doc) public ResultColumnList getAllResultColumns(TableName allTableName) throws StandardException(Code)(Java Doc) public CostEstimate getCostEstimate()(Code)(Java Doc) FromTable getCursorTargetTable()(Code)(Java Doc) public CostEstimate getFinalCostEstimate() throws StandardException(Code)(Java Doc) public FromList getFromList() throws StandardException(Code)(Java Doc) protected FromTable getFromTableByName(String name, String schemaName, boolean exactMatch) throws StandardException(Code)(Java Doc) public ResultColumn getMatchingColumn(ColumnReference columnReference) throws StandardException(Code)(Java Doc) protected CostEstimate getNewCostEstimate() throws StandardException(Code)(Java Doc) protected Optimizer getOptimizer(OptimizableList optList, OptimizablePredicateList predList, DataDictionary dataDictionary, RequiredRowOrdering requiredRowOrdering) throws StandardException(Code)(Java Doc) protected OptimizerImpl getOptimizerImpl()(Code)(Java Doc) public JBitSet getReferencedTableMap()(Code)(Java Doc) public ResultColumnList getResultColumns()(Code)(Java Doc) public int getResultSetNumber()(Code)(Java Doc) public boolean isNotExists()(Code)(Java Doc) public boolean isOneRowResultSet() throws StandardException(Code)(Java Doc) boolean isOrderedOn(ColumnReference[] crs, boolean permuteOrdering, Vector fbtVector) throws StandardException(Code)(Java Doc) boolean isPossibleDistinctScan(Set distinctColumns)(Code)(Java Doc) boolean isUpdatableCursor(DataDictionary dd) throws StandardException(Code)(Java Doc) public ResultDescription makeResultDescription()(Code)(Java Doc) ResultColumnDescriptor[] makeResultDescriptors(ExecutionContext ec)(Code)(Java Doc) public boolean markAsCursorTargetTable()(Code)(Java Doc) void markForDistinctScan()(Code)(Java Doc) void markOrderingDependent()(Code)(Java Doc) public void markStatementResultSet()(Code)(Java Doc) public ResultSetNode modifyAccessPaths() throws StandardException(Code)(Java Doc) public ResultSetNode modifyAccessPaths(PredicateList predList) throws StandardException(Code)(Java Doc) void notCursorTargetTable()(Code)(Java Doc) void notFlattenableJoin()(Code)(Java Doc) final protected static int numDistinctAggregates(Vector aggregateVector)(Code)(Java Doc) public ResultSetNode optimize(DataDictionary dataDictionary, PredicateList predicates, double outerRows) throws StandardException(Code)(Java Doc) public ValueNode parseDefault(String defaultText) throws StandardException(Code)(Java Doc) public boolean performMaterialization(JBitSet outerTables) throws StandardException(Code)(Java Doc) public ResultSetNode preprocess(int numTables, GroupByList gbl, FromList fromList) throws StandardException(Code)(Java Doc) public void printSubNodes(int depth)(Code)(Java Doc) void projectResultColumns() throws StandardException(Code)(Java Doc) void pushOrderByList(OrderByList orderByList)(Code)(Java Doc) public boolean referencesTarget(String name, boolean baseTable) throws StandardException(Code)(Java Doc) public void rejectParameters() throws StandardException(Code)(Java Doc) public void rejectXMLValues() throws StandardException(Code)(Java Doc) public void renameGeneratedResultNames() throws StandardException(Code)(Java Doc) void replaceDefaults(TableDescriptor ttd, ResultColumnList tcl) throws StandardException(Code)(Java Doc) boolean returnsAtMostOneRow()(Code)(Java Doc) public void setInsertSource()(Code)(Java Doc) public void setReferencedTableMap(JBitSet newRTM)(Code)(Java Doc) public void setResultColumns(ResultColumnList newRCL)(Code)(Java Doc) public void setResultToBooleanTrueNode(boolean onlyConvertAlls) throws StandardException(Code)(Java Doc) void setTableConstructorTypes(ResultColumnList typeColumns) throws StandardException(Code)(Java Doc) boolean subqueryReferencesTarget(String name, boolean baseTable) throws StandardException(Code)(Java Doc) public String toString()(Code)(Java Doc) public int updateTargetLockMode()(Code)(Java Doc) public void verifySelectStarSubquery(FromList outerFromList, int subqueryType) throws StandardException(Code)(Java Doc)
|
Methods inherited from org.apache.derby.impl.sql.compile.QueryTreeNode | public Visitable accept(Visitor v) throws StandardException(Code)(Java Doc) public QueryTreeNode bind() throws StandardException(Code)(Java Doc) public DataValueDescriptor convertDefaultNode(DataTypeDescriptor typeDescriptor) throws StandardException(Code)(Java Doc) protected static void debugFlush()(Code)(Java Doc) public static void debugPrint(String outputString)(Code)(Java Doc) public void disablePrivilegeCollection()(Code)(Java Doc) public String executeSchemaName()(Code)(Java Doc) public String executeStatementName()(Code)(Java Doc) public static String formatNodeString(String nodeString, int depth)(Code)(Java Doc) public boolean foundString(String[] list, String search)(Code)(Java Doc) public GeneratedClass generate(ByteArray ignored) throws StandardException(Code)(Java Doc) protected void generate(ActivationClassBuilder acb, MethodBuilder mb) throws StandardException(Code)(Java Doc) void generateAuthorizeCheck(ActivationClassBuilder acb, MethodBuilder mb, int sqlOperation)(Code)(Java Doc) public int getBeginOffset()(Code)(Java Doc) final protected ClassFactory getClassFactory()(Code)(Java Doc) final protected CompilerContext getCompilerContext()(Code)(Java Doc) final public ContextManager getContextManager()(Code)(Java Doc) public Object getCursorInfo() throws StandardException(Code)(Java Doc) final public DataDictionary getDataDictionary()(Code)(Java Doc) final public DependencyManager getDependencyManager()(Code)(Java Doc) public int getEndOffset()(Code)(Java Doc) final public ExecutionFactory getExecutionFactory()(Code)(Java Doc) final public GenericConstantActionFactory getGenericConstantActionFactory()(Code)(Java Doc) protected int getIntProperty(String value, String key) throws StandardException(Code)(Java Doc) final protected LanguageConnectionContext getLanguageConnectionContext()(Code)(Java Doc) final public NodeFactory getNodeFactory()(Code)(Java Doc) protected int getNodeType()(Code)(Java Doc) public ConstantNode getNullNode(TypeId typeId, ContextManager cm) throws StandardException(Code)(Java Doc) public DataTypeDescriptor[] getParameterTypes() throws StandardException(Code)(Java Doc) public long getRowEstimate()(Code)(Java Doc) public String getSPSName()(Code)(Java Doc) final SchemaDescriptor getSchemaDescriptor(String schemaName) throws StandardException(Code)(Java Doc) final SchemaDescriptor getSchemaDescriptor(String schemaName, boolean raiseError) throws StandardException(Code)(Java Doc) protected int getStatementType()(Code)(Java Doc) final protected TableDescriptor getTableDescriptor(String tableName, SchemaDescriptor schema) throws StandardException(Code)(Java Doc) final protected TypeCompiler getTypeCompiler(TypeId typeId)(Code)(Java Doc) public void init(Object arg1) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2, Object arg3) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2, Object arg3, Object arg4) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13) throws StandardException(Code)(Java Doc) public void init(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14) throws StandardException(Code)(Java Doc) public boolean isAtomic() throws StandardException(Code)(Java Doc) protected boolean isInstanceOf(int nodeType)(Code)(Java Doc) public boolean isPrivilegeCollectionRequired()(Code)(Java Doc) final boolean isSessionSchema(SchemaDescriptor sd)(Code)(Java Doc) final boolean isSessionSchema(String schemaName)(Code)(Java Doc) public ConstantAction makeConstantAction() throws StandardException(Code)(Java Doc) public ResultDescription makeResultDescription() throws StandardException(Code)(Java Doc) public TableName makeTableName(String schemaName, String flatName) throws StandardException(Code)(Java Doc) public boolean needsSavepoint()(Code)(Java Doc) protected String nodeHeader()(Code)(Java Doc) public QueryTreeNode optimize() throws StandardException(Code)(Java Doc) public static QueryTreeNode parseQueryText(CompilerContext compilerContext, String queryText, Object[] paramDefaults, LanguageConnectionContext lcc) throws StandardException(Code)(Java Doc) public void printLabel(int depth, String label)(Code)(Java Doc) public void printSubNodes(int depth)(Code)(Java Doc) public boolean referencesSessionSchema() throws StandardException(Code)(Java Doc) public TableName resolveTableToSynonym(TableName tabName) throws StandardException(Code)(Java Doc) public void setBeginOffset(int beginOffset)(Code)(Java Doc) public void setContextManager(ContextManager cm)(Code)(Java Doc) public void setEndOffset(int endOffset)(Code)(Java Doc) public void setNodeType(int nodeType)(Code)(Java Doc) public void setRefActionInfo(long fkIndexConglomId, int[] fkColArray, String parentResultSetId, boolean dependentScan)(Code)(Java Doc) public String toString()(Code)(Java Doc) public void treePrint()(Code)(Java Doc) public void treePrint(int depth)(Code)(Java Doc) String verifyClassExist(String javaClassName, boolean convertCase) throws StandardException(Code)(Java Doc)
|
|
|