Interface AccessPath
- All Known Implementing Classes:
AccessPathImpl
public interface AccessPath
AccessPath represents a proposed access path for an Optimizable.
An Optimizable may have more than one proposed AccessPath.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
copy
(AccessPath copyFrom) Copy all information from the given AccessPath to this one.Get whatever was last set as the conglomerate descriptor.Get the cost estimate for this AccessPath.boolean
Return whether or not the optimizer is considering a covering index scan on this AccessPath.Get the join strategy, as set by setJoinStrategy().int
Get the lock mode, as last set in setLockMode().boolean
Return whether or not the optimizer is considering a non-matching index scan on this AccessPath.Get the optimizer associated with this access path.void
Sets the "name" of the access path. if the access path represents an index then set the name to the name of the index. if it is an index created for a constraint, use the constraint name.void
Set the conglomerate descriptor for this access path.void
setCostEstimate
(CostEstimate costEstimate) Set the given cost estimate in this AccessPath.void
setCoveringIndexScan
(boolean coveringIndexScan) Set whether or not to consider a covering index scan on the optimizable.void
setJoinStrategy
(JoinStrategy joinStrategy) Remember the given join strategyvoid
setLockMode
(int lockMode) Set the lock modevoid
setNonMatchingIndexScan
(boolean nonMatchingIndexScan) Set whether or not to consider a non-matching index scan on this AccessPath.
-
Method Details
-
setConglomerateDescriptor
Set the conglomerate descriptor for this access path.- Parameters:
cd
- A ConglomerateDescriptor
-
getConglomerateDescriptor
ConglomerateDescriptor getConglomerateDescriptor()Get whatever was last set as the conglomerate descriptor. Returns null if nothing was set since the last call to startOptimizing() -
setCostEstimate
Set the given cost estimate in this AccessPath. Generally, this will be the CostEstimate for the plan currently under consideration. -
getCostEstimate
CostEstimate getCostEstimate()Get the cost estimate for this AccessPath. This is the last one set by setCostEstimate. -
setCoveringIndexScan
void setCoveringIndexScan(boolean coveringIndexScan) Set whether or not to consider a covering index scan on the optimizable. -
getCoveringIndexScan
boolean getCoveringIndexScan()Return whether or not the optimizer is considering a covering index scan on this AccessPath.- Returns:
- boolean Whether or not the optimizer chose a covering index scan.
-
setNonMatchingIndexScan
void setNonMatchingIndexScan(boolean nonMatchingIndexScan) Set whether or not to consider a non-matching index scan on this AccessPath. -
getNonMatchingIndexScan
boolean getNonMatchingIndexScan()Return whether or not the optimizer is considering a non-matching index scan on this AccessPath. We expect to call this during generation, after access path selection is complete.- Returns:
- boolean Whether or not the optimizer is considering a non-matching index scan.
-
setJoinStrategy
Remember the given join strategy- Parameters:
joinStrategy
- The best join strategy
-
getJoinStrategy
JoinStrategy getJoinStrategy()Get the join strategy, as set by setJoinStrategy(). -
setLockMode
void setLockMode(int lockMode) Set the lock mode -
getLockMode
int getLockMode()Get the lock mode, as last set in setLockMode(). -
copy
Copy all information from the given AccessPath to this one. -
getOptimizer
Optimizer getOptimizer()Get the optimizer associated with this access path.- Returns:
- The optimizer associated with this access path.
-
initializeAccessPathName
Sets the "name" of the access path. if the access path represents an index then set the name to the name of the index. if it is an index created for a constraint, use the constraint name. This is called only for base tables.- Parameters:
dd
- Datadictionary.td
- TableDescriptor of the base table.- Throws:
StandardException
- on error.
-