Top Constructors Methods
org.apache.derby.impl.sql.compile

pack-priv abstract Class BaseJoinStrategy

extends Object
implements JoinStrategy
Class Inheritance
All Implemented Interfaces
org.apache.derby.iapi.sql.compile.JoinStrategy
Known Direct Subclasses
org.apache.derby.impl.sql.compile.HashJoinStrategy, org.apache.derby.impl.sql.compile.NestedLoopJoinStrategy
Imports
org.apache.derby.shared.common.error.StandardException, org.apache.derby.shared.common.reference.ClassName, org.apache.derby.iapi.services.compiler.MethodBuilder, org.apache.derby.iapi.sql.compile.ExpressionClassBuilderInterface, .JoinStrategy, .Optimizable, .OptimizablePredicateList, org.apache.derby.iapi.sql.dictionary.ConglomerateDescriptor, .ConstraintDescriptor, .DataDictionary, .TableDescriptor, org.apache.derby.iapi.store.access.StaticCompiledOpenConglomInfo, .TransactionController, org.apache.derby.iapi.util.PropertyUtil

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public boolean
bulkFetchOK()

Implements org.apache.derby.iapi.sql.compile.JoinStrategy.bulkFetchOK.

Is it OK to use bulk fetch with this join strategy?

pack-priv 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.

pack-priv final void
fillInScanArgs2(MethodBuilder mb, Optimizable innerTable, int bulkFetch, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel)

public boolean
ignoreBulkFetch()

Implements org.apache.derby.iapi.sql.compile.JoinStrategy.ignoreBulkFetch.

Should we just ignore bulk fetch with this join strategy?

public boolean
protected boolean

Returns:

Whether or not this join strategy can be used on the outermost table of a join.
validForOutermostTable
()

Can this join strategy be used on the outermost table of a join.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

BaseJoinStrategyback to summary
pack-priv BaseJoinStrategy()

Method Detail

bulkFetchOKback to summary
public boolean bulkFetchOK()

Implements org.apache.derby.iapi.sql.compile.JoinStrategy.bulkFetchOK.

Doc from org.apache.derby.iapi.sql.compile.JoinStrategy.bulkFetchOK.

Is it OK to use bulk fetch with this join strategy?

See Also
JoinStrategy#bulkFetchOK
fillInScanArgs1back to summary
pack-priv 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
fillInScanArgs2back to summary
pack-priv final void fillInScanArgs2(MethodBuilder mb, Optimizable innerTable, int bulkFetch, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel) throws StandardException
ignoreBulkFetchback to summary
public boolean ignoreBulkFetch()

Implements org.apache.derby.iapi.sql.compile.JoinStrategy.ignoreBulkFetch.

Doc from org.apache.derby.iapi.sql.compile.JoinStrategy.ignoreBulkFetch.

Should we just ignore bulk fetch with this join strategy?

See Also
JoinStrategy#ignoreBulkFetch
isHashJoinback to summary
public boolean isHashJoin()

Implements org.apache.derby.iapi.sql.compile.JoinStrategy.isHashJoin.

Doc from org.apache.derby.iapi.sql.compile.JoinStrategy.isHashJoin.

Is this a form of hash join?

Returns:boolean

Whether or not this strategy is a form of hash join.

See Also
JoinStrategy#isHashJoin
validForOutermostTableback to summary
protected boolean validForOutermostTable()

Can this join strategy be used on the outermost table of a join.

Returns:boolean

Whether or not this join strategy can be used on the outermost table of a join.