Optimizable
, Visitable
, VTIEnvironment
class FromVTI extends FromTable implements VTIEnvironment
ResultSetNode.QueryExpressionClauses
Modifier and Type | Field | Description |
---|---|---|
private java.util.HashMap<java.lang.Integer,FromTable> |
argSources |
|
private FormatableHashtable |
compileTimeConstants |
|
private boolean |
controlsDeferral |
|
(package private) JBitSet |
correlationMap |
|
(package private) JBitSet |
dependencyMap |
|
(package private) double |
estimatedCost |
|
(package private) double |
estimatedRowCount |
|
(package private) TableName |
exposedName |
|
private boolean |
implementsPushable |
|
(package private) boolean |
implementsVTICosting |
|
(package private) boolean |
isDerbyStyleTableFunction |
|
(package private) boolean |
isRestrictedTableFunction |
|
(package private) boolean |
isTarget |
|
(package private) boolean |
materializable |
|
(package private) MethodCallNode |
methodCall |
|
private JavaValueNode[] |
methodParms |
|
protected int |
numVTICols |
|
(package private) boolean |
optimized |
|
private java.util.ArrayList<FromList> |
outerFromLists |
|
private java.lang.String[] |
projectedColumnNames |
|
private java.sql.PreparedStatement |
ps |
|
private PredicateList |
restrictionList |
|
private int |
resultSetType |
|
(package private) java.sql.ResultSet |
rs |
|
(package private) SubqueryList |
subqueryList |
|
(package private) boolean |
supportsMultipleInstantiations |
|
protected boolean |
version2 |
|
(package private) boolean |
vtiCosted |
|
private Restriction |
vtiRestriction |
ADD_PLAN, bestAccessPath, bestCostEstimate, bestSortAvoidancePath, correlationName, corrTableName, currentAccessPath, hashKeyColumns, initialCapacity, level, LOAD_PLAN, loadFactor, maxCapacity, origTableName, REMOVE_PLAN, tableNumber, tableProperties, trulyTheBestAccessPath, userSpecifiedJoinStrategy
AUTOINCREMENT_CREATE_MODIFY, AUTOINCREMENT_CYCLE, AUTOINCREMENT_INC_INDEX, AUTOINCREMENT_IS_AUTOINCREMENT_INDEX, AUTOINCREMENT_START_INDEX
Constructor | Description |
---|---|
FromVTI(MethodCallNode invocation,
java.lang.String correlationName,
ResultColumnList derivedRCL,
java.util.Properties tableProperties,
ContextManager cm) |
Constructor.
|
FromVTI(MethodCallNode invocation,
java.lang.String correlationName,
ResultColumnList derivedRCL,
java.util.Properties tableProperties,
TableName exposedTableName,
ContextManager cm) |
Constructor.
|
Modifier and Type | Method | Description |
---|---|---|
(package private) void |
acceptChildren(Visitor v) |
Accept the visitor for all visitable children of this node.
|
void |
addOuterFromList(FromList fromList) |
Add a FromList to the collection of FromLists which bindExpressions() checks
when vetting VTI arguments which reference columns in other tables.
|
(package private) void |
adjustForSortElimination() |
Notify the underlying result set tree that the optimizer has chosen
to "eliminate" a sort.
|
(package private) void |
bindExpressions(FromList fromListParam) |
Bind the expressions in this VTI.
|
(package private) ResultSetNode |
bindNonVTITables(DataDictionary dataDictionary,
FromList fromListParam) |
Bind the non VTI tables in this ResultSetNode.
|
(package private) ResultSetNode |
bindVTITables(FromList fromListParam) |
Bind this VTI that appears in the FROM list.
|
private boolean |
canBePushedDown(Predicate predicate) |
Return true if the predicate can be pushed into a RestrictedVTI
|
private FromTable |
columnInFromList(FromList fromList,
ColumnReference ref) |
If the referenced column appears in the indicated FROM list, then
return the table it appears in.
|
private java.util.HashMap<java.lang.String,java.lang.String> |
computeProjection() |
Fills in the array of projected column names suitable for handing to
RestrictedVTI.initScan().
|
(package private) void |
computeProjectionAndRestriction(PredicateList parentPredicates) |
Compute the projection and restriction to be pushed to the external
table function if it is a RestrictedVTI.
|
private void |
computeRestriction(PredicateList parentPredicates,
java.util.HashMap<java.lang.String,java.lang.String> columnNameMap) |
Fills in the restriction to be handed to a RestrictedVTI at run-time.
|
private void |
constructorMinion(MethodCallNode invocation,
ResultColumnList derivedRCL,
TableName exposedTableName) |
|
private void |
createResultColumnsForTableFunction(TypeDescriptor td) |
Add result columns for a Derby-style Table Function
|
CostEstimate |
estimateCost(OptimizablePredicateList predList,
ConglomerateDescriptor cd,
CostEstimate outerCost,
Optimizer optimizer,
RowOrdering rowOrdering) |
Estimate the cost of scanning this Optimizable using the given
predicate list with the given conglomerate.
|
private int |
flipOperator(int rawOperator) |
Flip the sense of a comparison
|
(package private) void |
generate(ActivationClassBuilder acb,
MethodBuilder mb) |
Generation on a FromVTI creates a wrapper around
the user's java.sql.ResultSet
|
private void |
generateConstructor(ActivationClassBuilder acb,
MethodBuilder mb,
boolean reuseablePs) |
|
protected ResultSetNode |
genProjectRestrict(int numTables) |
Put a ProjectRestrictNode on top of each FromTable in the FromList.
|
private ResultColumnList |
genResultColList(TableDescriptor td) |
|
(package private) ResultColumnList |
getAllResultColumns(TableName allTableName) |
Expand a "*" into a ResultColumnList with all of the
result columns from the subquery.
|
DeferModification |
getDeferralControl() |
Get the DeferModification interface associated with this VTI
|
(package private) 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.
|
TableName |
getExposedTableName() |
|
(package private) ResultColumn |
getMatchingColumn(ColumnReference columnReference) |
Try to find a ResultColumn in the table represented by this FromBaseTable
that matches the name in the given ColumnReference.
|
(package private) MethodCallNode |
getMethodCall() |
Return the constructor or static method invoked from this node
|
private java.lang.Object |
getNewInstance() |
|
(package private) <T extends Visitable> |
getNodesFromParameters(java.lang.Class<T> nodeClass) |
Get all of the nodes of the specified class
from the parameters to this VTI.
|
java.lang.String |
getOriginalSQL() |
Return the SQL text of the original SQL statement.
|
(package private) java.sql.ResultSetMetaData |
getResultSetMetaData() |
Get the ResultSetMetaData for the class/object.
|
int |
getResultSetType() |
|
private int |
getScanArguments(ActivationClassBuilder acb,
MethodBuilder mb) |
|
java.lang.Object |
getSharedState(java.lang.String key) |
Get an object associated with a key from set of objects maintained with the statement plan.
|
private UUID |
getSpecialTriggerVTITableName(LanguageConnectionContext lcc,
java.lang.String className) |
Check and see if we have a special trigger VTI.
|
int |
getStatementIsolationLevel() |
Get the specific JDBC isolation of the statement.
|
private VTICosting |
getVTICosting() |
Get the VTICosting implementation for this optimizable VTI.
|
(package private) java.lang.String |
getVTIName() |
|
private Restriction |
iAmConfused(ValueNode clause) |
This is a handy place to put instrumentation for tracing trees which we don't understand
|
private boolean |
implementsDerbyStyleVTICosting(java.lang.String className) |
Return true if this Derby Style Table Function implements the VTICosting
interface.
|
boolean |
isCompileTime() |
Return true if this instance of the Table Function has been created for compilation,
false if it is for runtime execution.
|
(package private) boolean |
isConstructor() |
Return true if this VTI is a constructor.
|
boolean |
isDerbyStyleTableFunction() |
Return true if this is a user-defined table function
|
boolean |
isMaterializable() |
Tell whether this Optimizable is materializable
|
(package private) boolean |
isUpdatableCursor() |
|
boolean |
legalJoinOrder(JBitSet assignedTableMap) |
Can this Optimizable appear at the current location in the join order.
|
private java.lang.Class<?> |
lookupClass(java.lang.String className) |
Lookup the class that holds the VTI.
|
private Restriction |
makeIsNullRestriction(IsNullNode clause,
java.util.HashMap<java.lang.String,java.lang.String> columnNameMap) |
Makes an IS NULL comparison of a column
in the VTI.
|
private Restriction |
makeLeafRestriction(BinaryRelationalOperatorNode clause,
java.util.HashMap<java.lang.String,java.lang.String> columnNameMap) |
Makes a Restriction out of a comparison between a constant and a column
in the VTI.
|
private Restriction |
makeRestriction(ValueNode clause,
java.util.HashMap<java.lang.String,java.lang.String> columnNameMap) |
Turn a compile-time WHERE clause fragment into a run-time
Restriction.
|
private int |
mapOperator(int rawOperator) |
Map internal operator constants to user-visible ones
|
Optimizable |
modifyAccessPath(JBitSet outerTables) |
Modify the access path for this Optimizable, as necessary.
|
(package private) boolean |
needsSpecialRCLBinding() |
|
(package private) boolean |
performMaterialization(JBitSet outerTables) |
Return whether or not to materialize this ResultSet tree.
|
(package private) ResultSetNode |
preprocess(int numTables,
GroupByList gbl,
FromList fromList) |
Preprocess a ResultSetNode - this currently means:
o Generating a referenced table map for each ResultSetNode.
|
(package private) void |
printSubNodes(int depth) |
Prints the sub-nodes of this object.
|
boolean |
pushOptPredicate(OptimizablePredicate optimizablePredicate) |
Push an OptimizablePredicate down, if this node accepts it.
|
(package private) boolean |
referencesTarget(java.lang.String name,
boolean baseTable) |
Search to see if a query references the specifed table name.
|
private void |
remapBaseTableColumns() |
Remap the column references in vti arguments.
|
void |
setSharedState(java.lang.String key,
java.io.Serializable value) |
Saves an object associated with a key that will be maintained
for the lifetime of the statement plan.
|
(package private) void |
setTarget() |
Mark this VTI as the target of a delete or update.
|
private java.lang.Object |
squeezeConstantValue(ValueNode valueNode) |
Get the constant or parameter reference out of a comparand.
|
private int |
storeObjectInPS(ActivationClassBuilder acb,
java.lang.Object obj) |
Store an object in the prepared statement.
|
boolean |
supportsMultipleInstantiations() |
Tell whether this Optimizable can be instantiated multiple times
|
java.lang.String |
toString() |
Convert this object to a String.
|
assignCostEstimate, canBeOrdered, columnsAreUpdatable, considerSortAvoidancePath, convertAbsoluteToRelativeColumnPosition, cursorTargetTable, decrementLevel, feasibleJoinStrategy, fillInReferencedTableMap, flatten, forUpdate, getBaseTableName, getBestAccessPath, getBestSortAvoidancePath, getCorrelationName, getCostEstimate, getCurrentAccessPath, getFinalCostEstimate, getFromTableByName, getLevel, getMergeTableID, getName, getNumColumnsReturned, getOrigTableName, getProperties, getResultColumnsForList, getSchemaDescriptor, getSchemaDescriptor, getScratchCostEstimate, getTableDescriptor, getTableName, getTableNumber, getTrulyTheBestAccessPath, getUserSpecifiedJoinStrategy, hashKeyColumns, hasLargeObjectColumns, hasTableNumber, initAccessPaths, initialCapacity, isBaseTable, isCoveringIndex, isFlattenableJoinNode, isJoinColumnForRightOuterJoin, isOneRowScan, isTargetTable, loadFactor, LOJ_reorderable, markUpdatableByCursor, maxCapacity, memoryUsageOK, nextAccessPath, optimizeIt, optimizeSubqueries, pullOptPredicates, pushExpressions, rememberAsBest, rememberJoinStrategyAsBest, rememberSortAvoidancePath, resetJoinStrategies, setCostEstimateCost, setHashKeyColumns, setLevel, setMergeTableID, setOrigTableName, setProperties, setTableNumber, startOptimizing, tellRowOrderingAboutConstantColumns, transformOuterJoins, uniqueJoin, updateBestPlanMap, verifyProperties
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getDataDictionary, getOptimizerTracer, getReferencedTableMap, getResultSetNumber, optimizerTracingIsOn
accept, addTag, addUDTUsagePriv, addUDTUsagePriv, bindOffsetFetch, bindRowMultiSet, bindUserCatalogType, bindUserType, checkReliability, checkReliability, convertDefaultNode, copyTagsFrom, createTypeDependency, debugFlush, debugPrint, disablePrivilegeCollection, formatNodeString, generateAuthorizeCheck, getBeginOffset, getClassFactory, getCompilerContext, getContext, getContextManager, getDataDictionary, getDependencyManager, getEndOffset, getExecutionFactory, getGenericConstantActionFactory, getIntProperty, getLanguageConnectionContext, getLongProperty, getNullNode, getOffsetOrderedNodes, getOptimizerFactory, getOptimizerTracer, getParameterTypes, getSchemaDescriptor, getSchemaDescriptor, getStatementType, getTableDescriptor, getTypeCompiler, getUDTDesc, isAtomic, isPrivilegeCollectionRequired, isSessionSchema, isSessionSchema, makeConstantAction, makeTableName, makeTableName, nodeHeader, optimizerTracingIsOn, orReliability, parseSearchCondition, parseStatement, printLabel, referencesSessionSchema, resolveTableToSynonym, setBeginOffset, setEndOffset, setRefActionInfo, stackPrint, taggedWith, treePrint, treePrint, verifyClassExist
addNewPredicate, adjustForSortElimination, assignResultSetNumber, bindExpressionsWithTables, bindResultColumns, bindResultColumns, bindTargetExpressions, bindUntypedNullsToResultColumns, changeAccessPath, columnTypesAndLengthsMatch, considerMaterialization, enhanceRCLForInsert, ensurePredicateList, flattenableInFromSubquery, generateNormalizationResultSet, generateResultSet, genProjectRestrict, genProjectRestrictForReordering, getCandidateFinalCostEstimate, getCostEstimate, getCursorTargetTable, getFromList, getNewCostEstimate, getOptimizer, getOptimizerImpl, getRCLForInsert, getReferencedTableMap, getResultColumns, getResultSetNumber, getScratchCostEstimate, isCursorTargetTable, isInsertSource, isNotExists, isOneRowResultSet, isOrderedOn, isPossibleDistinctScan, isStatementResultSet, isUpdatableCursor, LOJgetReferencedTables, makeResultDescription, makeResultDescriptors, markAsCursorTargetTable, markForDistinctScan, markStatementResultSet, modifyAccessPaths, modifyAccessPaths, notCursorTargetTable, notFlattenableJoin, numDistinctAggregates, optimize, parseDefault, printQueryExpressionSuffixClauses, projectResultColumns, pushOffsetFetchFirst, pushOrderByList, pushQueryExpressionSuffix, rejectParameters, rejectXMLValues, renameGeneratedResultNames, replaceOrForbidDefaults, returnsAtMostOneRow, setCandidateFinalCostEstimate, setCostEstimate, setCursorTargetTable, setInsertSource, setOptimizer, setReferencedTableMap, setResultColumns, setResultSetNumber, setResultToBooleanTrueNode, setScratchCostEstimate, setTableConstructorTypes, subqueryReferencesTarget, updateTargetLockMode, verifySelectStarSubquery
accept, addTag, taggedWith
JBitSet correlationMap
JBitSet dependencyMap
MethodCallNode methodCall
TableName exposedName
SubqueryList subqueryList
boolean implementsVTICosting
boolean optimized
boolean materializable
boolean isTarget
boolean isDerbyStyleTableFunction
boolean isRestrictedTableFunction
java.sql.ResultSet rs
private final FormatableHashtable compileTimeConstants
protected int numVTICols
private PredicateList restrictionList
double estimatedCost
double estimatedRowCount
boolean supportsMultipleInstantiations
boolean vtiCosted
protected boolean version2
private boolean implementsPushable
private java.sql.PreparedStatement ps
private JavaValueNode[] methodParms
private boolean controlsDeferral
private int resultSetType
private java.lang.String[] projectedColumnNames
private Restriction vtiRestriction
private java.util.ArrayList<FromList> outerFromLists
private java.util.HashMap<java.lang.Integer,FromTable> argSources
FromVTI(MethodCallNode invocation, java.lang.String correlationName, ResultColumnList derivedRCL, java.util.Properties tableProperties, ContextManager cm) throws StandardException
invocation
- The constructor or static method for the VTIcorrelationName
- The correlation namederivedRCL
- The derived column listtableProperties
- Properties list associated with the tableStandardException
- Thrown on errorFromVTI(MethodCallNode invocation, java.lang.String correlationName, ResultColumnList derivedRCL, java.util.Properties tableProperties, TableName exposedTableName, ContextManager cm)
invocation
- The constructor or static method for the VTIcorrelationName
- The correlation namederivedRCL
- The derived column listtableProperties
- Properties list associated with the tableexposedTableName
- The table name (TableName class)cm
- The context managerprivate void constructorMinion(MethodCallNode invocation, ResultColumnList derivedRCL, TableName exposedTableName)
public CostEstimate estimateCost(OptimizablePredicateList predList, ConglomerateDescriptor cd, CostEstimate outerCost, Optimizer optimizer, RowOrdering rowOrdering) throws StandardException
Optimizable
estimateCost
in interface Optimizable
estimateCost
in class FromTable
predList
- The predicate list to optimize againstcd
- The conglomerate descriptor to get the cost ofouterCost
- The estimated cost of the part of the plan outer
to this optimizable.optimizer
- The optimizer to use to help estimate the costrowOrdering
- The row ordering for all the tables in the
join order, including this one.StandardException
- Thrown on errorOptimizable.estimateCost(org.apache.derby.iapi.sql.compile.OptimizablePredicateList, org.apache.derby.iapi.sql.dictionary.ConglomerateDescriptor, org.apache.derby.iapi.sql.compile.CostEstimate, org.apache.derby.iapi.sql.compile.Optimizer, org.apache.derby.iapi.sql.compile.RowOrdering)
public boolean legalJoinOrder(JBitSet assignedTableMap)
Optimizable
legalJoinOrder
in interface Optimizable
legalJoinOrder
in class FromTable
assignedTableMap
- The tables that have been placed so far in the join order.Optimizable.legalJoinOrder(org.apache.derby.iapi.util.JBitSet)
public boolean isMaterializable()
Optimizable
isMaterializable
in interface Optimizable
isMaterializable
in class FromTable
Optimizable.isMaterializable()
public boolean supportsMultipleInstantiations()
Optimizable
supportsMultipleInstantiations
in interface Optimizable
supportsMultipleInstantiations
in class FromTable
Optimizable.supportsMultipleInstantiations()
public boolean isDerbyStyleTableFunction()
void adjustForSortElimination()
ResultSetNode
adjustForSortElimination
in class ResultSetNode
ResultSetNode.adjustForSortElimination()
public Optimizable modifyAccessPath(JBitSet outerTables) throws StandardException
Optimizable
modifyAccessPath
in interface Optimizable
modifyAccessPath
in class FromTable
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 void addOuterFromList(FromList fromList)
public boolean pushOptPredicate(OptimizablePredicate optimizablePredicate) throws StandardException
Optimizable
pushOptPredicate
in interface Optimizable
pushOptPredicate
in class FromTable
optimizablePredicate
- OptimizablePredicate to push down.StandardException
- Thrown on errorOptimizable.pushOptPredicate(org.apache.derby.iapi.sql.compile.OptimizablePredicate)
public java.lang.String toString()
void printSubNodes(int depth)
printSubNodes
in class ResultSetNode
depth
- The depth of this node in the treeboolean isConstructor()
final MethodCallNode getMethodCall()
java.lang.String getExposedName()
getExposedName
in class FromTable
public TableName getExposedTableName()
void setTarget()
ResultSetNode bindNonVTITables(DataDictionary dataDictionary, FromList fromListParam) throws StandardException
bindNonVTITables
in class ResultSetNode
dataDictionary
- The DataDictionary to use for bindingfromListParam
- FromList to use/append to.StandardException
- Thrown on errorjava.lang.String getVTIName()
ResultSetNode bindVTITables(FromList fromListParam) throws StandardException
bindVTITables
in class ResultSetNode
fromListParam
- FromList to use/append to.StandardException
- Thrown on errorjava.sql.ResultSetMetaData getResultSetMetaData() throws StandardException
StandardException
- Thrown on errorprivate java.lang.Object getNewInstance() throws StandardException
StandardException
public DeferModification getDeferralControl() throws StandardException
StandardException
public int getResultSetType()
void bindExpressions(FromList fromListParam) throws StandardException
bindExpressions
in class ResultSetNode
fromListParam
- FromList to use/append to.StandardException
- Thrown on errorprivate FromTable columnInFromList(FromList fromList, ColumnReference ref) throws StandardException
StandardException
<T extends Visitable> java.util.List<T> getNodesFromParameters(java.lang.Class<T> nodeClass) throws StandardException
nodeClass
- The Class of interest.StandardException
- Thrown on errorResultColumnList getAllResultColumns(TableName allTableName) throws StandardException
getAllResultColumns
in class ResultSetNode
allTableName
- The qualifier on the "*"null
if
allTableName
is non-null and doesn't match a table name in
this result setStandardException
- Thrown on errorResultColumn getMatchingColumn(ColumnReference columnReference) throws StandardException
getMatchingColumn
in class ResultSetNode
columnReference
- The columnReference whose name we're looking
for in the given table.StandardException
- Thrown on errorResultSetNode preprocess(int numTables, GroupByList gbl, FromList fromList) throws StandardException
preprocess
in class ResultSetNode
numTables
- The number of tables in the DML Statementgbl
- The group by list, if anyfromList
- The from list, if anyStandardException
- Thrown on errorprotected ResultSetNode genProjectRestrict(int numTables) throws StandardException
genProjectRestrict
in class ResultSetNode
numTables
- Number of tables in the DML StatementStandardException
- Thrown on errorboolean performMaterialization(JBitSet outerTables) throws StandardException
performMaterialization
in class ResultSetNode
StandardException
- Thrown on errorvoid computeProjectionAndRestriction(PredicateList parentPredicates) throws StandardException
parentPredicates
- The full list of predicates to be applied by the parent ProjectRestrictNodeStandardException
private java.util.HashMap<java.lang.String,java.lang.String> computeProjection() throws StandardException
StandardException
private void computeRestriction(PredicateList parentPredicates, java.util.HashMap<java.lang.String,java.lang.String> columnNameMap) throws StandardException
parentPredicates
- The full list of predicates to be applied by the parent ProjectRestrictNodecolumnNameMap
- Mapping between the exposed column names used in the predicates and the actual column names declared for the table function at CREATE FUNCTION time.StandardException
private boolean canBePushedDown(Predicate predicate) throws StandardException
StandardException
private Restriction makeRestriction(ValueNode clause, java.util.HashMap<java.lang.String,java.lang.String> columnNameMap) throws StandardException
clause
- The clause which should be turned into a Restriction.columnNameMap
- Mapping between the exposed column names used in the predicates and the actual column names declared for the table function at CREATE FUNCTION time.StandardException
private Restriction makeLeafRestriction(BinaryRelationalOperatorNode clause, java.util.HashMap<java.lang.String,java.lang.String> columnNameMap) throws StandardException
clause
- The clause which should be turned into a Restriction.columnNameMap
- Mapping between the exposed column names used in the predicates and the actual column names declared for the table function at CREATE FUNCTION time.StandardException
private Restriction makeIsNullRestriction(IsNullNode clause, java.util.HashMap<java.lang.String,java.lang.String> columnNameMap) throws StandardException
clause
- The IS NULL (or IS NOT NULL) nodecolumnNameMap
- Mapping between the exposed column names used in the predicates and the actual column names declared for the table function at CREATE FUNCTION time.StandardException
private Restriction iAmConfused(ValueNode clause) throws StandardException
StandardException
private int flipOperator(int rawOperator) throws StandardException
StandardException
private int mapOperator(int rawOperator) throws StandardException
StandardException
private java.lang.Object squeezeConstantValue(ValueNode valueNode) throws StandardException
StandardException
void generate(ActivationClassBuilder acb, MethodBuilder mb) throws StandardException
generate
in class QueryTreeNode
acb
- The ActivationClassBuilder for the class being builtmb
- The MethodBuilder for the execute() method to be builtStandardException
- Thrown on errorprivate void remapBaseTableColumns() throws StandardException
Remap the column references in vti arguments. Point those column references at the result columns for the base table. This prevents us from code-generating the args from references to unfilled columns in higher join nodes. See DERBY-5554.
StandardException
private int getScanArguments(ActivationClassBuilder acb, MethodBuilder mb) throws StandardException
StandardException
private int storeObjectInPS(ActivationClassBuilder acb, java.lang.Object obj) throws StandardException
StandardException
private void generateConstructor(ActivationClassBuilder acb, MethodBuilder mb, boolean reuseablePs) throws StandardException
StandardException
boolean referencesTarget(java.lang.String name, boolean baseTable) throws StandardException
referencesTarget
in class ResultSetNode
name
- Table name (String) to search for.baseTable
- Whether or not name is for a base tableStandardException
- Thrown on errorvoid acceptChildren(Visitor v) throws StandardException
acceptChildren
in class FromTable
v
- the visitorStandardException
- on errorprivate UUID getSpecialTriggerVTITableName(LanguageConnectionContext lcc, java.lang.String className) throws StandardException
StandardException
private ResultColumnList genResultColList(TableDescriptor td) throws StandardException
StandardException
boolean needsSpecialRCLBinding()
needsSpecialRCLBinding
in class FromTable
boolean isUpdatableCursor() throws StandardException
StandardException
public final boolean isCompileTime()
VTIEnvironment
isCompileTime
in interface VTIEnvironment
public java.lang.String getOriginalSQL()
VTIEnvironment
getOriginalSQL
in interface VTIEnvironment
public final int getStatementIsolationLevel()
VTIEnvironment
getStatementIsolationLevel
in interface VTIEnvironment
public void setSharedState(java.lang.String key, java.io.Serializable value)
VTIEnvironment
setSharedState
in interface VTIEnvironment
public java.lang.Object getSharedState(java.lang.String key)
VTIEnvironment
getSharedState
in interface VTIEnvironment
private void createResultColumnsForTableFunction(TypeDescriptor td) throws StandardException
StandardException
private boolean implementsDerbyStyleVTICosting(java.lang.String className) throws StandardException
StandardException
private VTICosting getVTICosting() throws StandardException
StandardException
private java.lang.Class<?> lookupClass(java.lang.String className) throws StandardException
StandardException
Apache Derby V10.14 Internals - Copyright © 2004,2018 The Apache Software Foundation. All Rights Reserved.