Class HeapCompressScan
- All Implemented Interfaces:
ScanManager
,GenericScanController
,GroupFetchScanController
,RowCountable
,ScanController
-
Field Summary
FieldsFields 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
ConstructorsConstructorDescriptionThe only constructor for a HeapCompressScan returns a scan in the closed state, the caller must call open. -
Method Summary
Modifier and TypeMethodDescriptionint
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
Set scan position to just after current page.protected void
Reposition the scan upon entering the fetchRows loop.protected void
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
-
Field Details
-
pagenum_to_start_moving_rows
private long pagenum_to_start_moving_rowsFields of HeapScan
-
-
Constructor Details
-
HeapCompressScan
public HeapCompressScan()The only constructor for a HeapCompressScan returns a scan in the closed state, the caller must call open.
-
-
Method Details
-
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
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
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
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.
-