Class HashTableResultSet

    • Field Detail

      • restrictionTime

        public long restrictionTime
      • projectionTime

        public long projectionTime
      • hashtableSize

        public int hashtableSize
      • scanProperties

        public java.util.Properties scanProperties
      • nextQualifiers

        public Qualifier[][] nextQualifiers
      • projectMapping

        private int[] projectMapping
      • runTimeStatsOn

        private boolean runTimeStatsOn
      • mappedResultRow

        private ExecRow mappedResultRow
      • reuseResult

        public boolean reuseResult
      • keyColumns

        public int[] keyColumns
      • removeDuplicates

        private boolean removeDuplicates
      • maxInMemoryRowCount

        private long maxInMemoryRowCount
      • initialCapacity

        private int initialCapacity
      • loadFactor

        private float loadFactor
      • skipNullKeyColumns

        private boolean skipNullKeyColumns
      • firstNext

        private boolean firstNext
      • numFetchedOnNext

        private int numFetchedOnNext
      • entryVectorSize

        private int entryVectorSize
      • entryVector

        private java.util.List entryVector
      • hashTableBuilt

        private boolean hashTableBuilt
      • firstIntoHashtable

        private boolean firstIntoHashtable
      • nextCandidate

        private ExecRow nextCandidate
    • Method Detail

      • openCore

        public void openCore()
                      throws 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 NoPutResultSet
        Throws:
        StandardException - thrown if cursor finished.
      • getTimeSpent

        public long getTimeSpent​(int type)
        Return the total amount of time spent in this ResultSet
        Specified by:
        getTimeSpent in interface ResultSet
        Parameters:
        type - CURRENT_RESULTSET_ONLY - time spent only in this ResultSet ENTIRE_RESULTSET_TREE - time spent in this ResultSet and below.
        Returns:
        long The total amount of time spent (in milliseconds).
      • doProjection

        private ExecRow doProjection​(ExecRow sourceRow)
                              throws StandardException
        Do the projection against the source row. Use reflection where necessary, otherwise get the source column into our result row.
        Parameters:
        sourceRow - The source row.
        Returns:
        The result of the projection
        Throws:
        StandardException - thrown on failure.
      • getNextRowFromRowSource

        public DataValueDescriptor[] getNextRowFromRowSource()
                                                      throws StandardException
        Description copied from interface: 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().

        Specified by:
        getNextRowFromRowSource in interface RowSource
        Overrides:
        getNextRowFromRowSource in class NoPutResultSetImpl
        Throws:
        StandardException - on error
        See Also:
        RowSource.getNextRowFromRowSource()