org.apache.derby.iapi.sql.execute
Interface ExecutionFactory

All Known Implementing Classes:
GenericExecutionFactory

public interface ExecutionFactory

This is the factory for creating a factories needed by execution per connection, and the context to hold them.

There is expected to be one of these configured per database.

If a factory is needed outside of execution (say, data dictionary or compilation), then it belongs in the LanguageConnectionContext.

Author:
ames
See Also:
LanguageConnectionContext

Field Summary
static java.lang.String MODULE
          Module name for the monitor's module locating system.
 
Method Summary
 ExecIndexRow getIndexableRow(ExecRow valueRow)
          This returns the value row as an indexable row
 ExecIndexRow getIndexableRow(int numColumns)
          This returns an indexable row
 java.lang.Object getJdbcCopyConstants(int[][] paramReferences, TypeDescriptor[][] columnTypes, int[][] publishedTableSchemaCounts)
          Packages up a clump of constants which the Plugin uses at execute() time for COPY PUBLICATION.
 java.lang.Object getJdbcCreateConstants(UUID[] publishedJarFileIDs, java.lang.Object publishedItems, int[][] tableSchemaCounts)
          Packages up a clump of constants which the Plugin uses at execute() time for CREATE PUBLICATION.
 Qualifier getQualifier(int columnId, int operator, GeneratedMethod orderableGetter, Activation activation, boolean orderedNulls, boolean unknownRV, boolean negateCompareResult, int variantType)
          Get a Qualifier to use with a scan of a conglomerate.
 ResultColumnDescriptor getResultColumnDescriptor(ResultColumnDescriptor compileRCD)
          Create an execution time ResultColumnDescriptor from a compile time RCD.
 ResultDescription getResultDescription(ResultColumnDescriptor[] columns, java.lang.String statementType)
          Create a result description given parameters for it.
 ResultSetFactory getResultSetFactory()
          Only one result set factory is needed for a database in the system.
 RowChanger getRowChanger(long heapConglom, StaticCompiledOpenConglomInfo heapSCOCI, DynamicCompiledOpenConglomInfo heapDCOCI, IndexRowGenerator[] irgs, long[] indexCIDS, StaticCompiledOpenConglomInfo[] indexSCOCIs, DynamicCompiledOpenConglomInfo[] indexDCOCIs, int numberOfColumns, TransactionController tc, int[] changedColumnIds, FormatableBitSet baseRowReadList, int[] baseRowReadMap, int[] streamStorableColIds, Activation activation)
          Create a new RowChanger for doing insert update and delete operations based on partial before and after.
 RowChanger getRowChanger(long heapConglom, StaticCompiledOpenConglomInfo heapSCOCI, DynamicCompiledOpenConglomInfo heapDCOCI, IndexRowGenerator[] irgs, long[] indexCIDS, StaticCompiledOpenConglomInfo[] indexSCOCIs, DynamicCompiledOpenConglomInfo[] indexDCOCIs, int numberOfColumns, TransactionController tc, int[] changedColumnIds, int[] streamStorableHeapColIds, Activation activation)
          Create a new RowChanger for performing update and delete operations based on full before and after rows.
 ScanQualifier[][] getScanQualifier(int numQualifiers)
          Get an array of ScanQualifiers for a scan.
 ExecRow getValueRow(int numColumns)
          This returns a new row that is storable but not indexable
 ExecutionContext newExecutionContext(ContextManager cm)
          We want an execution context so that we can push it onto the stack.
 void releaseScanQualifier(ScanQualifier[][] scanQualifiers)
          Release a ScanQualifier[] (back to the pool or free it).
 

Field Detail

MODULE

public static final java.lang.String MODULE
Module name for the monitor's module locating system.

See Also:
Constant Field Values
Method Detail

getResultSetFactory

public ResultSetFactory getResultSetFactory()
Only one result set factory is needed for a database in the system. We require that an execution factory be configured for each database. Each execution factory then needs to know about the result set factory it is maintaining for its database, so that it can provide it through calls to this method. So, we reuse the result set factory by making it available to each connection in that connection's execution context.

Returns:
the result set factory for this database.

newExecutionContext

public ExecutionContext newExecutionContext(ContextManager cm)
We want an execution context so that we can push it onto the stack. We could instead require the implementation push it onto the stack for us, but this way we know which context object exactly was pushed onto the stack.

Parameters:
cm - the context manager

getResultColumnDescriptor

public ResultColumnDescriptor getResultColumnDescriptor(ResultColumnDescriptor compileRCD)
Create an execution time ResultColumnDescriptor from a compile time RCD.

Parameters:
compileRCD - The compile time RCD.
Returns:
The execution time ResultColumnDescriptor

getResultDescription

public ResultDescription getResultDescription(ResultColumnDescriptor[] columns,
                                              java.lang.String statementType)
Create a result description given parameters for it.


getScanQualifier

public ScanQualifier[][] getScanQualifier(int numQualifiers)
Get an array of ScanQualifiers for a scan. ScanQualifiers are used with the DataDictionary.

Parameters:
numQualifiers - The number of ScanQualifiers to get.

releaseScanQualifier

public void releaseScanQualifier(ScanQualifier[][] scanQualifiers)
Release a ScanQualifier[] (back to the pool or free it).


getQualifier

public Qualifier getQualifier(int columnId,
                              int operator,
                              GeneratedMethod orderableGetter,
                              Activation activation,
                              boolean orderedNulls,
                              boolean unknownRV,
                              boolean negateCompareResult,
                              int variantType)
Get a Qualifier to use with a scan of a conglomerate.

Parameters:
columnId - The store id of the column to qualify
operator - One of Orderable.ORDER_OP_EQUALS, Orderable.ORDER_OP_LESSTHAN, or Orderable.ORDER_OP_LESSOREQUALS
orderableGetter - A generated method that returns the Orderable to be compared with the column
activation - The Activation that acts as the receiver for the generated method
orderedNulls - True means that null == null for the sake of this Qualifier
unknownRV - The value to return if the comparison between the column and the Orderable value returns the unknown truth value
variantType - The variantType for the qualifier's orderable. (Determines whether or not to cache the value.)
Returns:
A new Qualifier

getRowChanger

public RowChanger getRowChanger(long heapConglom,
                                StaticCompiledOpenConglomInfo heapSCOCI,
                                DynamicCompiledOpenConglomInfo heapDCOCI,
                                IndexRowGenerator[] irgs,
                                long[] indexCIDS,
                                StaticCompiledOpenConglomInfo[] indexSCOCIs,
                                DynamicCompiledOpenConglomInfo[] indexDCOCIs,
                                int numberOfColumns,
                                TransactionController tc,
                                int[] changedColumnIds,
                                int[] streamStorableHeapColIds,
                                Activation activation)
                         throws StandardException
Create a new RowChanger for performing update and delete operations based on full before and after rows.

Parameters:
heapConglom - Conglomerate # for the heap
heapSCOCI - The SCOCI for the heap.
heapDCOCI - The DCOCI for the heap.
irgs - the IndexRowGenerators for the table's indexes. We use positions in this array as local id's for indexes. To support updates, only indexes that change need be included.
indexCIDS - the conglomerateids for the table's idexes. indexCIDS[ix] corresponds to the same index as irgs[ix].
indexSCOCIs - the SCOCIs for the table's idexes. indexSCOCIs[ix] corresponds to the same index as irgs[ix].
indexDCOCIs - the DCOCIs for the table's idexes. indexDCOCIs[ix] corresponds to the same index as irgs[ix].
numberOfColumns - Number of columns in a full row.
tc - the transaction controller
streamStorableHeapColIds - Column ids of stream storable columns. (0 based, Only needed for sync. null if none or not needed).
activation - The Activation.
Throws:
StandardException - Thrown on error

getRowChanger

public RowChanger getRowChanger(long heapConglom,
                                StaticCompiledOpenConglomInfo heapSCOCI,
                                DynamicCompiledOpenConglomInfo heapDCOCI,
                                IndexRowGenerator[] irgs,
                                long[] indexCIDS,
                                StaticCompiledOpenConglomInfo[] indexSCOCIs,
                                DynamicCompiledOpenConglomInfo[] indexDCOCIs,
                                int numberOfColumns,
                                TransactionController tc,
                                int[] changedColumnIds,
                                FormatableBitSet baseRowReadList,
                                int[] baseRowReadMap,
                                int[] streamStorableColIds,
                                Activation activation)
                         throws StandardException
Create a new RowChanger for doing insert update and delete operations based on partial before and after.

Parameters:
heapConglom - Conglomerate # for the heap
heapSCOCI - The SCOCI for the heap.
heapDCOCI - The DCOCI for the heap.
irgs - the IndexRowGenerators for the table's indexes. We use positions in this array as local id's for indexes. To support updates, only indexes that change need be included.
indexCIDS - the conglomerateids for the table's idexes. indexCIDS[ix] corresponds to the same index as irgs[ix].
indexSCOCIs - the SCOCIs for the table's idexes. indexSCOCIs[ix] corresponds to the same index as irgs[ix].
indexDCOCIs - the DCOCIs for the table's idexes. indexDCOCIs[ix] corresponds to the same index as irgs[ix].
numberOfColumns - Number of columns in partial row.
tc - the transaction controller
changedColumnIds - array of 1 based ints of columns to be updated. Used by update only.
baseRowReadList - the columns in the base row that were read (1 based)
baseRowReadMap - baseRowReadMap[heapColId]->readRowColId (0 based)
activation - The Activation.
Throws:
StandardException - Thrown on error

getValueRow

public ExecRow getValueRow(int numColumns)
This returns a new row that is storable but not indexable


getIndexableRow

public ExecIndexRow getIndexableRow(int numColumns)
This returns an indexable row


getIndexableRow

public ExecIndexRow getIndexableRow(ExecRow valueRow)
This returns the value row as an indexable row


getJdbcCopyConstants

public java.lang.Object getJdbcCopyConstants(int[][] paramReferences,
                                             TypeDescriptor[][] columnTypes,
                                             int[][] publishedTableSchemaCounts)
Packages up a clump of constants which the Plugin uses at execute() time for COPY PUBLICATION.


getJdbcCreateConstants

public java.lang.Object getJdbcCreateConstants(UUID[] publishedJarFileIDs,
                                               java.lang.Object publishedItems,
                                               int[][] tableSchemaCounts)
Packages up a clump of constants which the Plugin uses at execute() time for CREATE PUBLICATION.


Built on Mon 2007-06-04 09:58:47+0400, from revision ???

Apache Derby V10.1 Engine Documentation - Copyright © 1997,2005 The Apache Software Foundation or its licensors, as applicable.