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 GroupedAggregateResultSet  view GroupedAggregateResultSet download GroupedAggregateResultSet.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.GenericAggregateResultSet
              extended byorg.apache.derby.impl.sql.execute.GroupedAggregateResultSet
All Implemented Interfaces:
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:
DistinctGroupedAggregateResultSet

public class GroupedAggregateResultSet
extends GenericAggregateResultSet
implements org.apache.derby.iapi.sql.execute.CursorResultSet

This ResultSet evaluates grouped, non distinct aggregates. It will scan the entire source result set and calculate the grouped aggregates when scanning the source during the first call to next().


Field Summary
protected  org.apache.derby.iapi.sql.Activation activation
           
protected  AggregatorInfoList aggInfoList
           
protected  GenericAggregator[] aggregates
           
 long beginTime
           
(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
           
(package private)  org.apache.derby.iapi.sql.execute.ExecRow compactRow
           
 long constructorTime
           
protected  org.apache.derby.iapi.sql.execute.ExecRow currentRow
           
private  org.apache.derby.iapi.sql.execute.ExecIndexRow currSortedRow
           
private  long distinctAggSortId
           
private  boolean dropDistinctAggSort
           
private  boolean dropGenericSort
           
protected  long endExecutionTime
           
protected  boolean finished
           
private  long genericSortId
           
 boolean hasDistinctAggregate
           
(package private)  long heapConglomerate
           
protected  java.lang.String indent
           
 boolean isInSortedOrder
           
protected  boolean isOpen
           
protected  boolean isTopResultSet
           
protected  org.apache.derby.iapi.sql.conn.LanguageConnectionContext lcc
           
private  int maxRowSize
           
private  boolean nextCalled
           
 long nextTime
           
 int numOpens
           
 long openTime
           
 double optimizerEstimatedCost
           
 double optimizerEstimatedRowCount
           
private  org.apache.derby.iapi.store.access.ColumnOrdering[] order
           
protected  org.apache.derby.iapi.sql.execute.NoPutResultSet originalSource
           
(package private)  org.apache.derby.iapi.sql.ResultDescription resultDescription
           
 int resultSetNumber
           
protected  org.apache.derby.iapi.services.loader.GeneratedMethod rowAllocator
           
 int rowsFiltered
           
 int rowsInput
           
 int rowsReturned
           
 int rowsSeen
           
private  org.apache.derby.iapi.store.access.ScanController scanController
           
 java.util.Properties sortProperties
           
private  org.apache.derby.iapi.sql.execute.ExecIndexRow sortResultRow
           
private  org.apache.derby.iapi.sql.execute.ExecIndexRow sortTemplateRow
           
 org.apache.derby.iapi.sql.execute.NoPutResultSet source
           
protected  int sourceDepth
           
private  org.apache.derby.iapi.sql.execute.ExecIndexRow sourceExecIndexRow
           
protected  long startExecutionTime
           
protected  java.lang.String subIndent
           
 org.apache.derby.iapi.sql.execute.NoPutResultSet[] subqueryTrackingArray
           
protected  org.apache.derby.iapi.sql.execute.TargetResultSet targetResultSet
           
private  org.apache.derby.iapi.store.access.TransactionController tc
           
 
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
GroupedAggregateResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet s, boolean isInSortedOrder, int aggregateItem, int orderingItem, org.apache.derby.iapi.sql.Activation a, org.apache.derby.iapi.services.loader.GeneratedMethod ra, int maxRowSize, int resultSetNumber, double optimizerEstimatedRowCount, double optimizerEstimatedCost, org.apache.derby.iapi.services.loader.GeneratedMethod c)
          Constructor
 
Method Summary
protected  void addWarning(java.sql.SQLWarning w)
           
protected  void attachStatementContext()
          Attach this result set to the top statement context on the stack.
 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.
 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.
 void closeSource()
          Close the source of whatever we have been scanning.
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  org.apache.derby.iapi.sql.execute.ExecIndexRow finishAggregation(org.apache.derby.iapi.sql.execute.ExecIndexRow row)
          Finish the aggregation for the current row.
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.
 org.apache.derby.iapi.types.DataValueDescriptor[] getNextRowFromRowSource()
          Get the next row as an array of column objects.
private  org.apache.derby.iapi.sql.execute.ExecIndexRow getNextRowFromRS()
          Get the next output row for processing
 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
private  org.apache.derby.iapi.sql.execute.ExecIndexRow getRowFromResultSet()
          Get a row from the input result set.
private  org.apache.derby.iapi.sql.execute.ExecIndexRow getRowFromSorter()
          Get a row from the sorter.
 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.
protected  GenericAggregator[] getSortAggregators(AggregatorInfoList list, boolean eliminateDistincts, org.apache.derby.iapi.sql.conn.LanguageConnectionContext lcc, org.apache.derby.iapi.sql.execute.NoPutResultSet inputResultSet)
          For each AggregatorInfo in the list, generate a GenericAggregator and stick it in an array of GenericAggregators.
 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.
private  void initializeVectorAggregation(org.apache.derby.iapi.sql.execute.ExecRow row)
          Run the aggregator initialization method for each aggregator in the row.
 boolean isClosed()
          Report if closed.
 boolean isForUpdate()
          Is this ResultSet or it's source result set for update This method will be overriden in the inherited Classes if it is true
private  org.apache.derby.iapi.store.access.ScanController loadSorter()
          Load up the sorter.
 void markAsTopResultSet()
          Mark the ResultSet as the topmost one in the ResultSet tree.
private  void mergeVectorAggregates(org.apache.derby.iapi.sql.execute.ExecRow newRow, org.apache.derby.iapi.sql.execute.ExecRow currRow)
          Run the aggregator merge method for each aggregator in the row.
 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 the scan.
static java.lang.String printQualifiers(org.apache.derby.iapi.store.access.Qualifier[][] qualifiers)
          Return a 2-d array of Qualifiers as a String
 void reopenCore()
          This is the default implementation of reopenCore().
 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.
private  boolean sameGroupingValues(org.apache.derby.iapi.sql.execute.ExecRow currRow, org.apache.derby.iapi.sql.execute.ExecRow newRow)
          Return whether or not the new row has the same values for the grouping columns as the current row.
 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.
 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
clone, 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

rowsInput

public int rowsInput

rowsReturned

public int rowsReturned

order

private org.apache.derby.iapi.store.access.ColumnOrdering[] order

sortTemplateRow

private org.apache.derby.iapi.sql.execute.ExecIndexRow sortTemplateRow

hasDistinctAggregate

public boolean hasDistinctAggregate

isInSortedOrder

public boolean isInSortedOrder

maxRowSize

private int maxRowSize

scanController

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

sourceExecIndexRow

private org.apache.derby.iapi.sql.execute.ExecIndexRow sourceExecIndexRow

sortResultRow

private org.apache.derby.iapi.sql.execute.ExecIndexRow sortResultRow

currSortedRow

private org.apache.derby.iapi.sql.execute.ExecIndexRow currSortedRow

nextCalled

private boolean nextCalled

distinctAggSortId

private long distinctAggSortId

dropDistinctAggSort

private boolean dropDistinctAggSort

genericSortId

private long genericSortId

dropGenericSort

private boolean dropGenericSort

tc

private org.apache.derby.iapi.store.access.TransactionController tc

sortProperties

public java.util.Properties sortProperties

aggregates

protected GenericAggregator[] aggregates

rowAllocator

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

aggInfoList

protected AggregatorInfoList aggInfoList

source

public org.apache.derby.iapi.sql.execute.NoPutResultSet source

closeCleanup

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

originalSource

protected org.apache.derby.iapi.sql.execute.NoPutResultSet originalSource

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

GroupedAggregateResultSet

public GroupedAggregateResultSet(org.apache.derby.iapi.sql.execute.NoPutResultSet s,
                                 boolean isInSortedOrder,
                                 int aggregateItem,
                                 int orderingItem,
                                 org.apache.derby.iapi.sql.Activation a,
                                 org.apache.derby.iapi.services.loader.GeneratedMethod ra,
                                 int maxRowSize,
                                 int resultSetNumber,
                                 double optimizerEstimatedRowCount,
                                 double optimizerEstimatedCost,
                                 org.apache.derby.iapi.services.loader.GeneratedMethod c)
                          throws org.apache.derby.iapi.error.StandardException
Constructor

Method Detail

openCore

public void openCore()
              throws org.apache.derby.iapi.error.StandardException
Open the scan. Load the sorter and prepare to get rows from it.

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

loadSorter

private org.apache.derby.iapi.store.access.ScanController loadSorter()
                                                              throws org.apache.derby.iapi.error.StandardException
Load up the sorter. Feed it every row from the source scan. If we have a vector aggregate, initialize the aggregator for each source row. When done, close the source scan and open the sort. Return the sort scan controller.


getNextRowCore

public org.apache.derby.iapi.sql.execute.ExecRow getNextRowCore()
                                                         throws org.apache.derby.iapi.error.StandardException
Return the next row.

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

sameGroupingValues

private boolean sameGroupingValues(org.apache.derby.iapi.sql.execute.ExecRow currRow,
                                   org.apache.derby.iapi.sql.execute.ExecRow newRow)
                            throws org.apache.derby.iapi.error.StandardException
Return whether or not the new row has the same values for the grouping columns as the current row. (This allows us to process in-order group bys without a sorter.)


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

getNextRowFromRS

private org.apache.derby.iapi.sql.execute.ExecIndexRow getNextRowFromRS()
                                                                 throws org.apache.derby.iapi.error.StandardException
Get the next output row for processing


getRowFromResultSet

private org.apache.derby.iapi.sql.execute.ExecIndexRow getRowFromResultSet()
                                                                    throws org.apache.derby.iapi.error.StandardException
Get a row from the input result set.


getRowFromSorter

private org.apache.derby.iapi.sql.execute.ExecIndexRow getRowFromSorter()
                                                                 throws org.apache.derby.iapi.error.StandardException
Get a row from the sorter. Side effects: sets currentRow.


closeSource

public void closeSource()
                 throws org.apache.derby.iapi.error.StandardException
Close the source of whatever we have been scanning.


initializeVectorAggregation

private void initializeVectorAggregation(org.apache.derby.iapi.sql.execute.ExecRow row)
                                  throws org.apache.derby.iapi.error.StandardException
Run the aggregator initialization method for each aggregator in the row. Accumulate the input column. WARNING: initializiation performs accumulation -- no need to accumulate a row that has been passed to initialization.


mergeVectorAggregates

private void mergeVectorAggregates(org.apache.derby.iapi.sql.execute.ExecRow newRow,
                                   org.apache.derby.iapi.sql.execute.ExecRow currRow)
                            throws org.apache.derby.iapi.error.StandardException
Run the aggregator merge method for each aggregator in the row.


getSortAggregators

protected final GenericAggregator[] getSortAggregators(AggregatorInfoList list,
                                                       boolean eliminateDistincts,
                                                       org.apache.derby.iapi.sql.conn.LanguageConnectionContext lcc,
                                                       org.apache.derby.iapi.sql.execute.NoPutResultSet inputResultSet)
                                                throws org.apache.derby.iapi.error.StandardException
For each AggregatorInfo in the list, generate a GenericAggregator and stick it in an array of GenericAggregators.


finishAggregation

protected final org.apache.derby.iapi.sql.execute.ExecIndexRow finishAggregation(org.apache.derby.iapi.sql.execute.ExecIndexRow row)
                                                                          throws org.apache.derby.iapi.error.StandardException
Finish the aggregation for the current row. Basically call finish() on each aggregator on this row. Called once per grouping on a vector aggregate or once per table on a scalar aggregate. If the input row is null, then rowAllocator is invoked to create a new row. That row is then initialized and used for the output of the aggregation.


finish

public void finish()
            throws org.apache.derby.iapi.error.StandardException
Description copied from interface: org.apache.derby.iapi.sql.ResultSet
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(). Will close the result set if it is not already closed.

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

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;
                while((row = rowSource.getNextRowFromRowSource()) != null)
                {
                        RowLocation rl = heapConglomerate.insertRow(row);
                        if (needsRL)
                                rowSource.rowLocation(rl);
                }
                

NeedsRowLocation and rowLocation will ONLY be called by a drainer of the row source which CAN return a row location. Drainer of row source which cannot return rowLocation will guarentee to not call either callbacks. Conversely, if NeedsRowLocation is called and it returns true, then for every row return by getNextRowFromRowSource, a rowLocation callback must also be issued with the row location of the row. Implementor of both the source and the drain of the row source must be aware of this protocol.
The RowLocation object is own by the caller of rowLocation, in other words, the drainer of the RowSource. This is so that we don't need to new a row location for every row. If the Row Source wants to keep the row location, it needs to clone it (RowLocation is a ClonableObject).


clearOrderableCache

protected void clearOrderableCache(org.apache.derby.iapi.store.access.Qualifier[][] qualifiers)
                            throws org.apache.derby.iapi.error.StandardException
Clear the Orderable cache for each qualifier. (This should be done each time a scan/conglomerate with qualifiers is reopened.)


setCheckConstraints

protected void setCheckConstraints(org.apache.derby.iapi.services.loader.GeneratedMethod checkGM)
Set the GeneratedMethod for enforcing check constraints


setHeapConglomerate

protected void setHeapConglomerate(long heapConglomerate)
Set the heap conglomerate number (used in enforcing check constraints)


setCurrentRow

public final void setCurrentRow(org.apache.derby.iapi.sql.execute.ExecRow row)
Set the current row to the row passed in.


clearCurrentRow

public final void clearCurrentRow()
Clear the current row


isForUpdate

public boolean isForUpdate()
Is this ResultSet or it's source result set for update This method will be overriden in the inherited Classes if it is true

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

skipScan

protected boolean skipScan(org.apache.derby.iapi.sql.execute.ExecIndexRow startPosition,
                           org.apache.derby.iapi.sql.execute.ExecIndexRow stopPosition)
                    throws org.apache.derby.iapi.error.StandardException
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. beetle 4464, we also compact the areNullsOrdered flags into checkNullCols here.


skipRow

protected boolean skipRow(org.apache.derby.iapi.sql.execute.ExecRow row)
                   throws org.apache.derby.iapi.error.StandardException
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.


printQualifiers

public static java.lang.String printQualifiers(org.apache.derby.iapi.store.access.Qualifier[][] qualifiers)
Return a 2-d array of Qualifiers as a String


reopenCore

public void reopenCore()
                throws org.apache.derby.iapi.error.StandardException
This is the default implementation of reopenCore(). It simply does a close() followed by an open(). If there are optimizations to be made (caching, etc), this is a good place to do it -- this will be overridden by a number of resultSet imlementations. and SHOULD be overridden by any node that can get between a base table and a join.

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

getPointOfAttachment

public int getPointOfAttachment()
Description copied from interface: org.apache.derby.iapi.sql.execute.NoPutResultSet
Return the point of attachment for this subquery. (Only meaningful for Any and Once ResultSets, which can and will only be at the top of a ResultSet for a subquery.)

Specified by:
getPointOfAttachment in interface org.apache.derby.iapi.sql.execute.NoPutResultSet

markAsTopResultSet

public void markAsTopResultSet()
Mark the ResultSet as the topmost one in the ResultSet tree. Useful for closing down the ResultSet on an error.

Specified by:
markAsTopResultSet in interface org.apache.derby.iapi.sql.execute.NoPutResultSet

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

getEstimatedRowCount

public double getEstimatedRowCount()
Description copied from interface: org.apache.derby.iapi.sql.execute.NoPutResultSet
Get the estimated row count from this result set.

Specified by:
getEstimatedRowCount in interface org.apache.derby.iapi.sql.execute.NoPutResultSet

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

open

public final void open()
                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... NOTE: This method should only be called on the top ResultSet of a ResultSet tree to ensure that the entire ResultSet tree gets closed down on an error. the openCore() method will be called for all other ResultSets in the tree.

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

getAbsoluteRow

public org.apache.derby.iapi.sql.execute.ExecRow getAbsoluteRow(int row)
                                                         throws org.apache.derby.iapi.error.StandardException
Returns the row at the absolute position from the query, and returns NULL when there is no such position. (Negative position means from the end of the result set.) Moving the cursor to an invalid position leaves the cursor positioned either before the first row (negative position) or after the last row (positive position). NOTE: An exception will be thrown on 0.

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

getRelativeRow

public