Class GenericResultSetFactory
- java.lang.Object
-
- org.apache.derby.impl.sql.execute.GenericResultSetFactory
-
- All Implemented Interfaces:
ResultSetFactory
public class GenericResultSetFactory extends java.lang.Object implements ResultSetFactory
ResultSetFactory provides a wrapper around all of the result sets used in this execution implementation. This removes the need of generated classes to do a new and of the generator to know about all of the result sets. Both simply know about this interface to getting them.In terms of modularizing, we can create just an interface to this class and invoke the interface. Different implementations would get the same information provided but could potentially massage/ignore it in different ways to satisfy their implementations. The practicality of this is to be seen.
The cost of this type of factory is that once you touch it, you touch *all* of the possible result sets, not just the ones you need. So the first time you touch it could be painful ... that might be a problem for execution.
-
-
Field Summary
-
Fields inherited from interface org.apache.derby.iapi.sql.execute.ResultSetFactory
MODULE
-
-
Constructor Summary
Constructors Constructor Description GenericResultSetFactory()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description NoPutResultSet
getAnyResultSet(NoPutResultSet source, GeneratedMethod emptyRowFun, int resultSetNumber, int subqueryNumber, int pointOfAttachment, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
An any result set iterates over its source, returning a row with all columns set to nulls if the source returns no rows.private static Authorizer
getAuthorizer(Activation activation)
NoPutResultSet
getBulkTableScanResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, GeneratedMethod startKeyGetter, int startSearchOperator, GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, Qualifier[][] qualifiers, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, boolean forUpdate, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel, int rowsPerRead, boolean disableForHoldable, boolean oneRowScan, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
Table/Index scan where rows are read in bulkResultSet
getCallStatementResultSet(GeneratedMethod methodCall, Activation activation)
A call statement result set simply reports that it completed.NoPutResultSet
getCurrentOfResultSet(java.lang.String cursorName, Activation activation, int resultSetNumber)
A current of result set forms a result set on the current row of an open cursor.ResultSet
getDDLResultSet(Activation activation)
Generic DDL result set creation.ResultSet
getDeleteCascadeResultSet(NoPutResultSet source, int constantActionItem, ResultSet[] dependentResultSets, java.lang.String resultSetId)
A delete Cascade result set simply reports that it completed, and the number of rows deleted.ResultSet
getDeleteCascadeUpdateResultSet(NoPutResultSet source, GeneratedMethod generationClauses, GeneratedMethod checkGM, int constantActionItem, int rsdItem)
An update result set simply reports that it completed, and the number of rows updated.ResultSet
getDeleteResultSet(NoPutResultSet source)
A delete result set simply reports that it completed, and the number of rows deleted.ResultSet
getDeleteVTIResultSet(NoPutResultSet source)
A delete VTI result set simply reports that it completed, and the number of rows deleted.NoPutResultSet
getDistinctGroupedAggregateResultSet(NoPutResultSet source, boolean isInSortedOrder, int aggregateItem, int orderItem, int rowAllocator, int maxRowSize, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost, boolean isRollup)
A DistinctGroupedAggregateResultSet computes scalar aggregates when at least one of them is a distinct aggregate.NoPutResultSet
getDistinctScalarAggregateResultSet(NoPutResultSet source, boolean isInSortedOrder, int aggregateItem, int orderItem, int rowAllocator, int maxRowSize, int resultSetNumber, boolean singleInputRow, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
A DistinctScalarAggregateResultSet computes scalar aggregates when at least one of them is a distinct aggregate.NoPutResultSet
getDistinctScanResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, int hashKeyColumn, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, int colRefItem, int lockMode, boolean tableLocked, int isolationLevel, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
a distinct scan generator, for ease of use at present.NoPutResultSet
getGroupedAggregateResultSet(NoPutResultSet source, boolean isInSortedOrder, int aggregateItem, int orderItem, int rowAllocator, int maxRowSize, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost, boolean isRollup)
A GroupedAggregateResultSet computes non-distinct grouped aggregates.NoPutResultSet
getHashJoinResultSet(NoPutResultSet leftResultSet, int leftNumCols, NoPutResultSet rightResultSet, int rightNumCols, GeneratedMethod joinClause, int resultSetNumber, boolean oneRowRightSide, boolean notExistsRightSide, double optimizerEstimatedRowCount, double optimizerEstimatedCost, java.lang.String userSuppliedOptimizerOverrides)
A hash join.NoPutResultSet
getHashLeftOuterJoinResultSet(NoPutResultSet leftResultSet, int leftNumCols, NoPutResultSet rightResultSet, int rightNumCols, GeneratedMethod joinClause, int resultSetNumber, GeneratedMethod emptyRowFun, boolean wasRightOuterJoin, boolean oneRowRightSide, boolean notExistsRightSide, double optimizerEstimatedRowCount, double optimizerEstimatedCost, java.lang.String userSuppliedOptimizerOverrides)
A left outer join using a hash join.NoPutResultSet
getHashScanResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, GeneratedMethod startKeyGetter, int startSearchOperator, GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, Qualifier[][] scanQualifiers, Qualifier[][] nextQualifiers, int initialCapacity, float loadFactor, int maxCapacity, int hashKeyColumn, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, boolean forUpdate, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
a hash scan generator, for ease of use at present.NoPutResultSet
getHashTableResultSet(NoPutResultSet source, GeneratedMethod singleTableRestriction, Qualifier[][] equijoinQualifiers, GeneratedMethod projection, int resultSetNumber, int mapRefItem, boolean reuseResult, int keyColItem, boolean removeDuplicates, long maxInMemoryRowCount, int initialCapacity, float loadFactor, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
A hash table result set builds a hash table on its source, applying a list of predicates, if any, to the source, when building the hash table.NoPutResultSet
getIndexRowToBaseRowResultSet(long conglomId, int scociItem, NoPutResultSet source, int resultRowAllocator, int resultSetNumber, java.lang.String indexName, int heapColRefItem, int allColRefItem, int heapOnlyColRefItem, int indexColMapItem, GeneratedMethod restriction, boolean forUpdate, double optimizerEstimatedRowCount, double optimizerEstimatedCost, int baseColumnCount)
An index row to base row result set gets an index row from its source and uses the RowLocation in its last column to get the row from the base conglomerate.ResultSet
getInsertResultSet(NoPutResultSet source, GeneratedMethod generationClauses, GeneratedMethod checkGM, int fullTemplate, java.lang.String schemaName, java.lang.String tableName)
An insert result set simply reports that it completed, and the number of rows inserted.ResultSet
getInsertVTIResultSet(NoPutResultSet source, NoPutResultSet vtiRS)
An insert VTI result set simply reports that it completed, and the number of rows inserted.NoPutResultSet
getLastIndexKeyResultSet(Activation activation, int resultSetNumber, int resultRowTemplate, long conglomId, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, int colRefItem, int lockMode, boolean tableLocked, int isolationLevel, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
A last index key sresult set returns the last row from the index in question.NoPutResultSet
getMaterializedResultSet(NoPutResultSet source, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
A ResultSet which materializes the underlying ResultSet tree into a temp table on the 1st open.ResultSet
getMergeResultSet(NoPutResultSet drivingLeftJoin)
A MERGE result set simply reports that it completed, and the number of rows that it INSERTed/UPDATEd/DELETEdd.ResultSet
getMiscResultSet(Activation activation)
Generic Misc result set creation.NoPutResultSet
getMultiProbeTableScanResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, GeneratedMethod startKeyGetter, int startSearchOperator, GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, Qualifier[][] qualifiers, DataValueDescriptor[] probeVals, int sortRequired, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, boolean forUpdate, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel, boolean oneRowScan, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
Multi-probing scan that probes an index for specific values contained in the received probe list.NoPutResultSet
getNestedLoopJoinResultSet(NoPutResultSet leftResultSet, int leftNumCols, NoPutResultSet rightResultSet, int rightNumCols, GeneratedMethod joinClause, int resultSetNumber, boolean oneRowRightSide, boolean notExistsRightSide, double optimizerEstimatedRowCount, double optimizerEstimatedCost, java.lang.String userSuppliedOptimizerOverrides)
A nested loop left outer join result set forms a result set on top of 2 other result sets.NoPutResultSet
getNestedLoopLeftOuterJoinResultSet(NoPutResultSet leftResultSet, int leftNumCols, NoPutResultSet rightResultSet, int rightNumCols, GeneratedMethod joinClause, int resultSetNumber, GeneratedMethod emptyRowFun, boolean wasRightOuterJoin, boolean oneRowRightSide, boolean notExistsRightSide, double optimizerEstimatedRowCount, double optimizerEstimatedCost, java.lang.String userSuppliedOptimizerOverrides)
A nested loop join result set forms a result set on top of 2 other result sets.NoPutResultSet
getNormalizeResultSet(NoPutResultSet source, int resultSetNumber, int erdNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost, boolean forUpdate)
REMIND: needs more description...NoPutResultSet
getOnceResultSet(NoPutResultSet source, GeneratedMethod emptyRowFun, int cardinalityCheck, int resultSetNumber, int subqueryNumber, int pointOfAttachment, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
A once result set iterates over its source, raising an error if the source returns > 1 row and returning a row with all columns set to nulls if the source returns no rows.NoPutResultSet
getProjectRestrictResultSet(NoPutResultSet source, GeneratedMethod restriction, GeneratedMethod projection, int resultSetNumber, GeneratedMethod constantRestriction, int mapRefItem, int cloneMapItem, boolean reuseResult, boolean doesProjection, boolean validatingCheckConstraint, java.lang.String validatingBaseTableUUIDString, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
A project restrict result set iterates over its source, evaluating a restriction and when it is satisfied, constructing a row to return in its result set based on its projection.NoPutResultSet
getRaDependentTableScanResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, GeneratedMethod startKeyGetter, int startSearchOperator, GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, Qualifier[][] qualifiers, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, boolean forUpdate, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel, boolean oneRowScan, double optimizerEstimatedRowCount, double optimizerEstimatedCost, java.lang.String parentResultSetId, long fkIndexConglomId, int fkColArrayItem, int rltItem)
a referential action dependent table scan generator.NoPutResultSet
getRowCountResultSet(NoPutResultSet source, Activation activation, int resultSetNumber, GeneratedMethod offsetMethod, GeneratedMethod fetchFirstMethod, boolean hasJDBClimitClause, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
This result sets implements the filtering needed byand . NoPutResultSet
getRowResultSet(Activation activation, GeneratedMethod row, boolean canCacheRow, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
A row result set forms a result set on a single, known row value.NoPutResultSet
getScalarAggregateResultSet(NoPutResultSet source, boolean isInSortedOrder, int aggregateItem, int orderItem, int rowAllocator, int maxRowSize, int resultSetNumber, boolean singleInputRow, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
A ScalarAggregateResultSet computes non-distinct scalar aggregates.NoPutResultSet
getScrollInsensitiveResultSet(NoPutResultSet source, Activation activation, int resultSetNumber, int sourceRowWidth, boolean scrollable, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
A ResultSet which provides the insensitive scrolling functionality for the underlying result set by materializing the underlying ResultSet tree into a hash table while scrolling forward.NoPutResultSet
getSetOpResultSet(NoPutResultSet leftSource, NoPutResultSet rightSource, Activation activation, int resultSetNumber, long optimizerEstimatedRowCount, double optimizerEstimatedCost, int opType, boolean all, int intermediateOrderByColumnsSavedObject, int intermediateOrderByDirectionSavedObject, int intermediateOrderByNullsLowSavedObject)
The SetOpResultSet is used to implement an INTERSECT or EXCEPT operation.ResultSet
getSetTransactionResultSet(Activation activation)
NoPutResultSet
getSortResultSet(NoPutResultSet source, boolean distinct, boolean isInSortedOrder, int orderItem, int rowAllocator, int maxRowSize, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
A sort result set sorts its source and if requested removes duplicates.NoPutResultSet
getTableScanResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, GeneratedMethod startKeyGetter, int startSearchOperator, GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, Qualifier[][] qualifiers, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, boolean forUpdate, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel, boolean oneRowScan, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
a minimal table scan generator, for ease of use at present.NoPutResultSet
getUnionResultSet(NoPutResultSet leftResultSet, NoPutResultSet rightResultSet, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
a minimal union scan generator, for ease of use at present.ResultSet
getUpdateResultSet(NoPutResultSet source, GeneratedMethod generationClauses, GeneratedMethod checkGM)
An update result set simply reports that it completed, and the number of rows updated.ResultSet
getUpdateVTIResultSet(NoPutResultSet source)
NoPutResultSet
getValidateCheckConstraintResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, GeneratedMethod startKeyGetter, int startSearchOperator, GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, Qualifier[][] qualifiers, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, boolean forUpdate, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel, boolean oneRowScan, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
A table scan result set forms a result set on a scan of a table.NoPutResultSet
getVTIResultSet(Activation activation, int row, int resultSetNumber, GeneratedMethod constructor, java.lang.String javaClassName, Qualifier[][] pushedQualifiers, int erdNumber, boolean version2, boolean reuseablePs, int ctcNumber, boolean isTarget, int scanIsolationLevel, double optimizerEstimatedRowCount, double optimizerEstimatedCost, boolean isDerbyStyleTableFunction, int returnTypeNumber, int vtiProjectionNumber, int vtiRestrictionNumber, java.lang.String vtiSchema, java.lang.String vtiName)
A VTI result set wraps a user supplied result set.NoPutResultSet
getWindowResultSet(Activation activation, NoPutResultSet source, int rowAllocator, int resultSetNumber, int erdNumber, GeneratedMethod restriction, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
A OLAP window on top of a regular result set.
-
-
-
Method Detail
-
getInsertResultSet
public ResultSet getInsertResultSet(NoPutResultSet source, GeneratedMethod generationClauses, GeneratedMethod checkGM, int fullTemplate, java.lang.String schemaName, java.lang.String tableName) throws StandardException
Description copied from interface:ResultSetFactory
An insert result set simply reports that it completed, and the number of rows inserted. It does not return rows. The insert has been completed once the insert result set is available.- Specified by:
getInsertResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be inserted into the target table.generationClauses
- The code to compute column generation clauses if anycheckGM
- The code to enforce the check constraints, if anyfullTemplate
- Saved item for a row template used by bulk insert, or -1 if this is not a bulk insertschemaName
- schema name of tabletableName
- table name- Returns:
- the insert operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getInsertResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, org.apache.derby.iapi.services.loader.GeneratedMethod, org.apache.derby.iapi.services.loader.GeneratedMethod, int, java.lang.String, java.lang.String)
-
getInsertVTIResultSet
public ResultSet getInsertVTIResultSet(NoPutResultSet source, NoPutResultSet vtiRS) throws StandardException
Description copied from interface:ResultSetFactory
An insert VTI result set simply reports that it completed, and the number of rows inserted. It does not return rows. The insert has been completed once the insert result set is available.- Specified by:
getInsertVTIResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be inserted into the target table.vtiRS
- The code to instantiate the VTI, if necessary- Returns:
- the insert VTI operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getInsertVTIResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, org.apache.derby.iapi.sql.execute.NoPutResultSet)
-
getDeleteVTIResultSet
public ResultSet getDeleteVTIResultSet(NoPutResultSet source) throws StandardException
Description copied from interface:ResultSetFactory
A delete VTI result set simply reports that it completed, and the number of rows deleted. It does not return rows. The delete has been completed once the delete result set is available.- Specified by:
getDeleteVTIResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be inserted into the target table.- Returns:
- the delete VTI operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getDeleteVTIResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet)
-
getDeleteResultSet
public ResultSet getDeleteResultSet(NoPutResultSet source) throws StandardException
Description copied from interface:ResultSetFactory
A delete result set simply reports that it completed, and the number of rows deleted. It does not return rows. The delete has been completed once the delete result set is available.- Specified by:
getDeleteResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be deleted from the target table. This result set must contain one column which provides RowLocations that are valid in the target table.- Returns:
- the delete operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getDeleteResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet)
-
getMergeResultSet
public ResultSet getMergeResultSet(NoPutResultSet drivingLeftJoin) throws StandardException
Description copied from interface:ResultSetFactory
A MERGE result set simply reports that it completed, and the number of rows that it INSERTed/UPDATEd/DELETEdd. It does not return rows. The delete has been completed once the MERGE result set is available.- Specified by:
getMergeResultSet
in interfaceResultSetFactory
- Parameters:
drivingLeftJoin
- the result set from which to take rows to be drive the INSERT/UPDATE/DELETE operations.- Returns:
- the MERGE operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getMergeResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet)
-
getDeleteCascadeResultSet
public ResultSet getDeleteCascadeResultSet(NoPutResultSet source, int constantActionItem, ResultSet[] dependentResultSets, java.lang.String resultSetId) throws StandardException
Description copied from interface:ResultSetFactory
A delete Cascade result set simply reports that it completed, and the number of rows deleted. It does not return rows. The delete has been completed once the delete result set is available.- Specified by:
getDeleteCascadeResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be deleted from the target table.constantActionItem
- a constant action saved object referencedependentResultSets
- an array of DeleteCascade Resultsets for the current table referential action dependents tables.resultSetId
- an Id which is used to store the refence to the temporary result set created of the materilized rows.Dependent table resultsets uses the same id to access their parent temporary result sets.- Returns:
- the delete operation as a delete cascade result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getDeleteCascadeResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, int, org.apache.derby.iapi.sql.ResultSet[], java.lang.String)
-
getUpdateResultSet
public ResultSet getUpdateResultSet(NoPutResultSet source, GeneratedMethod generationClauses, GeneratedMethod checkGM) throws StandardException
Description copied from interface:ResultSetFactory
An update result set simply reports that it completed, and the number of rows updated. It does not return rows. The update has been completed once the update result set is available.- Specified by:
getUpdateResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be updated in the target table. This result set must contain a column which provides RowLocations that are valid in the target table, and new values to be placed in those rows.generationClauses
- The code to compute column generation clauses if anycheckGM
- The code to enforce the check constraints, if any- Returns:
- the update operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getUpdateResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, org.apache.derby.iapi.services.loader.GeneratedMethod, org.apache.derby.iapi.services.loader.GeneratedMethod)
-
getUpdateVTIResultSet
public ResultSet getUpdateVTIResultSet(NoPutResultSet source) throws StandardException
- Specified by:
getUpdateVTIResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be updated in the target table.- Returns:
- the update operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getUpdateVTIResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet)
-
getDeleteCascadeUpdateResultSet
public ResultSet getDeleteCascadeUpdateResultSet(NoPutResultSet source, GeneratedMethod generationClauses, GeneratedMethod checkGM, int constantActionItem, int rsdItem) throws StandardException
Description copied from interface:ResultSetFactory
An update result set simply reports that it completed, and the number of rows updated. It does not return rows. The update has been completed once the update result set is available.- Specified by:
getDeleteCascadeUpdateResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be updated in the target table. This result set must contain a column which provides RowLocations that are valid in the target table, and new values to be placed in those rows.generationClauses
- The code to compute generated columns, if anycheckGM
- The code to enforce the check constraints, if anyconstantActionItem
- a constant action saved object referencersdItem
- result Description, saved object id.- Returns:
- the update operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getDeleteCascadeUpdateResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, org.apache.derby.iapi.services.loader.GeneratedMethod, org.apache.derby.iapi.services.loader.GeneratedMethod, int, int)
-
getCallStatementResultSet
public ResultSet getCallStatementResultSet(GeneratedMethod methodCall, Activation activation) throws StandardException
Description copied from interface:ResultSetFactory
A call statement result set simply reports that it completed. It does not return rows.- Specified by:
getCallStatementResultSet
in interfaceResultSetFactory
- Parameters:
methodCall
- a reference to a method in the activation for the method callactivation
- the activation for this result set- Returns:
- the call statement operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getCallStatementResultSet(org.apache.derby.iapi.services.loader.GeneratedMethod, org.apache.derby.iapi.sql.Activation)
-
getProjectRestrictResultSet
public NoPutResultSet getProjectRestrictResultSet(NoPutResultSet source, GeneratedMethod restriction, GeneratedMethod projection, int resultSetNumber, GeneratedMethod constantRestriction, int mapRefItem, int cloneMapItem, boolean reuseResult, boolean doesProjection, boolean validatingCheckConstraint, java.lang.String validatingBaseTableUUIDString, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Description copied from interface:ResultSetFactory
A project restrict result set iterates over its source, evaluating a restriction and when it is satisfied, constructing a row to return in its result set based on its projection. The rows can be constructed as they are requested from the result set.- Specified by:
getProjectRestrictResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be filtered by this operation.restriction
- a reference to a method in the activation that is applied to the activation's "current row" field to determine whether the restriction is satisfied or not. The signature of this method isBoolean restriction() throws StandardException; projection
- a reference to a method in the activation that is applied to the activation's "current row" field to project out the expected result row. The signature of this method isExecRow projection() throws StandardException; resultSetNumber
- The resultSetNumber for the ResultSetconstantRestriction
- a reference to a method in the activation that represents a constant expression (eg where 1 = 2). The signature of this method isBoolean restriction() throws StandardException; mapRefItem
- Item # for mapping of source to target columnscloneMapItem
- Item # for columns that need cloningreuseResult
- Whether or not to reuse the result row.doesProjection
- Whether or not this PRN does a projectionvalidatingCheckConstraint
-true if this PRN is used to for validating a deferred check constraint
.validatingBaseTableUUIDString
- The uuid for the table being validated.optimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the project restrict operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getProjectRestrictResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, org.apache.derby.iapi.services.loader.GeneratedMethod, org.apache.derby.iapi.services.loader.GeneratedMethod, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, int, boolean, boolean, boolean, java.lang.String, double, double)
-
getHashTableResultSet
public NoPutResultSet getHashTableResultSet(NoPutResultSet source, GeneratedMethod singleTableRestriction, Qualifier[][] equijoinQualifiers, GeneratedMethod projection, int resultSetNumber, int mapRefItem, boolean reuseResult, int keyColItem, boolean removeDuplicates, long maxInMemoryRowCount, int initialCapacity, float loadFactor, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Description copied from interface:ResultSetFactory
A hash table result set builds a hash table on its source, applying a list of predicates, if any, to the source, when building the hash table. It then does a look up into the hash table on a probe. The rows can be constructed as they are requested from the result set.- Specified by:
getHashTableResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be filtered by this operation.singleTableRestriction
- restriction, if any, applied to input of hash table.equijoinQualifiers
- Qualifier[] for look up into hash tableprojection
- a reference to a method in the activation that is applied to the activation's "current row" field to project out the expected result row. The signature of this method isExecRow projection() throws StandardException; resultSetNumber
- The resultSetNumber for the ResultSetmapRefItem
- Item # for mapping of source to target columnsreuseResult
- Whether or not to reuse the result row.keyColItem
- Item for hash key column arrayremoveDuplicates
- Whether or not to remove duplicates when building the hash tablemaxInMemoryRowCount
- Max size of in-memory hash tableinitialCapacity
- initialCapacity for java.util.HashTableloadFactor
- loadFactor for java.util.HashTableoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the project restrict operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getHashTableResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, org.apache.derby.iapi.services.loader.GeneratedMethod, org.apache.derby.iapi.store.access.Qualifier[][], org.apache.derby.iapi.services.loader.GeneratedMethod, int, int, boolean, int, boolean, long, int, float, double, double)
-
getSortResultSet
public NoPutResultSet getSortResultSet(NoPutResultSet source, boolean distinct, boolean isInSortedOrder, int orderItem, int rowAllocator, int maxRowSize, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Description copied from interface:ResultSetFactory
A sort result set sorts its source and if requested removes duplicates. It will generate the entire result when open, and then return it a row at a time.If passed aggregates it will do scalar or vector aggregate processing. A list of aggregator information is passed off of the PreparedStatement's savedObjects. Aggregation and SELECT DISTINCT cannot be processed in the same sort.
- Specified by:
getSortResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be filtered by this operation.distinct
- true if distinct SELECT listisInSortedOrder
- true if the source result set is in sorted orderorderItem
- entry in preparedStatement's savedObjects for orderrowAllocator
- a reference to a saved object that generates rows of the right size and shape for the sourcemaxRowSize
- the size of the row that is allocated by rowAllocator. size should be the maximum size of the sum of all the datatypes. user type are necessarily approximatedresultSetNumber
- The resultSetNumber for the ResultSetoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the distinct operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getSortResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, boolean, boolean, int, int, int, int, double, double)
-
getScalarAggregateResultSet
public NoPutResultSet getScalarAggregateResultSet(NoPutResultSet source, boolean isInSortedOrder, int aggregateItem, int orderItem, int rowAllocator, int maxRowSize, int resultSetNumber, boolean singleInputRow, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Description copied from interface:ResultSetFactory
A ScalarAggregateResultSet computes non-distinct scalar aggregates. It will compute the aggregates when open.- Specified by:
getScalarAggregateResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be filtered by this operation.isInSortedOrder
- true if the source result set is in sorted orderaggregateItem
- entry in preparedStatement's savedObjects for aggregatesorderItem
- Ignored to allow same signature as getDistinctScalarAggregateResultSetrowAllocator
- a reference to a saved object that generates rows of the right size and shape for the sourcemaxRowSize
- Ignored to allow same signature as getDistinctScalarAggregateResultSetresultSetNumber
- The resultSetNumber for the ResultSetsingleInputRow
- Whether we know we have a single input row or notoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the scalar aggregation operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getScalarAggregateResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, boolean, int, int, int, int, int, boolean, double, double)
-
getDistinctScalarAggregateResultSet
public NoPutResultSet getDistinctScalarAggregateResultSet(NoPutResultSet source, boolean isInSortedOrder, int aggregateItem, int orderItem, int rowAllocator, int maxRowSize, int resultSetNumber, boolean singleInputRow, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Description copied from interface:ResultSetFactory
A DistinctScalarAggregateResultSet computes scalar aggregates when at least one of them is a distinct aggregate. It will compute the aggregates when open.- Specified by:
getDistinctScalarAggregateResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be filtered by this operation.isInSortedOrder
- true if the source result set is in sorted orderaggregateItem
- entry in preparedStatement's savedObjects for aggregatesorderItem
- entry in preparedStatement's savedObjects for orderrowAllocator
- a reference to a saved object that generates rows of the right size and shape for the sourcemaxRowSize
- the size of the row that is allocated by rowAllocator. size should be the maximum size of the sum of all the datatypes. user type are necessarily approximatedresultSetNumber
- The resultSetNumber for the ResultSetsingleInputRow
- Whether we know we have a single input row or notoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the scalar aggregation operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getDistinctScalarAggregateResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, boolean, int, int, int, int, int, boolean, double, double)
-
getGroupedAggregateResultSet
public NoPutResultSet getGroupedAggregateResultSet(NoPutResultSet source, boolean isInSortedOrder, int aggregateItem, int orderItem, int rowAllocator, int maxRowSize, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost, boolean isRollup) throws StandardException
Description copied from interface:ResultSetFactory
A GroupedAggregateResultSet computes non-distinct grouped aggregates. It will compute the aggregates when open.- Specified by:
getGroupedAggregateResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be filtered by this operation.isInSortedOrder
- true if the source result set is in sorted orderaggregateItem
- entry in preparedStatement's savedObjects for aggregatesorderItem
- Ignored to allow same signature as getDistinctScalarAggregateResultSetrowAllocator
- a reference to a saved object that generates rows of the right size and shape for the sourcemaxRowSize
- Ignored to allow same signature as getDistinctScalarAggregateResultSetresultSetNumber
- The resultSetNumber for the ResultSetoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizerisRollup
- true if this is a GROUP BY ROLLUP()- Returns:
- the scalar aggregation operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getGroupedAggregateResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, boolean, int, int, int, int, int, double, double, boolean)
-
getDistinctGroupedAggregateResultSet
public NoPutResultSet getDistinctGroupedAggregateResultSet(NoPutResultSet source, boolean isInSortedOrder, int aggregateItem, int orderItem, int rowAllocator, int maxRowSize, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost, boolean isRollup) throws StandardException
Description copied from interface:ResultSetFactory
A DistinctGroupedAggregateResultSet computes scalar aggregates when at least one of them is a distinct aggregate. It will compute the aggregates when open.- Specified by:
getDistinctGroupedAggregateResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be filtered by this operation.isInSortedOrder
- true if the source result set is in sorted orderaggregateItem
- entry in preparedStatement's savedObjects for aggregatesorderItem
- entry in preparedStatement's savedObjects for orderrowAllocator
- a reference to a saved object that generates rows of the right size and shape for the sourcemaxRowSize
- the size of the row that is allocated by rowAllocator. size should be the maximum size of the sum of all the datatypes. user type are necessarily approximatedresultSetNumber
- The resultSetNumber for the ResultSetoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizerisRollup
- true if this is a GROUP BY ROLLUP()- Returns:
- the scalar aggregation operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getDistinctGroupedAggregateResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, boolean, int, int, int, int, int, double, double, boolean)
-
getAnyResultSet
public NoPutResultSet getAnyResultSet(NoPutResultSet source, GeneratedMethod emptyRowFun, int resultSetNumber, int subqueryNumber, int pointOfAttachment, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Description copied from interface:ResultSetFactory
An any result set iterates over its source, returning a row with all columns set to nulls if the source returns no rows.- Specified by:
getAnyResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be filtered by this operation.emptyRowFun
- a reference to a method in the activation that is called if the source returns no rowsresultSetNumber
- The resultSetNumber for the ResultSetsubqueryNumber
- The subquery number for this subquery.pointOfAttachment
- The point of attachment for this subquery.optimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the any operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getAnyResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, org.apache.derby.iapi.services.loader.GeneratedMethod, int, int, int, double, double)
-
getOnceResultSet
public NoPutResultSet getOnceResultSet(NoPutResultSet source, GeneratedMethod emptyRowFun, int cardinalityCheck, int resultSetNumber, int subqueryNumber, int pointOfAttachment, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Description copied from interface:ResultSetFactory
A once result set iterates over its source, raising an error if the source returns > 1 row and returning a row with all columns set to nulls if the source returns no rows.- Specified by:
getOnceResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set from which to take rows to be filtered by this operation.emptyRowFun
- a reference to a method in the activation that is called if the source returns no rowscardinalityCheck
- The type of cardinality check, if any that is requiredresultSetNumber
- The resultSetNumber for the ResultSetsubqueryNumber
- The subquery number for this subquery.pointOfAttachment
- The point of attachment for this subquery.optimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the once operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getOnceResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, org.apache.derby.iapi.services.loader.GeneratedMethod, int, int, int, int, double, double)
-
getRowResultSet
public NoPutResultSet getRowResultSet(Activation activation, GeneratedMethod row, boolean canCacheRow, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost)
Description copied from interface:ResultSetFactory
A row result set forms a result set on a single, known row value. It is used to turn constant rows into result sets for use in the result set paradigm. The row can be constructed when it is requested from the result set.- Specified by:
getRowResultSet
in interfaceResultSetFactory
- Parameters:
activation
- the activation for this result set, against which the row operation is performed to create the result set.row
- a reference to a method in the activation that creates the expected row.ExecRow row() throws StandardException; canCacheRow
- True if execution can cache the input row after it has gotten it. If the input row is constructed soley of constants or parameters, it is ok to cache this row rather than recreating it each time it is requested.resultSetNumber
- The resultSetNumber for the ResultSetoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the row as a result set.
- See Also:
ResultSetFactory.getRowResultSet(org.apache.derby.iapi.sql.Activation, org.apache.derby.iapi.services.loader.GeneratedMethod, boolean, int, double, double)
-
getVTIResultSet
public NoPutResultSet getVTIResultSet(Activation activation, int row, int resultSetNumber, GeneratedMethod constructor, java.lang.String javaClassName, Qualifier[][] pushedQualifiers, int erdNumber, boolean version2, boolean reuseablePs, int ctcNumber, boolean isTarget, int scanIsolationLevel, double optimizerEstimatedRowCount, double optimizerEstimatedCost, boolean isDerbyStyleTableFunction, int returnTypeNumber, int vtiProjectionNumber, int vtiRestrictionNumber, java.lang.String vtiSchema, java.lang.String vtiName) throws StandardException
Description copied from interface:ResultSetFactory
A VTI result set wraps a user supplied result set.- Specified by:
getVTIResultSet
in interfaceResultSetFactory
- Parameters:
activation
- the activation for this result set, against which the row operation is performed to create the result set.row
- a reference to a saved object that creates the expected row.resultSetNumber
- The resultSetNumber for the ResultSetconstructor
- The GeneratedMethod for the user's constructorjavaClassName
- The java class name for the VTIerdNumber
- int for referenced column BitSet (so it can be turned back into an object)version2
- Whether or not VTI is a version 2 VTI.isTarget
- Whether or not VTI is a target VTI.optimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizerisDerbyStyleTableFunction
- True if this is a Derby-style table functionreturnTypeNumber
- Which saved object contains the return type (a multi-set) serialized as a byte arrayvtiProjectionNumber
- Which saved object contains the projection for a RestrictedVTIvtiRestrictionNumber
- Which saved object contains the restriction for a RestrictedVTIvtiSchema
- Name of the schema holding the table function.vtiName
- Name of the table function.- Returns:
- the row as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getVTIResultSet(org.apache.derby.iapi.sql.Activation, int, int, org.apache.derby.iapi.services.loader.GeneratedMethod, java.lang.String, org.apache.derby.iapi.store.access.Qualifier[][], int, boolean, boolean, int, boolean, int, double, double, boolean, int, int, int, java.lang.String, java.lang.String)
-
getHashScanResultSet
public NoPutResultSet getHashScanResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, GeneratedMethod startKeyGetter, int startSearchOperator, GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, Qualifier[][] scanQualifiers, Qualifier[][] nextQualifiers, int initialCapacity, float loadFactor, int maxCapacity, int hashKeyColumn, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, boolean forUpdate, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
a hash scan generator, for ease of use at present.- Specified by:
getHashScanResultSet
in interfaceResultSetFactory
- Parameters:
activation
- the activation for this result set, which provides the context for the row allocation operation.conglomId
- the conglomerate of the table to be scanned.scociItem
- The saved item for the static conglomerate info.resultRowTemplate
- The saved item for result row template.resultSetNumber
- The resultSetNumber for the ResultSetstartKeyGetter
- a reference to a method in the activation that gets the start key indexable row for the scan. Null means there is no start key.ExecIndexRow startKeyGetter() throws StandardException; startSearchOperator
- The start search operator for opening the scanstopKeyGetter
- a reference to a method in the activation that gets the stop key indexable row for the scan. Null means there is no stop key.ExecIndexRow stopKeyGetter() throws StandardException; stopSearchOperator
- The stop search operator for opening the scansameStartStopPosition
- Re-use the startKeyGetter for the stopKeyGetter (Exact match search.)scanQualifiers
- the array of Qualifiers for the scan. Null or an array length of zero means there are no qualifiers.nextQualifiers
- the array of Qualifiers for the look up into the hash table.initialCapacity
- The initialCapacity for the HashTable.loadFactor
- The loadFactor for the HashTable.maxCapacity
- The maximum size for the HashTable.hashKeyColumn
- The 0-based column # for the hash key.tableName
- The full name of the tableuserSuppliedOptimizerOverrides
- Overrides specified by the user on the sqlindexName
- The name of the index, if one used to access table.isConstraint
- If index, if used, is a backing index for a constraint.forUpdate
- True means open for updatecolRefItem
- An saved item for a bitSet of columns that are referenced in the underlying table. -1 if no item.lockMode
- The lock granularity to use (see TransactionController in access)tableLocked
- Whether or not the table is marked as using table locking (in sys.systables)isolationLevel
- Isolation level (specified or not) to use on scansoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the table scan operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getHashScanResultSet(org.apache.derby.iapi.sql.Activation, long, int, int, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, boolean, org.apache.derby.iapi.store.access.Qualifier[][], org.apache.derby.iapi.store.access.Qualifier[][], int, float, int, int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int, int, int, boolean, int, double, double)
-
getDistinctScanResultSet
public NoPutResultSet getDistinctScanResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, int hashKeyColumn, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, int colRefItem, int lockMode, boolean tableLocked, int isolationLevel, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
a distinct scan generator, for ease of use at present.- Specified by:
getDistinctScanResultSet
in interfaceResultSetFactory
- Parameters:
activation
- the activation for this result set, which provides the context for the row allocation operation.conglomId
- the conglomerate of the table to be scanned.scociItem
- The saved item for the static conglomerate info.resultRowTemplate
- The saved item for result row template.resultSetNumber
- The resultSetNumber for the ResultSethashKeyColumn
- The 0-based column # for the hash key.tableName
- The full name of the tableuserSuppliedOptimizerOverrides
- Overrides specified by the user on the sqlindexName
- The name of the index, if one used to access table.isConstraint
- If index, if used, is a backing index for a constraint.colRefItem
- An saved item for a bitSet of columns that are referenced in the underlying table. -1 if no item.lockMode
- The lock granularity to use (see TransactionController in access)tableLocked
- Whether or not the table is marked as using table locking (in sys.systables)isolationLevel
- Isolation level (specified or not) to use on scansoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the table scan operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getHashScanResultSet(org.apache.derby.iapi.sql.Activation, long, int, int, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, boolean, org.apache.derby.iapi.store.access.Qualifier[][], org.apache.derby.iapi.store.access.Qualifier[][], int, float, int, int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int, int, int, boolean, int, double, double)
-
getTableScanResultSet
public NoPutResultSet getTableScanResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, GeneratedMethod startKeyGetter, int startSearchOperator, GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, Qualifier[][] qualifiers, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, boolean forUpdate, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel, boolean oneRowScan, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
a minimal table scan generator, for ease of use at present.- Specified by:
getTableScanResultSet
in interfaceResultSetFactory
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getTableScanResultSet(org.apache.derby.iapi.sql.Activation, long, int, int, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, boolean, org.apache.derby.iapi.store.access.Qualifier[][], java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int, int, int, boolean, int, boolean, double, double)
-
getValidateCheckConstraintResultSet
public NoPutResultSet getValidateCheckConstraintResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, GeneratedMethod startKeyGetter, int startSearchOperator, GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, Qualifier[][] qualifiers, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, boolean forUpdate, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel, boolean oneRowScan, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Description copied from interface:ResultSetFactory
A table scan result set forms a result set on a scan of a table. The rows can be constructed as they are requested from the result set.This form of the table scan operation is simple, and is to be used when there are no predicates to be passed down to the scan to limit its scope on the target table.
- Specified by:
getValidateCheckConstraintResultSet
in interfaceResultSetFactory
- Parameters:
activation
- the activation for this result set, which provides the context for the row allocation operation.conglomId
- the conglomerate of the table to be scanned.scociItem
- The saved item for the static conglomerate info.resultRowTemplate
- The saved item for result row template.resultSetNumber
- The resultSetNumber for the ResultSetstartKeyGetter
- a reference to a method in the activation that gets the start key indexable row for the scan. Null means there is no start key.ExecIndexRow startKeyGetter() throws StandardException; startSearchOperator
- The start search operator for opening the scanstopKeyGetter
- a reference to a method in the activation that gets the stop key indexable row for the scan. Null means there is no stop key.ExecIndexRow stopKeyGetter() throws StandardException; stopSearchOperator
- The stop search operator for opening the scansameStartStopPosition
- Re-use the startKeyGetter for the stopKeyGetter (Exact match search.)qualifiers
- the array of Qualifiers for the scan. Null or an array length of zero means there are no qualifiers.tableName
- The full name of the tableuserSuppliedOptimizerOverrides
- Overrides specified by the user on the sqlindexName
- The name of the index, if one used to access table.isConstraint
- If index, if used, is a backing index for a constraint.forUpdate
- True means open for updatecolRefItem
- An saved item for a bitSet of columns that are referenced in the underlying table. -1 if no item.lockMode
- The lock granularity to use (see TransactionController in access)tableLocked
- Whether or not the table is marked as using table locking (in sys.systables)isolationLevel
- Isolation level (specified or not) to use on scansoneRowScan
- Whether or not this is a 1 row scan.optimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the table scan operation as a result set.
- Throws:
StandardException
- thrown when unable to create the result set
-
getBulkTableScanResultSet
public NoPutResultSet getBulkTableScanResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, GeneratedMethod startKeyGetter, int startSearchOperator, GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, Qualifier[][] qualifiers, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, boolean forUpdate, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel, int rowsPerRead, boolean disableForHoldable, boolean oneRowScan, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Table/Index scan where rows are read in bulk- Specified by:
getBulkTableScanResultSet
in interfaceResultSetFactory
- Parameters:
activation
- the activation for this result set, which provides the context for the row allocation operation.conglomId
- the conglomerate of the table to be scanned.scociItem
- The saved item for the static conglomerate info.resultRowTemplate
- The saved item for result row template.resultSetNumber
- The resultSetNumber for the ResultSetstartKeyGetter
- a reference to a method in the activation that gets the start key indexable row for the scan. Null means there is no start key.ExecIndexRow startKeyGetter() throws StandardException; startSearchOperator
- The start search operator for opening the scanstopKeyGetter
- a reference to a method in the activation that gets the stop key indexable row for the scan. Null means there is no stop key.ExecIndexRow stopKeyGetter() throws StandardException; stopSearchOperator
- The stop search operator for opening the scansameStartStopPosition
- Re-use the startKeyGetter for the stopKeyGetter (Exact match search.)qualifiers
- the array of Qualifiers for the scan. Null or an array length of zero means there are no qualifiers.tableName
- The full name of the tableuserSuppliedOptimizerOverrides
- Overrides specified by the user on the sqlindexName
- The name of the index, if one used to access table.isConstraint
- If index, if used, is a backing index for a constraint.forUpdate
- True means open for updatecolRefItem
- An saved item for a bitSet of columns that are referenced in the underlying table. -1 if no item.lockMode
- The lock granularity to use (see TransactionController in access)tableLocked
- Whether or not the table is marked as using table locking (in sys.systables)isolationLevel
- Isolation level (specified or not) to use on scansrowsPerRead
- The number of rows to read per fetch.disableForHoldable
- Whether or not bulk fetch should be disabled at runtime if the cursor is holdable.oneRowScan
- Whether or not this is a 1 row scan.optimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the table scan operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getBulkTableScanResultSet(org.apache.derby.iapi.sql.Activation, long, int, int, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, boolean, org.apache.derby.iapi.store.access.Qualifier[][], java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int, int, int, boolean, int, int, boolean, boolean, double, double)
-
getMultiProbeTableScanResultSet
public NoPutResultSet getMultiProbeTableScanResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, GeneratedMethod startKeyGetter, int startSearchOperator, GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, Qualifier[][] qualifiers, DataValueDescriptor[] probeVals, int sortRequired, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, boolean forUpdate, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel, boolean oneRowScan, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Multi-probing scan that probes an index for specific values contained in the received probe list. All index rows for which the first column equals probeVals[0] will be returned, followed by all rows for which the first column equals probeVals[1], and so on. Assumption is that we only get here if probeVals has at least one value.- Specified by:
getMultiProbeTableScanResultSet
in interfaceResultSetFactory
probeVals
- List of values with which to probe the underlying table. Should not be null.sortRequired
- Which type of sort we need for the values (ascending, descending, or none).- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getMultiProbeTableScanResultSet(org.apache.derby.iapi.sql.Activation, long, int, int, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, boolean, org.apache.derby.iapi.store.access.Qualifier[][], org.apache.derby.iapi.types.DataValueDescriptor[], int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int, int, int, boolean, int, boolean, double, double)
-
getIndexRowToBaseRowResultSet
public NoPutResultSet getIndexRowToBaseRowResultSet(long conglomId, int scociItem, NoPutResultSet source, int resultRowAllocator, int resultSetNumber, java.lang.String indexName, int heapColRefItem, int allColRefItem, int heapOnlyColRefItem, int indexColMapItem, GeneratedMethod restriction, boolean forUpdate, double optimizerEstimatedRowCount, double optimizerEstimatedCost, int baseColumnCount) throws StandardException
Description copied from interface:ResultSetFactory
An index row to base row result set gets an index row from its source and uses the RowLocation in its last column to get the row from the base conglomerate.- Specified by:
getIndexRowToBaseRowResultSet
in interfaceResultSetFactory
- Parameters:
conglomId
- Conglomerate # for the heap.scociItem
- The saved item for the static conglomerate info.source
- the source result set, which is expected to provide rows from an index conglomerateresultRowAllocator
- a reference to a method in the activation that creates a holder for the rows from the scan.ExecRow rowAllocator() throws StandardException; resultSetNumber
- The resultSetNumber for the ResultSetindexName
- The name of the index.heapColRefItem
- A saved item for a bitImpl of columns that are referenced in the underlying heap. -1 if no item.allColRefItem
- A saved item for a bitImpl of columns that are referenced in the underlying index and heap. -1 if no item.heapOnlyColRefItem
- A saved item for a bitImpl of columns that are referenced in the underlying heap only. -1 if no item.indexColMapItem
- A saved item for a ReferencedColumnsDescriptorImpl which tell which columms are coming from the index.restriction
- The restriction, if any, to be applied to the base rowforUpdate
- True means to open for updateoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizerbaseColumnCount
- Number of columns in the base table- Returns:
- the index row to base row operation as a result set.
- Throws:
StandardException
- Thrown on error- See Also:
ResultSetFactory.getIndexRowToBaseRowResultSet(long, int, org.apache.derby.iapi.sql.execute.NoPutResultSet, int, int, java.lang.String, int, int, int, int, org.apache.derby.iapi.services.loader.GeneratedMethod, boolean, double, double, int)
-
getWindowResultSet
public NoPutResultSet getWindowResultSet(Activation activation, NoPutResultSet source, int rowAllocator, int resultSetNumber, int erdNumber, GeneratedMethod restriction, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Description copied from interface:ResultSetFactory
A OLAP window on top of a regular result set. It is used to realize window functions.- Specified by:
getWindowResultSet
in interfaceResultSetFactory
- Parameters:
activation
- Activationsource
- The result set input to this result set.rowAllocator
- A reference to a saved object that generates rows of the right size and shape for the source.resultSetNumber
- The resultSetNumber for the ResultSeterdNumber
- Int for ResultDescription (so it can be turned back into an object)restriction
- The restriction, if any, to be applied to the base rowoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Throws:
StandardException
- Thrown on error- See Also:
ResultSetFactory.getWindowResultSet(org.apache.derby.iapi.sql.Activation, org.apache.derby.iapi.sql.execute.NoPutResultSet, int, int, int, org.apache.derby.iapi.services.loader.GeneratedMethod, double, double)
-
getNestedLoopJoinResultSet
public NoPutResultSet getNestedLoopJoinResultSet(NoPutResultSet leftResultSet, int leftNumCols, NoPutResultSet rightResultSet, int rightNumCols, GeneratedMethod joinClause, int resultSetNumber, boolean oneRowRightSide, boolean notExistsRightSide, double optimizerEstimatedRowCount, double optimizerEstimatedCost, java.lang.String userSuppliedOptimizerOverrides) throws StandardException
Description copied from interface:ResultSetFactory
A nested loop left outer join result set forms a result set on top of 2 other result sets. The rows can be constructed as they are requested from the result set.This form of the nested loop join operation is simple, and is to be used when there are no join predicates to be passed down to the join to limit its scope on the right ResultSet.
- Specified by:
getNestedLoopJoinResultSet
in interfaceResultSetFactory
- Parameters:
leftResultSet
- Outer ResultSet for join.leftNumCols
- Number of columns in the leftResultSetrightResultSet
- Inner ResultSet for join.rightNumCols
- Number of columns in the rightResultSetjoinClause
- a reference to a method in the activation that is applied to the activation's "current row" field to determine whether the joinClause is satisfied or not. The signature of this method isBoolean joinClause() throws StandardException; resultSetNumber
- The resultSetNumber for the ResultSetoneRowRightSide
- boolean, whether or not the right side returns a single row. (No need to do 2nd next() if it does.)notExistsRightSide
- boolean, whether or not the right side resides a NOT EXISTS base tableoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizeruserSuppliedOptimizerOverrides
- Overrides specified by the user on the sql- Returns:
- the nested loop join operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getNestedLoopJoinResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, int, org.apache.derby.iapi.sql.execute.NoPutResultSet, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, boolean, boolean, double, double, java.lang.String)
-
getHashJoinResultSet
public NoPutResultSet getHashJoinResultSet(NoPutResultSet leftResultSet, int leftNumCols, NoPutResultSet rightResultSet, int rightNumCols, GeneratedMethod joinClause, int resultSetNumber, boolean oneRowRightSide, boolean notExistsRightSide, double optimizerEstimatedRowCount, double optimizerEstimatedCost, java.lang.String userSuppliedOptimizerOverrides) throws StandardException
Description copied from interface:ResultSetFactory
A hash join.- Specified by:
getHashJoinResultSet
in interfaceResultSetFactory
- Parameters:
leftResultSet
- Outer ResultSet for join.leftNumCols
- Number of columns in the leftResultSetrightResultSet
- Inner ResultSet for join.rightNumCols
- Number of columns in the rightResultSetjoinClause
- a reference to a method in the activation that is applied to the activation's "current row" field to determine whether the joinClause is satisfied or not. The signature of this method isBoolean joinClause() throws StandardException; resultSetNumber
- The resultSetNumber for the ResultSetoneRowRightSide
- boolean, whether or not the right side returns a single row. (No need to do 2nd next() if it does.)notExistsRightSide
- boolean, whether or not the right side resides a NOT EXISTS base tableoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizeruserSuppliedOptimizerOverrides
- Overrides specified by the user on the sql- Returns:
- the nested loop join operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getHashJoinResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, int, org.apache.derby.iapi.sql.execute.NoPutResultSet, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, boolean, boolean, double, double, java.lang.String)
-
getNestedLoopLeftOuterJoinResultSet
public NoPutResultSet getNestedLoopLeftOuterJoinResultSet(NoPutResultSet leftResultSet, int leftNumCols, NoPutResultSet rightResultSet, int rightNumCols, GeneratedMethod joinClause, int resultSetNumber, GeneratedMethod emptyRowFun, boolean wasRightOuterJoin, boolean oneRowRightSide, boolean notExistsRightSide, double optimizerEstimatedRowCount, double optimizerEstimatedCost, java.lang.String userSuppliedOptimizerOverrides) throws StandardException
Description copied from interface:ResultSetFactory
A nested loop join result set forms a result set on top of 2 other result sets. The rows can be constructed as they are requested from the result set.This form of the nested loop join operation is simple, and is to be used when there are no join predicates to be passed down to the join to limit its scope on the right ResultSet.
- Specified by:
getNestedLoopLeftOuterJoinResultSet
in interfaceResultSetFactory
- Parameters:
leftResultSet
- Outer ResultSet for join.leftNumCols
- Number of columns in the leftResultSetrightResultSet
- Inner ResultSet for join.rightNumCols
- Number of columns in the rightResultSetjoinClause
- a reference to a method in the activation that is applied to the activation's "current row" field to determine whether the joinClause is satisfied or not. The signature of this method isBoolean joinClause() throws StandardException; resultSetNumber
- The resultSetNumber for the ResultSetemptyRowFun
- a reference to a method in the activation that is called if the right child returns no rowswasRightOuterJoin
- Whether or not this was originally a right outer joinoneRowRightSide
- boolean, whether or not the right side returns a single row. (No need to do 2nd next() if it does.)notExistsRightSide
- boolean, whether or not the right side resides a NOT EXISTS base tableoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizeruserSuppliedOptimizerOverrides
- Overrides specified by the user on the sql- Returns:
- the nested loop join operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getNestedLoopLeftOuterJoinResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, int, org.apache.derby.iapi.sql.execute.NoPutResultSet, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, org.apache.derby.iapi.services.loader.GeneratedMethod, boolean, boolean, boolean, double, double, java.lang.String)
-
getHashLeftOuterJoinResultSet
public NoPutResultSet getHashLeftOuterJoinResultSet(NoPutResultSet leftResultSet, int leftNumCols, NoPutResultSet rightResultSet, int rightNumCols, GeneratedMethod joinClause, int resultSetNumber, GeneratedMethod emptyRowFun, boolean wasRightOuterJoin, boolean oneRowRightSide, boolean notExistsRightSide, double optimizerEstimatedRowCount, double optimizerEstimatedCost, java.lang.String userSuppliedOptimizerOverrides) throws StandardException
Description copied from interface:ResultSetFactory
A left outer join using a hash join.- Specified by:
getHashLeftOuterJoinResultSet
in interfaceResultSetFactory
- Parameters:
leftResultSet
- Outer ResultSet for join.leftNumCols
- Number of columns in the leftResultSetrightResultSet
- Inner ResultSet for join.rightNumCols
- Number of columns in the rightResultSetjoinClause
- a reference to a method in the activation that is applied to the activation's "current row" field to determine whether the joinClause is satisfied or not. The signature of this method isBoolean joinClause() throws StandardException; resultSetNumber
- The resultSetNumber for the ResultSetemptyRowFun
- a reference to a method in the activation that is called if the right child returns no rowswasRightOuterJoin
- Whether or not this was originally a right outer joinoneRowRightSide
- boolean, whether or not the right side returns a single row. (No need to do 2nd next() if it does.)notExistsRightSide
- boolean, whether or not the right side resides a NOT EXISTS base tableoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizeruserSuppliedOptimizerOverrides
- Overrides specified by the user on the sql- Returns:
- the nested loop join operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getHashLeftOuterJoinResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, int, org.apache.derby.iapi.sql.execute.NoPutResultSet, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, org.apache.derby.iapi.services.loader.GeneratedMethod, boolean, boolean, boolean, double, double, java.lang.String)
-
getSetTransactionResultSet
public ResultSet getSetTransactionResultSet(Activation activation) throws StandardException
- Specified by:
getSetTransactionResultSet
in interfaceResultSetFactory
- Parameters:
activation
- the activation for this result set- Returns:
- ResultSet A wrapper result set to run the Execution-time logic.
- Throws:
StandardException
- thrown when unable to create the result set- See Also:
ResultSetFactory.getSetTransactionResultSet(org.apache.derby.iapi.sql.Activation)
-
getMaterializedResultSet
public NoPutResultSet getMaterializedResultSet(NoPutResultSet source, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Description copied from interface:ResultSetFactory
A ResultSet which materializes the underlying ResultSet tree into a temp table on the 1st open. All subsequent "scans" of this ResultSet will return results from the temp table.- Specified by:
getMaterializedResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set input to this result set.resultSetNumber
- The resultSetNumber for the ResultSetoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the materialization operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getMaterializedResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, int, double, double)
-
getScrollInsensitiveResultSet
public NoPutResultSet getScrollInsensitiveResultSet(NoPutResultSet source, Activation activation, int resultSetNumber, int sourceRowWidth, boolean scrollable, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Description copied from interface:ResultSetFactory
A ResultSet which provides the insensitive scrolling functionality for the underlying result set by materializing the underlying ResultSet tree into a hash table while scrolling forward.- Specified by:
getScrollInsensitiveResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set input to this result set.activation
- the activation for this result set, which provides the context for normalization.resultSetNumber
- The resultSetNumber for the ResultSetsourceRowWidth
- The # of columns in the source row.optimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the materialization operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getScrollInsensitiveResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, org.apache.derby.iapi.sql.Activation, int, int, boolean, double, double)
-
getNormalizeResultSet
public NoPutResultSet getNormalizeResultSet(NoPutResultSet source, int resultSetNumber, int erdNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost, boolean forUpdate) throws StandardException
Description copied from interface:ResultSetFactory
REMIND: needs more description...- Specified by:
getNormalizeResultSet
in interfaceResultSetFactory
- Parameters:
source
- the result set input to this result set.resultSetNumber
- The resultSetNumber for the ResultSeterdNumber
- int for ResultDescription (so it can be turned back into an object)optimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the normalization operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getNormalizeResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, int, int, double, double, boolean)
-
getCurrentOfResultSet
public NoPutResultSet getCurrentOfResultSet(java.lang.String cursorName, Activation activation, int resultSetNumber)
Description copied from interface:ResultSetFactory
A current of result set forms a result set on the current row of an open cursor. It is used to perform positioned operations such as positioned update and delete, using the result set paradigm.- Specified by:
getCurrentOfResultSet
in interfaceResultSetFactory
- Parameters:
cursorName
- the name of the cursor providing the row.resultSetNumber
- The resultSetNumber for the ResultSet- See Also:
ResultSetFactory.getCurrentOfResultSet(java.lang.String, org.apache.derby.iapi.sql.Activation, int)
-
getDDLResultSet
public ResultSet getDDLResultSet(Activation activation) throws StandardException
Description copied from interface:ResultSetFactory
Generic DDL result set creation.- Specified by:
getDDLResultSet
in interfaceResultSetFactory
- Parameters:
activation
- the activation for this result set- Returns:
- ResultSet A wrapper result set to run the Execution-time logic.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getDDLResultSet(org.apache.derby.iapi.sql.Activation)
-
getMiscResultSet
public ResultSet getMiscResultSet(Activation activation) throws StandardException
Description copied from interface:ResultSetFactory
Generic Misc result set creation.- Specified by:
getMiscResultSet
in interfaceResultSetFactory
- Parameters:
activation
- the activation for this result set- Returns:
- ResultSet A wrapper result set to run the Execution-time logic.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getMiscResultSet(org.apache.derby.iapi.sql.Activation)
-
getUnionResultSet
public NoPutResultSet getUnionResultSet(NoPutResultSet leftResultSet, NoPutResultSet rightResultSet, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
a minimal union scan generator, for ease of use at present.- Specified by:
getUnionResultSet
in interfaceResultSetFactory
- Parameters:
leftResultSet
- The first ResultSet whose rows go into the unionrightResultSet
- The second ResultSet whose rows go into the unionresultSetNumber
- The resultSetNumber for the ResultSetoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- A ResultSet from which the caller can get the union of the two source ResultSets.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getUnionResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, org.apache.derby.iapi.sql.execute.NoPutResultSet, int, double, double)
-
getSetOpResultSet
public NoPutResultSet getSetOpResultSet(NoPutResultSet leftSource, NoPutResultSet rightSource, Activation activation, int resultSetNumber, long optimizerEstimatedRowCount, double optimizerEstimatedCost, int opType, boolean all, int intermediateOrderByColumnsSavedObject, int intermediateOrderByDirectionSavedObject, int intermediateOrderByNullsLowSavedObject) throws StandardException
Description copied from interface:ResultSetFactory
The SetOpResultSet is used to implement an INTERSECT or EXCEPT operation. It selects rows from two ordered input result sets.- Specified by:
getSetOpResultSet
in interfaceResultSetFactory
- Parameters:
leftSource
- The result set that implements the left inputrightSource
- The result set that implements the right inputactivation
- the activation for this result setopType
- IntersectOrExceptNode.INTERSECT_OP or EXCEPT_OPall
- true if the operation is an INTERSECT ALL or an EXCEPT ALL, false if the operation is an INTERSECT DISCTINCT or an EXCEPT DISCTINCTintermediateOrderByColumnsSavedObject
- The saved object index for the array of order by columns for the ordering of the left and right sources. That is, both the left and right sources have an order by clause of the form ORDER BY intermediateOrderByColumns[0],intermediateOrderByColumns[1],...intermediateOrderByDirectionSavedObject
- The saved object index for the array of source order by directions. That is, the ordering of the i'th order by column in the input is ascending if intermediateOrderByDirection[i] is 1, descending if intermediateOrderByDirection[i] is -1.- Returns:
- A ResultSet from which the caller can get the INTERSECT or EXCEPT
- Throws:
StandardException
- Thrown on failure
-
getLastIndexKeyResultSet
public NoPutResultSet getLastIndexKeyResultSet(Activation activation, int resultSetNumber, int resultRowTemplate, long conglomId, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, int colRefItem, int lockMode, boolean tableLocked, int isolationLevel, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
A last index key sresult set returns the last row from the index in question. It is used as an ajunct to max().- Specified by:
getLastIndexKeyResultSet
in interfaceResultSetFactory
- Parameters:
activation
- the activation for this result set, which provides the context for the row allocation operation.resultSetNumber
- The resultSetNumber for the ResultSetresultRowTemplate
- The saved item for result row templateconglomId
- the conglomerate of the table to be scanned.tableName
- The full name of the tableuserSuppliedOptimizerOverrides
- Overrides specified by the user on the sqlindexName
- The name of the index, if one used to access table.colRefItem
- An saved item for a bitSet of columns that are referenced in the underlying table. -1 if no item.lockMode
- The lock granularity to use (see TransactionController in access)tableLocked
- Whether or not the table is marked as using table locking (in sys.systables)isolationLevel
- Isolation level (specified or not) to use on scansoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Returns:
- the scan operation as a result set.
- Throws:
StandardException
- thrown when unable to create the result set
-
getRaDependentTableScanResultSet
public NoPutResultSet getRaDependentTableScanResultSet(Activation activation, long conglomId, int scociItem, int resultRowTemplate, int resultSetNumber, GeneratedMethod startKeyGetter, int startSearchOperator, GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, Qualifier[][] qualifiers, java.lang.String tableName, java.lang.String userSuppliedOptimizerOverrides, java.lang.String indexName, boolean isConstraint, boolean forUpdate, int colRefItem, int indexColItem, int lockMode, boolean tableLocked, int isolationLevel, boolean oneRowScan, double optimizerEstimatedRowCount, double optimizerEstimatedCost, java.lang.String parentResultSetId, long fkIndexConglomId, int fkColArrayItem, int rltItem) throws StandardException
a referential action dependent table scan generator.- Specified by:
getRaDependentTableScanResultSet
in interfaceResultSetFactory
- Parameters:
activation
- the activation for this result set, which provides the context for the row allocation operation.conglomId
- the conglomerate of the table to be scanned.scociItem
- The saved item for the static conglomerate info.resultRowTemplate
- The saved item for result row template.resultSetNumber
- The resultSetNumber for the ResultSetstartKeyGetter
- a reference to a method in the activation that gets the start key indexable row for the scan. Null means there is no start key.ExecIndexRow startKeyGetter() throws StandardException; startSearchOperator
- The start search operator for opening the scanstopKeyGetter
- a reference to a method in the activation that gets the stop key indexable row for the scan. Null means there is no stop key.ExecIndexRow stopKeyGetter() throws StandardException; stopSearchOperator
- The stop search operator for opening the scansameStartStopPosition
- Re-use the startKeyGetter for the stopKeyGetter (Exact match search.)qualifiers
- the array of Qualifiers for the scan. Null or an array length of zero means there are no qualifiers.tableName
- The full name of the tableuserSuppliedOptimizerOverrides
- Overrides specified by the user on the sqlindexName
- The name of the index, if one used to access table.isConstraint
- If index, if used, is a backing index for a constraint.forUpdate
- True means open for updatecolRefItem
- An saved item for a bitSet of columns that are referenced in the underlying table. -1 if no item.lockMode
- The lock granularity to use (see TransactionController in access)tableLocked
- Whether or not the table is marked as using table locking (in sys.systables)isolationLevel
- Isolation level (specified or not) to use on scansoneRowScan
- Whether or not this is a 1 row scan.optimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizerparentResultSetId
- Id to access the materialized temporary result set from the reference stored in the activation.fkIndexConglomId
- foreign key index conglomerate id.fkColArrayItem
- saved column array object that matches the foreign key index columns and the resultset from the parent table.rltItem
- row location template- Returns:
- the table scan operation as a result set.
- Throws:
StandardException
- thrown on error- See Also:
ResultSetFactory.getTableScanResultSet(org.apache.derby.iapi.sql.Activation, long, int, int, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, org.apache.derby.iapi.services.loader.GeneratedMethod, int, boolean, org.apache.derby.iapi.store.access.Qualifier[][], java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int, int, int, boolean, int, boolean, double, double)
-
getRowCountResultSet
public NoPutResultSet getRowCountResultSet(NoPutResultSet source, Activation activation, int resultSetNumber, GeneratedMethod offsetMethod, GeneratedMethod fetchFirstMethod, boolean hasJDBClimitClause, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
Description copied from interface:ResultSetFactory
This result sets implements the filtering needed byand . It is only ever generated if at least one of the two clauses is present. - Specified by:
getRowCountResultSet
in interfaceResultSetFactory
- Parameters:
source
- The source result set being filteredactivation
- The activation for this result set, which provides the context for the row allocation operationresultSetNumber
- The resultSetNumber for the ResultSetoffsetMethod
- The OFFSET parameter was specifiedfetchFirstMethod
- The FETCH FIRST/NEXT parameter was specifiedhasJDBClimitClause
- True if the offset/fetchFirst clauses were added by JDBC LIMIT escape syntaxoptimizerEstimatedRowCount
- Estimated total # of rows by optimizeroptimizerEstimatedCost
- Estimated total cost by optimizer- Throws:
StandardException
- Standard error policy- See Also:
ResultSetFactory.getRowCountResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet, org.apache.derby.iapi.sql.Activation, int, org.apache.derby.iapi.services.loader.GeneratedMethod, org.apache.derby.iapi.services.loader.GeneratedMethod, boolean, double, double)
-
getAuthorizer
private static Authorizer getAuthorizer(Activation activation)
-
-