Class BaseJoinStrategy
- java.lang.Object
-
- org.apache.derby.impl.sql.compile.BaseJoinStrategy
-
- All Implemented Interfaces:
JoinStrategy
- Direct Known Subclasses:
HashJoinStrategy
,NestedLoopJoinStrategy
abstract class BaseJoinStrategy extends java.lang.Object implements JoinStrategy
-
-
Constructor Summary
Constructors Constructor Description BaseJoinStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
bulkFetchOK()
Is it OK to use bulk fetch with this join strategy?(package private) void
fillInScanArgs1(TransactionController tc, MethodBuilder mb, Optimizable innerTable, OptimizablePredicateList predList, ExpressionClassBuilderInterface acbi, int resultRowTemplate)
Push the first set of common arguments for obtaining a scan ResultSet from ResultSetFactory.(package private) void
fillInScanArgs2(MethodBuilder mb, Optimizable innerTable, int bulkFetch, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel)
boolean
ignoreBulkFetch()
Should we just ignore bulk fetch with this join strategy?boolean
isHashJoin()
Is this a form of hash join?protected boolean
validForOutermostTable()
Can this join strategy be used on the outermost table of a join.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.derby.iapi.sql.compile.JoinStrategy
divideUpPredicateLists, doesMaterialization, estimateCost, feasible, getBasePredicates, getName, getOperatorSymbol, getScanArgs, halfOuterJoinResultSetMethodName, joinResultSetMethodName, maxCapacity, multiplyBaseCostByOuterRows, nonBasePredicateSelectivity, putBasePredicates, resultSetMethodName, scanCostType
-
-
-
-
Method Detail
-
bulkFetchOK
public boolean bulkFetchOK()
Description copied from interface:JoinStrategy
Is it OK to use bulk fetch with this join strategy?- Specified by:
bulkFetchOK
in interfaceJoinStrategy
- See Also:
JoinStrategy.bulkFetchOK()
-
ignoreBulkFetch
public boolean ignoreBulkFetch()
Description copied from interface:JoinStrategy
Should we just ignore bulk fetch with this join strategy?- Specified by:
ignoreBulkFetch
in interfaceJoinStrategy
- See Also:
JoinStrategy.ignoreBulkFetch()
-
fillInScanArgs1
void fillInScanArgs1(TransactionController tc, MethodBuilder mb, Optimizable innerTable, OptimizablePredicateList predList, ExpressionClassBuilderInterface acbi, int resultRowTemplate) throws StandardException
Push the first set of common arguments for obtaining a scan ResultSet from ResultSetFactory. The first 11 arguments are common for these ResultSet getters- ResultSetFactory.getBulkTableScanResultSet
- ResultSetFactory.getHashScanResultSet
- ResultSetFactory.getTableScanResultSet
- ResultSetFactory.getRaDependentTableScanResultSet
- Parameters:
tc
-mb
-innerTable
-predList
-acbi
-- Throws:
StandardException
-
fillInScanArgs2
final void fillInScanArgs2(MethodBuilder mb, Optimizable innerTable, int bulkFetch, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel) throws StandardException
- Throws:
StandardException
-
isHashJoin
public boolean isHashJoin()
Description copied from interface:JoinStrategy
Is this a form of hash join?- Specified by:
isHashJoin
in interfaceJoinStrategy
- Returns:
- Whether or not this strategy is a form of hash join.
- See Also:
JoinStrategy.isHashJoin()
-
validForOutermostTable
protected boolean validForOutermostTable()
Can this join strategy be used on the outermost table of a join.- Returns:
- Whether or not this join strategy can be used on the outermost table of a join.
-
-