Class HeapCompressScan
- java.lang.Object
-
- org.apache.derby.impl.store.access.conglomerate.GenericController
-
- org.apache.derby.impl.store.access.conglomerate.GenericScanController
-
- org.apache.derby.impl.store.access.heap.HeapScan
-
- org.apache.derby.impl.store.access.heap.HeapCompressScan
-
- All Implemented Interfaces:
ScanManager
,GenericScanController
,GroupFetchScanController
,RowCountable
,ScanController
class HeapCompressScan extends HeapScan
A heap scan object represents an instance of a scan on a heap conglomerate.
-
-
Field Summary
Fields Modifier and Type Field Description private long
pagenum_to_start_moving_rows
Fields of HeapScan-
Fields inherited from class org.apache.derby.impl.store.access.conglomerate.GenericScanController
rowLocationsInvalidated, SCAN_DONE, SCAN_HOLD_INIT, SCAN_HOLD_INPROGRESS, SCAN_INIT, SCAN_INPROGRESS, scan_position, stat_numpages_visited, stat_numrows_qualified, stat_numrows_visited
-
Fields inherited from class org.apache.derby.impl.store.access.conglomerate.GenericController
open_conglom
-
Fields inherited from interface org.apache.derby.iapi.store.access.ScanController
GE, GT, NA
-
-
Constructor Summary
Constructors Constructor Description HeapCompressScan()
The only constructor for a HeapCompressScan returns a scan in the closed state, the caller must call open.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
fetchNextGroup(DataValueDescriptor[][] row_array, RowLocation[] old_rowloc_array, RowLocation[] new_rowloc_array)
Protected override implementation of routines in GenericController class:private int
fetchRowsForCompress(DataValueDescriptor[][] row_array, RowLocation[] oldrowloc_array, RowLocation[] newrowloc_array)
Fetch the next N rows from the table.private void
positionAfterThisPage(RowPosition pos)
Set scan position to just after current page.protected void
positionAtResumeScan(RowPosition pos)
Reposition the scan upon entering the fetchRows loop.protected void
positionAtStartForForwardScan(RowPosition pos)
Move the scan from SCAN_INIT to SCAN_INPROGRESS.-
Methods inherited from class org.apache.derby.impl.store.access.heap.HeapScan
fetchLocation, fetchNext, fetchNextGroup, getScanInfo, makeRowLocation, next, positionAtRowLocation, queueDeletePostCommitWork, reopenScanByRowLocation, setRowLocationArray, setRowLocationArray
-
Methods inherited from class org.apache.derby.impl.store.access.conglomerate.GenericScanController
allocateScanPosition, close, closeForEndTransaction, delete, didNotQualify, doesCurrentPositionQualify, fetch, fetchRows, fetchSet, fetchWithoutQualify, getNumPagesVisited, getNumRowsQualified, getNumRowsVisited, getQualifier, getScanColumnList, getScanPosition, getScanState, getStartKeyValue, getStartSearchOperator, getStopKeyValue, getStopSearchOperator, init, isCurrentPositionDeleted, isHeldAfterCommit, positionAtDoneScan, positionAtInitScan, positionAtNextPage, reopenAfterEndTransaction, reopenScan, reopenScanByRecordHandle, replace, setScanPosition, setScanState
-
Methods inherited from class org.apache.derby.impl.store.access.conglomerate.GenericController
checkConsistency, debugConglomerate, getEstimatedRowCount, getInternalTablePropertySet, getOpenConglom, getRowPositionFromRowLocation, getSpaceInfo, getTableProperties, init, isKeyed, isTableLocked, newRowLocationTemplate, setEstimatedRowCount
-
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.store.access.GenericScanController
close, isKeyed, isTableLocked, newRowLocationTemplate, reopenScan
-
Methods inherited from interface org.apache.derby.iapi.store.access.RowCountable
getEstimatedRowCount, setEstimatedRowCount
-
Methods inherited from interface org.apache.derby.iapi.store.access.ScanController
delete, didNotQualify, doesCurrentPositionQualify, fetch, fetchWithoutQualify, isCurrentPositionDeleted, isHeldAfterCommit, replace
-
Methods inherited from interface org.apache.derby.iapi.store.access.conglomerate.ScanManager
closeForEndTransaction, fetchSet
-
-
-
-
Method Detail
-
fetchNextGroup
public int fetchNextGroup(DataValueDescriptor[][] row_array, RowLocation[] old_rowloc_array, RowLocation[] new_rowloc_array) throws StandardException
Protected override implementation of routines in GenericController class:- Specified by:
fetchNextGroup
in interfaceGroupFetchScanController
- Overrides:
fetchNextGroup
in classHeapScan
- Throws:
StandardException
-
fetchRowsForCompress
private int fetchRowsForCompress(DataValueDescriptor[][] row_array, RowLocation[] oldrowloc_array, RowLocation[] newrowloc_array) throws StandardException
Fetch the next N rows from the table.Utility routine used by both fetchSet() and fetchNextGroup().
- Throws:
StandardException
- Standard exception policy.
-
positionAtResumeScan
protected void positionAtResumeScan(RowPosition pos) throws StandardException
Reposition the scan upon entering the fetchRows loop.Called upon entering fetchRows() while in the SCAN_INPROGRESS state. Do work necessary to look at rows in the current page of the scan.
The default implementation uses a record handle to maintain a scan position. It will get the latch again on the current scan position and set the slot to the current record handle.
- Overrides:
positionAtResumeScan
in classGenericScanController
- Throws:
StandardException
- Standard exception policy.
-
positionAtStartForForwardScan
protected void positionAtStartForForwardScan(RowPosition pos) throws StandardException
Move the scan from SCAN_INIT to SCAN_INPROGRESS.This routine is called to move the scan from SCAN_INIT to SCAN_INPROGRESS. Upon return from this routine it is expected that scan_position is set such that calling the generic scan loop will reach the first row of the scan. Note that this usually means setting the scan_postion to one before the 1st row to be returned.
- Overrides:
positionAtStartForForwardScan
in classGenericScanController
- Throws:
StandardException
- Standard exception policy.
-
positionAfterThisPage
private void positionAfterThisPage(RowPosition pos) throws StandardException
Set scan position to just after current page.Used to set the position of the scan if a record handle is not avaliable. In this case current_rh will be set to null, and current_pageno will be set to the current page number. On resume of the scan, the scan will be set to just before the first row returned form a getNextPage(current_pageno) call.
A positionAtResumeScan(scan_position) is necessary to continue the scan after this call.
- Throws:
StandardException
- Standard exception policy.
-
-