|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl
org.apache.derby.impl.sql.execute.NoPutResultSetImpl
org.apache.derby.impl.sql.execute.ScanResultSet
org.apache.derby.impl.sql.execute.TableScanResultSet
class TableScanResultSet
Takes a table and a table filter and returns the table's rows satisfying the filter as a result set. There are several things we could do during object construction that are done in the open & next calls, to improve performance.
Fields inherited from class org.apache.derby.impl.sql.execute.ScanResultSet |
---|
accessedCols, candidate, isolationLevel, lockMode |
Fields inherited from class org.apache.derby.impl.sql.execute.NoPutResultSetImpl |
---|
checkNullCols, clonedExecRow, cncLen, resultSetNumber, targetResultSet |
Fields inherited from class org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl |
---|
activation, beginTime, closeTime, compactRow, constructorTime, currentRow, endExecutionTime, finished, isOpen, isTopResultSet, nextTime, numOpens, openTime, optimizerEstimatedCost, optimizerEstimatedRowCount, resultDescription, rowsFiltered, rowsSeen, startExecutionTime, subqueryTrackingArray |
Fields inherited from interface org.apache.derby.iapi.sql.ResultSet |
---|
CURRENT_RESULTSET_ONLY, ENTIRE_RESULTSET_TREE, ISAFTERLAST, ISBEFOREFIRST, ISFIRST, ISLAST |
Fields inherited from interface org.apache.derby.iapi.sql.execute.NoPutResultSet |
---|
ABSOLUTE, FIRST, LAST, NEXT, PREVIOUS, RELATIVE |
Constructor Summary | |
---|---|
TableScanResultSet(long conglomId,
StaticCompiledOpenConglomInfo scoci,
Activation activation,
GeneratedMethod resultRowAllocator,
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 oneRowScan,
double optimizerEstimatedRowCount,
double optimizerEstimatedCost)
|
Method Summary | |
---|---|
protected boolean |
canGetInstantaneousLocks()
Can we get instantaneous locks when getting share row locks at READ COMMITTED. |
java.lang.Object |
clone()
Shallow clone this result set. |
void |
close()
If the result set has been opened, close the open scan. |
ExecRow |
getCurrentRow()
This result set has its row from the last fetch done. |
ExecRow |
getNextRowCore()
Return the next row (if any) from the scan (if open). |
RowLocation |
getRowLocation()
This result set has its row location from the last fetch done. |
java.util.Properties |
getScanProperties()
|
private void |
getSparseRowAndMap()
Check and make sure sparse heap row and accessed bit map are created. |
long |
getTimeSpent(int type)
Return the total amount of time spent in this ResultSet |
(package private) void |
initStartAndStopKey()
Initialize the startPosition and stopPosition fields
which are used to limit the rows returned by the scan. |
boolean |
isForUpdate()
Is this ResultSet or it's source result set for update |
void |
openCore()
open a scan on the table. scan parameters are evaluated at each open, so there is probably some way of altering their values... |
protected void |
openScanController(TransactionController tc)
|
void |
positionScanAtRowLocation(RowLocation rl)
Positions the cursor in the specified rowLocation. |
private java.lang.String |
printPosition(int searchOperator,
GeneratedMethod positionGetter,
ExecIndexRow positioner)
Return a start or stop positioner as a String. |
java.lang.String |
printStartPosition()
Print an array of Qualifiers to the trace stream. |
java.lang.String |
printStopPosition()
|
void |
reopenCore()
Reopen a table scan. |
protected void |
reopenScanController()
|
boolean |
requiresRelocking()
Do we need to relock the row when going to the heap. |
protected void |
setRowCountIfPossible(long rowsThisScan)
Update the number of rows in the scan controller. |
Methods inherited from class org.apache.derby.impl.sql.execute.ScanResultSet |
---|
getScanIsolationLevel, initIsolationLevel |
Methods inherited from class org.apache.derby.impl.sql.execute.NoPutResultSetImpl |
---|
clearCurrentRow, clearOrderableCache, closeRowSource, getCursorName, getNextRowFromRowSource, getResultDescription, getValidColumns, markRowAsDeleted, needsRowLocation, needsToClone, printQualifiers, resultSetNumber, rowLocation, setCurrentRow, setNeedsRowLocation, setTargetResultSet, skipRow, skipScan, updateRow |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.apache.derby.iapi.sql.ResultSet |
---|
checkRowPosition, cleanUp, clearCurrentRow, finish, getAbsoluteRow, getActivation, getAutoGeneratedKeysResultset, getBeginExecutionTimestamp, getCursorName, getEndExecutionTimestamp, getExecuteTime, getFirstRow, getLastRow, getNextRow, getPreviousRow, getRelativeRow, getResultDescription, getRowNumber, getSubqueryTrackingArray, getWarnings, isClosed, modifiedRowCount, open, returnsRows, setAfterLastRow, setBeforeFirstRow |
Field Detail |
---|
protected ScanController scanController
protected boolean scanControllerOpened
protected boolean isKeyed
protected boolean firstScan
protected ExecIndexRow startPosition
protected ExecIndexRow stopPosition
protected long conglomId
protected DynamicCompiledOpenConglomInfo dcoci
protected StaticCompiledOpenConglomInfo scoci
protected GeneratedMethod resultRowAllocator
protected GeneratedMethod startKeyGetter
protected int startSearchOperator
protected GeneratedMethod stopKeyGetter
protected int stopSearchOperator
public Qualifier[][] qualifiers
public java.lang.String tableName
public java.lang.String userSuppliedOptimizerOverrides
public java.lang.String indexName
protected boolean runTimeStatisticsOn
protected int[] indexCols
public int rowsPerRead
public boolean forUpdate
final boolean sameStartStopPosition
private boolean nextDone
private RowLocation rlTemplate
private java.util.Properties scanProperties
public java.lang.String startPositionString
public java.lang.String stopPositionString
public boolean isConstraint
public boolean coarserLock
public boolean oneRowScan
protected long rowsThisScan
private long estimatedRowCount
protected java.util.Hashtable past2FutureTbl
protected TemporaryRowHolder futureForUpdateRows
protected TemporaryRowHolderResultSet futureRowResultSet
protected boolean skipFutureRowHolder
protected boolean sourceDrained
protected boolean currentRowPrescanned
protected boolean compareToLastKey
protected ExecRow lastCursorKey
private ExecRow sparseRow
private FormatableBitSet sparseRowMap
private boolean qualify
private boolean currentRowIsValid
private boolean scanRepositioned
Constructor Detail |
---|
TableScanResultSet(long conglomId, StaticCompiledOpenConglomInfo scoci, Activation activation, GeneratedMethod resultRowAllocator, 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 oneRowScan, double optimizerEstimatedRowCount, double optimizerEstimatedCost) throws StandardException
StandardException
Method Detail |
---|
public void openCore() throws StandardException
openCore
in interface NoPutResultSet
StandardException
- thrown on failure to openvoid initStartAndStopKey() throws StandardException
startPosition
and stopPosition
fields
which are used to limit the rows returned by the scan.
StandardException
protected void openScanController(TransactionController tc) throws StandardException
StandardException
protected void reopenScanController() throws StandardException
StandardException
public void reopenCore() throws StandardException
reopenCore
in interface NoPutResultSet
reopenCore
in class BasicNoPutResultSetImpl
StandardException
- thrown on failure to openNoPutResultSet.openCore()
private void getSparseRowAndMap() throws StandardException
StandardException
- thrown on failurepublic ExecRow getNextRowCore() throws StandardException
getNextRowCore
in interface NoPutResultSet
getNextRowCore
in class BasicNoPutResultSetImpl
StandardException
- thrown on failure to get next rowNoPutResultSet.getNextRowCore()
public void close() throws StandardException
close
in interface ResultSet
close
in class ScanResultSet
StandardException
- on errorpublic long getTimeSpent(int type)
getTimeSpent
in interface ResultSet
type
- CURRENT_RESULTSET_ONLY - time spent only in this ResultSet
ENTIRE_RESULTSET_TREE - time spent in this ResultSet and below.
public RowLocation getRowLocation() throws StandardException
getRowLocation
in interface CursorResultSet
StandardException
- thrown on failure to get row locationCursorResultSet
public ExecRow getCurrentRow() throws StandardException
getCurrentRow
in interface CursorResultSet
StandardException
- thrown on failure.CursorResultSet
public void positionScanAtRowLocation(RowLocation rl) throws StandardException
NoPutResultSet
positionScanAtRowLocation
in interface NoPutResultSet
positionScanAtRowLocation
in class NoPutResultSetImpl
rl
- row location of the current cursor row
StandardException
- thrown on failure to
get location from storage engineAlso sets qualify to false so that later calls to getCurrentRow
will not attempt to re-qualify the current row.
public java.lang.String printStartPosition()
public java.lang.String printStopPosition()
private java.lang.String printPosition(int searchOperator, GeneratedMethod positionGetter, ExecIndexRow positioner)
public java.util.Properties getScanProperties()
public boolean requiresRelocking()
NoPutResultSet
requiresRelocking
in interface NoPutResultSet
requiresRelocking
in class BasicNoPutResultSetImpl
NoPutResultSet.requiresRelocking()
protected final void setRowCountIfPossible(long rowsThisScan) throws StandardException
rowsThisScan
- The number of rows to update the scanController to
StandardException
- Thrown on errorprotected boolean canGetInstantaneousLocks()
canGetInstantaneousLocks
in class ScanResultSet
public boolean isForUpdate()
isForUpdate
in interface NoPutResultSet
isForUpdate
in class NoPutResultSetImpl
public java.lang.Object clone()
clone
in class java.lang.Object
|
Built on Thu 2012-03-29 21:53:33+0000, from revision ??? | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |