Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.derby.impl.sql.execute
Class TableScanResultSet  view TableScanResultSet download TableScanResultSet.java

java.lang.Object
  extended byorg.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl
      extended byorg.apache.derby.impl.sql.execute.NoPutResultSetImpl
          extended byorg.apache.derby.impl.sql.execute.TableScanResultSet
All Implemented Interfaces:
java.lang.Cloneable, org.apache.derby.iapi.sql.execute.CursorResultSet, org.apache.derby.iapi.sql.execute.NoPutResultSet, org.apache.derby.iapi.sql.ResultSet, org.apache.derby.iapi.store.access.RowLocationRetRowSource, org.apache.derby.iapi.store.access.RowSource
Direct Known Subclasses:
BulkTableScanResultSet

public class TableScanResultSet
extends NoPutResultSetImpl
implements org.apache.derby.iapi.sql.execute.CursorResultSet, java.lang.Cloneable

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.


Field Summary
protected  org.apache.derby.iapi.services.io.FormatableBitSet accessedCols
           
protected  org.apache.derby.iapi.sql.Activation activation
           
 long beginTime
           
protected  org.apache.derby.iapi.sql.execute.ExecRow candidate
           
(package private)  org.apache.derby.iapi.services.loader.GeneratedMethod checkGM
           
protected  int[] checkNullCols
           
protected  org.apache.derby.iapi.sql.execute.ExecRow clonedExecRow
           
protected  org.apache.derby.iapi.services.loader.GeneratedMethod closeCleanup
           
 long closeTime
           
protected  int cncLen
           
 boolean coarserLock
           
(package private)  org.apache.derby.iapi.sql.execute.ExecRow compactRow
           
protected  boolean compareToLastKey
           
protected  long conglomId
           
 long constructorTime
           
protected  org.apache.derby.iapi.sql.execute.ExecRow currentRow
           
protected  boolean currentRowPrescanned
           
protected  org.apache.derby.iapi.store.access.DynamicCompiledOpenConglomInfo dcoci
           
protected  long endExecutionTime
           
private  long estimatedRowCount
           
protected  boolean finished
           
protected  boolean firstScan
           
 boolean forUpdate
           
protected  org.apache.derby.iapi.sql.execute.TemporaryRowHolder futureForUpdateRows
           
protected  TemporaryRowHolderResultSet futureRowResultSet
           
(package private)  long heapConglomerate
           
protected  java.lang.String indent
           
protected  int[] indexCols
           
 java.lang.String indexName
           
 boolean isConstraint
           
protected  boolean isKeyed
           
 int isolationLevel
           
protected  boolean isOpen
           
protected  boolean isTopResultSet
           
protected  org.apache.derby.iapi.sql.execute.ExecRow lastCursorKey
           
protected  org.apache.derby.iapi.sql.conn.LanguageConnectionContext lcc
           
 int lockMode
           
private  boolean nextDone
           
 long nextTime
           
 int numOpens
           
 boolean oneRowScan
           
 long openTime
           
 double optimizerEstimatedCost
           
 double optimizerEstimatedRowCount
           
protected  java.util.Hashtable past2FutureTbl
           
 org.apache.derby.iapi.store.access.Qualifier[][] qualifiers
           
(package private)  org.apache.derby.iapi.sql.ResultDescription resultDescription
           
protected  org.apache.derby.iapi.services.loader.GeneratedMethod resultRowAllocator
           
 int resultSetNumber
           
private  org.apache.derby.iapi.types.RowLocation rlTemplate
           
 int rowsFiltered
           
 int rowsPerRead
           
 int rowsSeen
           
protected  long rowsThisScan
           
protected  boolean runTimeStatisticsOn
           
private  boolean sameStartStopPosition
           
protected  org.apache.derby.iapi.store.access.ScanController scanController
           
protected  boolean scanControllerOpened
           
private  java.util.Properties scanProperties
           
protected  org.apache.derby.iapi.store.access.StaticCompiledOpenConglomInfo scoci
           
protected  boolean skipFutureRowHolder
           
protected  int sourceDepth
           
protected  boolean sourceDrained
           
private  org.apache.derby.iapi.sql.execute.ExecRow sparseRow
           
private  org.apache.derby.iapi.services.io.FormatableBitSet sparseRowMap
           
protected  long startExecutionTime
           
protected  org.apache.derby.iapi.services.loader.GeneratedMethod startKeyGetter
           
protected  org.apache.derby.iapi.sql.execute.ExecIndexRow startPosition
           
 java.lang.String startPositionString
           
protected  int startSearchOperator
           
protected  org.apache.derby.iapi.services.loader.GeneratedMethod stopKeyGetter
           
protected  org.apache.derby.iapi.sql.execute.ExecIndexRow stopPosition
           
 java.lang.String stopPositionString
           
protected  int stopSearchOperator
           
protected  java.lang.String subIndent
           
 org.apache.derby.iapi.sql.execute.NoPutResultSet[] subqueryTrackingArray
           
 java.lang.String tableName
           
protected  org.apache.derby.iapi.sql.execute.TargetResultSet targetResultSet
           
 
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, org.apache.derby.iapi.store.access.StaticCompiledOpenConglomInfo scoci, org.apache.derby.iapi.sql.Activation activation, org.apache.derby.iapi.services.loader.GeneratedMethod resultRowAllocator, int resultSetNumber, org.apache.derby.iapi.services.loader.GeneratedMethod startKeyGetter, int startSearchOperator, org.apache.derby.iapi.services.loader.GeneratedMethod stopKeyGetter, int stopSearchOperator, boolean sameStartStopPosition, org.apache.derby.iapi.store.access.Qualifier[][] qualifiers, java.lang.String tableName, 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, org.apache.derby.iapi.services.loader.GeneratedMethod closeCleanup)
           
 
Method Summary
protected  void addWarning(java.sql.SQLWarning w)
           
protected  void attachStatementContext()
          Attach this result set to the top statement context on the stack.
protected  boolean canGetInstantaneousLocks()
          Can we get instantaneous locks when getting share row locks at READ COMMITTED.
 boolean checkRowPosition(int isType)
          Determine if the cursor is before the first row in the result set.
 void cleanUp()
          Clean up on error
 void clearCurrentRow()
          Clear the current row
protected  void clearOrderableCache(org.apache.derby.iapi.store.access.Qualifier[][] qualifiers)
          Clear the Orderable cache for each qualifier.
 java.lang.Object clone()
          Shallow clone this result set.
 void close()
          If the result set has been opened, close the open scan.
 void closeRowSource()
          closeRowSource tells the RowSource that it will no longer need to return any rows and it can release any resource it may have.
protected  java.lang.String dumpTimeStats(java.lang.String indent, java.lang.String subIndent)
          Dump out the time information for run time stats.
 void finish()
          Tells the system that there will be no more access to any database information via this result set; in particular, no more calls to open().
protected  void finishAndRTS()
           
 org.apache.derby.iapi.sql.execute.ExecRow getAbsoluteRow(int row)
          Returns the row at the absolute position from the query, and returns NULL when there is no such position.
 org.apache.derby.iapi.sql.ResultSet getAutoGeneratedKeysResultset()
          ResultSet for rows inserted into the table (contains auto-generated keys columns only)
 java.sql.Timestamp getBeginExecutionTimestamp()
          Get the Timestamp for the beginning of execution.
protected  org.apache.derby.iapi.sql.execute.ExecRow getCompactRow(org.apache.derby.iapi.sql.execute.ExecRow candidate, org.apache.derby.iapi.services.io.FormatableBitSet accessedCols, org.apache.derby.iapi.services.io.FormatableBitSet otherCols, boolean isKeyed)
          Get a compacted version of the candidate row according to the columns specified in the bit map.
 org.apache.derby.iapi.sql.execute.ExecRow getCurrentRow()
          This result set has its row from the last fetch done.
protected  long getCurrentTimeMillis()
          Return the current time in milliseconds, if DEBUG and RunTimeStats is on, else return 0.
 java.lang.String getCursorName()
          Return my cursor name for JDBC.
protected  long getElapsedMillis(long beginTime)
          Return the elapsed time in milliseconds, between now and the beginTime, if DEBUG and RunTimeStats is on, else return 0.
 java.sql.Timestamp getEndExecutionTimestamp()
          Get the Timestamp for the end of execution.
 double getEstimatedRowCount()
          Get the estimated row count from this result set.
 long getExecuteTime()
          Get the execution time in milliseconds.
(package private)  org.apache.derby.iapi.sql.execute.ExecutionFactory getExecutionFactory()
          Get a execution factory
 org.apache.derby.iapi.sql.execute.ExecRow getFirstRow()
          Returns the first row from the query, and returns NULL when there are no rows.
protected  org.apache.derby.iapi.sql.conn.LanguageConnectionContext getLanguageConnectionContext()
          Cache the language connection context.
 org.apache.derby.iapi.sql.execute.ExecRow getLastRow()
          Returns the last row from the query, and returns NULL when there are no rows.
 org.apache.derby.iapi.sql.execute.ExecRow getNextRow()
          Return the requested values computed from the next row (if any) for which the restriction evaluates to true.
 org.apache.derby.iapi.sql.execute.ExecRow getNextRowCore()
          Return the next row (if any) from the scan (if open).
 org.apache.derby.iapi.types.DataValueDescriptor[] getNextRowFromRowSource()
          Get the next row as an array of column objects.
 int getPointOfAttachment()
          Return the point of attachment for this subquery.
 org.apache.derby.iapi.sql.execute.ExecRow getPreviousRow()
          Returns the previous row from the query, and returns NULL when there are no more previous rows.
 org.apache.derby.iapi.sql.execute.ExecRow getRelativeRow(int row)
          Returns the row at the relative position from the current cursor position, and returns NULL when there is no such position.
 org.apache.derby.iapi.sql.ResultDescription getResultDescription()
          Returns the description of the table's rows
 org.apache.derby.iapi.types.RowLocation getRowLocation()
          This result set has its row location from the last fetch done.
 int getRowNumber()
          Returns the row number of the current row.
 int getScanIsolationLevel()
          Return the isolation level of the scan in the result set.
 java.util.Properties getScanProperties()
           
private  void getSparseRowAndMap()
          Check and make sure sparse heap row and accessed bit map are created.
 org.apache.derby.iapi.sql.execute.NoPutResultSet[] getSubqueryTrackingArray(int numSubqueries)
          Get the subquery ResultSet tracking array from the top ResultSet.
 long getTimeSpent(int type)
          Return the total amount of time spent in this ResultSet
(package private)  org.apache.derby.iapi.store.access.TransactionController getTransactionController()
          Get the current transaction controller.
 org.apache.derby.iapi.services.io.FormatableBitSet getValidColumns()
          getValidColumns describes the DataValueDescriptor[] returned by all calls to the getNextRowFromRowSource() call.
 java.sql.SQLWarning getWarnings()
          Return the set of warnings generated during the execution of this result set.
 boolean isClosed()
          Report if closed.
 boolean isForUpdate()
          Is this ResultSet or it's source result set for update
 void markAsTopResultSet()
          Mark the ResultSet as the topmost one in the ResultSet tree.
 int modifiedRowCount()
          Returns the number of rows affected by the statement.
 boolean needsRowLocation()
          needsRowLocation returns true iff this the row source expects the drainer of the row source to call rowLocation after getting a row from getNextRowFromRowSource.
 boolean needsToClone()
          Does the caller of getNextRowFromRowSource() need to clone the row in order to keep a reference to the row past the getNextRowFromRowSource() call which returned the row.
 void open()
          open a scan on the table.
 void openCore()
          open a scan on the table.
protected  void openScanController(org.apache.derby.iapi.store.access.TransactionController tc)
           
private  java.lang.String printPosition(int searchOperator, org.apache.derby.iapi.services.loader.GeneratedMethod positionGetter, org.apache.derby.iapi.sql.execute.ExecIndexRow positioner)
          Return a start or stop positioner as a String.
static java.lang.String printQualifiers(org.apache.derby.iapi.store.access.Qualifier[][] qualifiers)
          Return a 2-d array of Qualifiers 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.
private  void reopenScanController()
           
 boolean requiresRelocking()
          Do we need to relock the row when going to the heap.
 int resultSetNumber()
          Get the number of this ResultSet, which is guaranteed to be unique within a statement.
 boolean returnsRows()
          Returns true.
 void rowLocation(org.apache.derby.iapi.types.RowLocation rl)
          rowLocation is a callback for the drainer of the row source to return the rowLocation of the current row, i.e, the row that is being returned by getNextRowFromRowSource.
 org.apache.derby.iapi.sql.execute.ExecRow setAfterLastRow()
          Sets the current position to after the last row and returns NULL because there is no current row.
 org.apache.derby.iapi.sql.execute.ExecRow setBeforeFirstRow()
          Sets the current position to before the first row and returns NULL because there is no current row.
protected  void setCheckConstraints(org.apache.derby.iapi.services.loader.GeneratedMethod checkGM)
          Set the GeneratedMethod for enforcing check constraints
protected  org.apache.derby.iapi.sql.execute.ExecRow setCompactRow(org.apache.derby.iapi.sql.execute.ExecRow candidateRow, org.apache.derby.iapi.sql.execute.ExecRow compactRow)
          Copy columns from the candidate row from the store to the given compact row.
protected  void setCompatRow(org.apache.derby.iapi.sql.execute.ExecRow compactRow, java.lang.Object[] sourceRow)
           
 void setCurrentRow(org.apache.derby.iapi.sql.execute.ExecRow row)
          Set the current row to the row passed in.
protected  void setHeapConglomerate(long heapConglomerate)
          Set the heap conglomerate number (used in enforcing check constraints)
 void setNeedsRowLocation(boolean needsRowLocation)
          Set whether or not the NPRS need the row location when acting as a row source.
protected  void setRowCountIfPossible(long rowsThisScan)
          Update the number of rows in the scan controller.
 void setTargetResultSet(org.apache.derby.iapi.sql.execute.TargetResultSet trs)
          Notify a NPRS that it is the source for the specified TargetResultSet.
protected  boolean skipRow(org.apache.derby.iapi.sql.execute.ExecRow row)
          Return true if we should skip the scan due to nulls in the row when the start or stop positioners on the columns containing null do not implement ordered null semantics.
protected  boolean skipScan(org.apache.derby.iapi.sql.execute.ExecIndexRow startPosition, org.apache.derby.iapi.sql.execute.ExecIndexRow stopPosition)
          Return true if we should skip the scan due to nulls in the start or stop position when the predicate on the column(s) in question do not implement ordered null semantics.
 
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, finish, getAbsoluteRow, getAutoGeneratedKeysResultset, getBeginExecutionTimestamp, getCursorName, getEndExecutionTimestamp, getExecuteTime, getFirstRow, getLastRow, getNextRow, getPreviousRow, getRelativeRow, getResultDescription, getRowNumber, getSubqueryTrackingArray, getWarnings, isClosed, modifiedRowCount, open, returnsRows, setAfterLastRow, setBeforeFirstRow
 

Field Detail

scanController

protected org.apache.derby.iapi.store.access.ScanController scanController

scanControllerOpened

protected boolean scanControllerOpened

isKeyed

protected boolean isKeyed

firstScan

protected boolean firstScan

startPosition

protected org.apache.derby.iapi.sql.execute.ExecIndexRow startPosition

stopPosition

protected org.apache.derby.iapi.sql.execute.ExecIndexRow stopPosition

candidate

protected org.apache.derby.iapi.sql.execute.ExecRow candidate

conglomId

protected long conglomId

dcoci

protected org.apache.derby.iapi.store.access.DynamicCompiledOpenConglomInfo dcoci

scoci

protected org.apache.derby.iapi.store.access.StaticCompiledOpenConglomInfo scoci

resultRowAllocator

protected org.apache.derby.iapi.services.loader.GeneratedMethod resultRowAllocator

startKeyGetter

protected org.apache.derby.iapi.services.loader.GeneratedMethod startKeyGetter

startSearchOperator

protected int startSearchOperator

stopKeyGetter

protected org.apache.derby.iapi.services.loader.GeneratedMethod stopKeyGetter

stopSearchOperator

protected int stopSearchOperator

qualifiers

public org.apache.derby.iapi.store.access.Qualifier[][] qualifiers

closeCleanup

protected org.apache.derby.iapi.services.loader.GeneratedMethod closeCleanup

tableName

public java.lang.String tableName

indexName

public java.lang.String indexName

runTimeStatisticsOn

protected boolean runTimeStatisticsOn

accessedCols

protected org.apache.derby.iapi.services.io.FormatableBitSet accessedCols

indexCols

protected int[] indexCols

rowsPerRead

public int rowsPerRead

forUpdate

public boolean forUpdate

sameStartStopPosition

private boolean sameStartStopPosition

nextDone

private boolean nextDone

rlTemplate

private org.apache.derby.iapi.types.RowLocation rlTemplate

isolationLevel

public int isolationLevel

lockMode

public int lockMode

scanProperties

private java.util.Properties scanProperties

startPositionString

public java.lang.String startPositionString

stopPositionString

public java.lang.String stopPositionString

isConstraint

public boolean isConstraint

coarserLock

public boolean coarserLock

oneRowScan

public boolean oneRowScan

rowsThisScan

protected long rowsThisScan

estimatedRowCount

private long estimatedRowCount

past2FutureTbl

protected java.util.Hashtable past2FutureTbl

futureForUpdateRows

protected org.apache.derby.iapi.sql.execute.TemporaryRowHolder futureForUpdateRows

futureRowResultSet

protected TemporaryRowHolderResultSet futureRowResultSet

skipFutureRowHolder

protected boolean skipFutureRowHolder

sourceDrained

protected boolean sourceDrained

currentRowPrescanned

protected boolean currentRowPrescanned

compareToLastKey

protected boolean compareToLastKey

lastCursorKey

protected org.apache.derby.iapi.sql.execute.ExecRow lastCursorKey

sparseRow

private org.apache.derby.iapi.sql.execute.ExecRow sparseRow

sparseRowMap

private org.apache.derby.iapi.services.io.FormatableBitSet sparseRowMap

resultSetNumber

public final int resultSetNumber

indent

protected java.lang.String indent

subIndent

protected java.lang.String subIndent

sourceDepth

protected int sourceDepth

clonedExecRow

protected org.apache.derby.iapi.sql.execute.ExecRow clonedExecRow

checkGM

org.apache.derby.iapi.services.loader.GeneratedMethod checkGM

heapConglomerate

long heapConglomerate

targetResultSet

protected org.apache.derby.iapi.sql.execute.TargetResultSet targetResultSet

checkNullCols

protected int[] checkNullCols

cncLen

protected int cncLen

isOpen

protected boolean isOpen

finished

protected boolean finished

currentRow

protected org.apache.derby.iapi.sql.execute.ExecRow currentRow

isTopResultSet

protected boolean isTopResultSet

lcc

protected org.apache.derby.iapi.sql.conn.LanguageConnectionContext lcc

numOpens

public int numOpens

rowsSeen

public int rowsSeen

rowsFiltered

public int rowsFiltered

startExecutionTime

protected long startExecutionTime

endExecutionTime

protected long endExecutionTime

beginTime

public long beginTime

constructorTime

public long constructorTime

openTime

public long openTime

nextTime

public long nextTime

closeTime

public long closeTime

optimizerEstimatedRowCount

public double optimizerEstimatedRowCount

optimizerEstimatedCost

public double optimizerEstimatedCost

subqueryTrackingArray

public org.apache.derby.iapi.sql.execute.NoPutResultSet[] subqueryTrackingArray

compactRow

org.apache.derby.iapi.sql.execute.ExecRow compactRow

activation

protected org.apache.derby.iapi.sql.Activation activation

resultDescription

org.apache.derby.iapi.sql.ResultDescription resultDescription
Constructor Detail

TableScanResultSet

public TableScanResultSet(long conglomId,
                          org.apache.derby.iapi.store.access.StaticCompiledOpenConglomInfo scoci,
                          org.apache.derby.iapi.sql.Activation activation,
                          org.apache.derby.iapi.services.loader.GeneratedMethod resultRowAllocator,
                          int resultSetNumber,
                          org.apache.derby.iapi.services.loader.GeneratedMethod startKeyGetter,
                          int startSearchOperator,
                          org.apache.derby.iapi.services.loader.GeneratedMethod stopKeyGetter,
                          int stopSearchOperator,
                          boolean sameStartStopPosition,
                          org.apache.derby.iapi.store.access.Qualifier[][] qualifiers,
                          java.lang.String tableName,
                          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,
                          org.apache.derby.iapi.services.loader.GeneratedMethod closeCleanup)
                   throws org.apache.derby.iapi.error.StandardException
Method Detail

openCore

public void openCore()
              throws org.apache.derby.iapi.error.StandardException
open a scan on the table. scan parameters are evaluated at each open, so there is probably some way of altering their values...

Specified by:
openCore in interface org.apache.derby.iapi.sql.execute.NoPutResultSet
Specified by:
openCore in class BasicNoPutResultSetImpl

openScanController

protected void openScanController(org.apache.derby.iapi.store.access.TransactionController tc)
                           throws org.apache.derby.iapi.error.StandardException

reopenScanController

private void reopenScanController()
                           throws org.apache.derby.iapi.error.StandardException

reopenCore

public void reopenCore()
                throws org.apache.derby.iapi.error.StandardException
Reopen a table scan. Here we take advantage of the reopenScan() interface on scanController for optimimal performance on joins where we are an inner table.

Specified by:
reopenCore in interface org.apache.derby.iapi.sql.execute.NoPutResultSet
Overrides:
reopenCore in class BasicNoPutResultSetImpl

getSparseRowAndMap

private void getSparseRowAndMap()
                         throws org.apache.derby.iapi.error.StandardException
Check and make sure sparse heap row and accessed bit map are created. beetle 3865, update cursor using index.


getNextRowCore

public org.apache.derby.iapi.sql.execute.ExecRow getNextRowCore()
                                                         throws org.apache.derby.iapi.error.StandardException
Return the next row (if any) from the scan (if open).

Specified by:
getNextRowCore in interface org.apache.derby.iapi.sql.execute.NoPutResultSet
Specified by:
getNextRowCore in class BasicNoPutResultSetImpl

close

public void close()
           throws org.apache.derby.iapi.error.StandardException
If the result set has been opened, close the open scan.

Specified by:
close in interface org.apache.derby.iapi.sql.ResultSet
Overrides:
close in class NoPutResultSetImpl

getTimeSpent

public long getTimeSpent(int type)
Return the total amount of time spent in this ResultSet

Specified by:
getTimeSpent in interface org.apache.derby.iapi.sql.ResultSet

getRowLocation

public org.apache.derby.iapi.types.RowLocation getRowLocation()
                                                       throws org.apache.derby.iapi.error.StandardException
This result set has its row location from the last fetch done. If the cursor is closed, a null is returned.

Specified by:
getRowLocation in interface org.apache.derby.iapi.sql.execute.CursorResultSet

getCurrentRow

public org.apache.derby.iapi.sql.execute.ExecRow getCurrentRow()
                                                        throws org.apache.derby.iapi.error.StandardException
This result set has its row from the last fetch done. If the cursor is closed, a null is returned.

Specified by:
getCurrentRow in interface org.apache.derby.iapi.sql.execute.CursorResultSet

printStartPosition

public java.lang.String printStartPosition()
Print an array of Qualifiers to the trace stream.


printStopPosition

public java.lang.String printStopPosition()

printPosition

private java.lang.String printPosition(int searchOperator,
                                       org.apache.derby.iapi.services.loader.GeneratedMethod positionGetter,
                                       org.apache.derby.iapi.sql.execute.ExecIndexRow positioner)
Return a start or stop positioner as a String. If we already generated the information, then use that. Otherwise, invoke the activation to get it.


getScanProperties

public java.util.Properties getScanProperties()

getScanIsolationLevel

public int getScanIsolationLevel()
Description copied from interface: org.apache.derby.iapi.sql.execute.NoPutResultSet
Return the isolation level of the scan in the result set. Only expected to be called for those ResultSets that contain a scan.

Specified by:
getScanIsolationLevel in interface org.apache.derby.iapi.sql.execute.NoPutResultSet
Overrides:
getScanIsolationLevel in class BasicNoPutResultSetImpl

requiresRelocking

public boolean requiresRelocking()
Description copied from interface: org.apache.derby.iapi.sql.execute.NoPutResultSet
Do we need to relock the row when going to the heap.

Specified by:
requiresRelocking in interface org.apache.derby.iapi.sql.execute.NoPutResultSet
Overrides:
requiresRelocking in class BasicNoPutResultSetImpl

setRowCountIfPossible

protected final void setRowCountIfPossible(long rowsThisScan)
                                    throws org.apache.derby.iapi.error.StandardException
Update the number of rows in the scan controller. NOTE: It would be more efficient to only update the scan controller if the optimizer's estimated number of rows were wrong by more than some threshold (like 10%). This would require a little more work than I have the time for now, however, as the row estimate that is given to this result set is the total number of rows for all scans, not the number of rows per scan.


canGetInstantaneousLocks

protected boolean canGetInstantaneousLocks()
Can we get instantaneous locks when getting share row locks at READ COMMITTED.


isForUpdate

public boolean isForUpdate()
Is this ResultSet or it's source result set for update

Specified by:
isForUpdate in interface org.apache.derby.iapi.sql.execute.NoPutResultSet
Overrides:
isForUpdate in class NoPutResultSetImpl

clone

public java.lang.Object clone()
Shallow clone this result set. Used in trigger reference. beetle 4373.


getResultDescription

public org.apache.derby.iapi.sql.ResultDescription getResultDescription()
Returns the description of the table's rows

Specified by:
getResultDescription in interface org.apache.derby.iapi.sql.ResultSet
Overrides:
getResultDescription in class BasicNoPutResultSetImpl

getCursorName

public java.lang.String getCursorName()
Return my cursor name for JDBC. Can be null.


resultSetNumber

public int resultSetNumber()
Description copied from interface: org.apache.derby.iapi.sql.execute.NoPutResultSet
Get the number of this ResultSet, which is guaranteed to be unique within a statement.

Specified by:
resultSetNumber in interface org.apache.derby.iapi.sql.execute.NoPutResultSet
Overrides:
resultSetNumber in class BasicNoPutResultSetImpl

setTargetResultSet

public void setTargetResultSet(org.apache.derby.iapi.sql.execute.TargetResultSet trs)
Description copied from interface: org.apache.derby.iapi.sql.execute.NoPutResultSet
Notify a NPRS that it is the source for the specified TargetResultSet. This is useful when doing bulk insert.


setNeedsRowLocation

public void setNeedsRowLocation(boolean needsRowLocation)
Description copied from interface: org.apache.derby.iapi.sql.execute.NoPutResultSet
Set whether or not the NPRS need the row location when acting as a row source. (The target result set determines this.)


getValidColumns

public org.apache.derby.iapi.services.io.FormatableBitSet getValidColumns()
Description copied from interface: org.apache.derby.iapi.store.access.RowSource
getValidColumns describes the DataValueDescriptor[] returned by all calls to the getNextRowFromRowSource() call. If getValidColumns returns null, the number of columns is given by the DataValueDescriptor.length where DataValueDescriptor[] is returned by the preceeding getNextRowFromRowSource() call. Column N maps to DataValueDescriptor[N], where column numbers start at zero. If getValidColumns return a non null validColumns FormatableBitSet the number of columns is given by the number of bits set in validColumns. Column N is not in the partial row if validColumns.get(N) returns false. Column N is in the partial row if validColumns.get(N) returns true. If column N is in the partial row then it maps to DataValueDescriptor[M] where M is the count of calls to validColumns.get(i) that return true where i < N. If DataValueDescriptor.length is greater than the number of columns indicated by validColumns the extra entries are ignored.


getNextRowFromRowSource

public org.apache.derby.iapi.types.DataValueDescriptor[] getNextRowFromRowSource()
                                                                          throws org.apache.derby.iapi.error.StandardException
Description copied from interface: org.apache.derby.iapi.store.access.RowSource
Get the next row as an array of column objects. The column objects can be a JBMS Storable or any Serializable/Externalizable/Formattable/Streaming type.
A return of null indicates that the complete set of rows has been read.

A null column can be specified by leaving the object null, or indicated by returning a non-null getValidColumns. On streaming columns, it can be indicated by returning a non-null get FieldStates.

If RowSource.needToClone() is true then the returned row (the DataValueDescriptor[]) is guaranteed not to be modified by drainer of the RowSource (except that the input stream will be read, of course) and drainer will keep no reference to it before making the subsequent nextRow call. So it is safe to return the same DataValueDescriptor[] in subsequent nextRow calls if that is desirable for performance reasons.

If RowSource.needToClone() is false then the returned row (the DataValueDescriptor[]) may be be modified by drainer of the RowSource, and the drainer may keep a reference to it after making the subsequent nextRow call. In this case the client should severe all references to the row after returning it from getNextRowFromRowSource().


needsToClone

public boolean needsToClone()
Description copied from interface: org.apache.derby.iapi.store.access.RowSource
Does the caller of getNextRowFromRowSource() need to clone the row in order to keep a reference to the row past the getNextRowFromRowSource() call which returned the row. This call must always return the same for all rows in a RowSource (ie. the caller will call this once per scan from a RowSource and assume the behavior is true for all rows in the RowSource).


closeRowSource

public void closeRowSource()
Description copied from interface: org.apache.derby.iapi.store.access.RowSource
closeRowSource tells the RowSource that it will no longer need to return any rows and it can release any resource it may have. Subsequent call to any method on the RowSource will result in undefined behavior. A closed rowSource can be closed again.


needsRowLocation

public boolean needsRowLocation()
Description copied from interface: org.apache.derby.iapi.store.access.RowLocationRetRowSource
needsRowLocation returns true iff this the row source expects the drainer of the row source to call rowLocation after getting a row from getNextRowFromRowSource.


rowLocation

public void rowLocation(org.apache.derby.iapi.types.RowLocation rl)
                 throws org.apache.derby.iapi.error.StandardException
Description copied from interface: org.apache.derby.iapi.store.access.RowLocationRetRowSource
rowLocation is a callback for the drainer of the row source to return the rowLocation of the current row, i.e, the row that is being returned by getNextRowFromRowSource. This interface is for the purpose of loading a base table with index. In that case, the indices can be built at the same time the base table is laid down once the row location of the base row is known. This is an example pseudo code on how this call is expected to be used:
                boolean needsRL = rowSource.needsRowLocation();
                DataValueDescriptor[] row;